Article View: comp.lang.misc
Article #4913Software Technology is NOT Primitive
From: Lawrence Crowl
Date: Thu, 22 Oct 1987 01:01
Date: Thu, 22 Oct 1987 01:01
54 lines
3711 bytes
3711 bytes
Software technology is not in the primitive state that people so constantly
moan about. First, software has a much more difficult task than hardware. We
have more expectations from software than hardware, so the perceived state of
the technology is less than the actual state.
Consider the "great advance" in memory chip size. Most of the impressiveness
of the advance comes from replication of design effort. Is a software engineer
given accolades when he calls a subroutine a million times instead of a
thousand? Hardly. Much of hardware design is replication, but very little of
software design is replication.
In 1950, a processor had hundreds to thousands of gates and a large program had
a hundred to a thousand lines. Today, a processor has (say) a hundred thousand
to a million gates, while a large program has a hundred thousand to a million
lines of code. The track well don't they? But let's look closer. In 1950, a
processor had a control unit, a few registers and an ALU while a program had a
simple routine to read cards, a simple routine to drive the printer, and a
simple core algorithm. Today, a processor had a control unit, a few registers
and an ALU (note the less than radical change), while a program has a graphics
interface, a file manager, a recovery scheme and a performance monitor in
addition to the core algorithm. There has been quite a deal of change in the
tools and _functional_ capabilities of software systems.
"But hardware systems have improved performance by four orders of magnitude
since 1950!" True, but for many problems, you are better off running today's
algorithms on 1950's hardware than 1950's algorithms on today's hardware. Do
not deny software its contribution to performance. (Although to be fair, we
have already reached the theoretical maximum performance for many algorithms.)
In article <3349@uw-june.UUCP> bnfb@uw-june.UUCP (Bjorn Freeman-Benson) writes:
>However, one must consider that current software technology is at the level of
>individual transistors and resistors, and that we could use the step up to
>"7000 series ICs". After that, custom and semi-custom would be great.
Well, I apply different analogies. I think you will find these better related
to the actual scale of work.
transistors == machine language
7400 series == assembly language
msi == higher level languages
lsi == libraries
vlsi == utility programs (ala Unix)
custom ICs == inheritance and generics (needs more experience to say for sure)
It looks to me like software and hardware technology have tracked fairly well.
The cause for the difference in perception is that hardware has done the same
task cheaper and faster while software has performed an ever more difficult
task. Because hardware has simpler measures, it has more apparent progress.
The actual progress is roughly equivalent.
--
Lawrence Crowl 716-275-9499 University of Rochester
crowl@cs.rochester.edu Computer Science Department
...!{allegra,decvax,rutgers}!rochester!crowl Rochester, New York, 14627
Technical Details
Message-ID:
<3471@sol.ARPA>Path:
arc1-ca.pugleaf.net!utzoo!mnetor!uunet!husc6!bbn!rochester!crowlReferences:
<3405@ece-csc.UUCP> <638@its63b.ed.ac.uk>Show Full Headers
Complete Article Headers
Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: arc1-ca.pugleaf.net!utzoo!mnetor!uunet!husc6!bbn!rochester!crowl From: crowl@cs.rochester.edu (Lawrence Crowl) Newsgroups: comp.lang.misc,comp.software-eng Subject: Software Technology is NOT Primitive Message-ID: <3471@sol.ARPA> Date: Wed, 21-Oct-87 21:01:55 EDT Article-I.D.: sol.3471 Posted: Wed Oct 21 21:01:55 1987 Date-Received: Sat, 24-Oct-87 08:20:40 EDT References: <3405@ece-csc.UUCP> <638@its63b.ed.ac.uk> Reply-To: crowl@cs.rochester.edu (Lawrence Crowl) Organization: U of Rochester, CS Dept, Rochester, NY Lines: 54