The Business of Software Phillip G. Armour
Digging CACM
An archeological view of a classic.
Archeology is an interesting,
if somewhat dusty, science.
Archeologists dig into the
ground to unearth artifacts from
antiquity and from their age-encrusted appearance and structure try to deduce their purpose
and better understand the civilizations that created them.
And so it was one evening
when I led an expedition down
into the stygian depths of my
basement in search of the earliest
edition of Communications of the
ACM. Amid rows of yellowing
National Geographic magazines,
boxes of ancient canceled checks,
and fading but still blue copies of
SIGSOFT proceedings I
unearthed the oldest known (to
me) copy of Communications—it
was the February 1985 issue.
PETERHOEY
By the time I encountered
CACM it was already a highly
evolved organism. The earliest
known direct ancestor of today’s
magazine has been carbon dated
as far back as 1958. This proto-CACM included such advances in
computation as a (language-free)
implementation of Newton’s
square-root formula and the use of
tables to calculate a least-squares
approximation. It also included a
binary counter for use with an
IBM 650 calculater (sic) including
the actual core locations, the decimal machine instructions (in Lin-ear-C?), and the explicit branch
memory addresses (this was before
“direct program memory
branch addressing considered harmful”).
The article also
included a
delightful handwritten flow-chart of the
process—the
software engineering equivalent of the
Lascaux cave
paintings.
Fast-forward
through several computing epochs to the year
1985 and my first exposure to
CACM, at least as identified in the
historical record. The articles in
this February 1985 edition give us
examples of how the business of
software has changed and how it
has remained the same.
Programming Pearls. In the
“Programming Pearls” column, we
learn of a programmer who can
log in while seated but gets locked
out if he stands up. There is an
international banking system that
stops dead when someone enters
the capital of Ecuador. And we
also find, courtesy of the research
of the indomitable Donald
Knuth, that 70% of
code typically con-
sists of only four
statement types.
Has any
of this
changed?
My unsci-
entific
observation
of modern
systems is
that weird
defects have
not become
an extinct or
even endan-
gered species,
and even if the actual num-
ber of statement types used
remains quite small, the job is still
to get them right.
Grosch’s Law inferred that the
cost of a computer will rise as the
square root of its power. The
fastest IBM mainframe at that
time, a 3081, could cycle around
10 MIPS and cost a mere $3.7
COMMUNICATIONS OF THE ACM January 2008/Vol. 51, No. 1