|
Chapter 9

The Post-War
History of Computers
Part 1: The Whirlwind Project
from Bit by Bit
by Stan Augarten
“This is not the
age of pamphleteers. It is the age of engineers. The spark-gap is
mightier than the pen. Democracy will not be salvaged by men who
talk fluently, debate forcefully and quote aptly.”
- Lancelot Hogben,
Science for the Citizen
“Is it progress if
a cannibal uses knife and fork?”
J. Lec, Unkempt
Thoughts
The Whirlwind
Project was the source of
many important innovations in computer technology,
including magnetic-core memories. This is a close-up of a
magnetic-core memory plane with a storage capacity
of 1,024 bits.
Depending on the direction of magnetization, each ring (or magnetic
core) in the picture can store a zero or a one.
Most of the
computers of the late 1940s and early 1950s were sponsored by the
defense establishment and put to military use. ENIAC and EDVAC were
financed by the Army; von Neumann's IAS computer was underwritten
largely by the Army and the Navy; the Mark I at Manchester
University and the EDVAC at Cambridge were subsidized by the
British military; and all but two of IBM's nineteen 701s were
leased by the Navy, defense contractors, and government
organizations involved in defense, such as the National Security
Agency. Although many computers ended up outside the military
establishment - the Census Bureau, for example, bought three
UNIVACs, and the U.S. Weather Bureau acquired a 701 - the first
computers were chiefly weapons of the Cold War.
These machines were
not only applied to military tasks but also were designed with them
in mind. ENIAC was built to calculate ballistic trajectories; EDVAC
was devised to perform large sci entific calculations, such as
H-bomb simulations; and BINAC was intended to' be a prototype of a
fail-safe computer for a guided missile. In its early years, the
computer industry resembled a busy little bus service. The military
did most of the driving; the universities, along with a few private
companies, handled the design and construction; and the passengers,
those who used the computers, came from academia, defense
contractors, and research institutes. There was a lot of
intermingling of drivers, mechanics, and passengers, and everybody
had a turn at the wheel at one time or another.
When a particular
military application of computer technology
(such as air traffic control) matched a commercial one, that
technology entered the marketplace within a few years, whereas
strictly commercial applications of computers (such as industrial
process control) came along much later. Once a sizable computer
industry had developed, the military's role in computer technology
shrank, and private capital assumed a growing share of research and
development. But that didn't happen until the early 1960s.
Meanwhile, military money and necessity were the great muses of
computer technology.
Take the case of Whirlwind, one of the most innovative and
influential computer projects in the history of computers. Built by
MIT, Whirlwind had a rather awkward childhood - it began life
as an analog computer. In December 1944, the Navy's Special Devices
Center asked MIT to undertake a feasibility study of a
general-purpose flight trainer and stability analyzer that could be
used to train pilots and to test new aerodynamic designs. At that
time, flight trainers did a poor job of imitating planes in flight,
and they weren't programmable, which meant that a new
trainer-analyzer had to be constructed for every type of aircraft or
proposed design. All this took a great deal of time and money, and
the results were rather unimpressive.
MIT's Servomechanisms Laboratory assigned the study to Jay W.
Forrester, a young engineer who had supervised several small
projects at the lab. An extraordinarily capable, confident, though
somewhat aloof man, Forrester had an engineering degree from the
University of Nebraska and was working on his master's at the time.
Although only twenty-six years old, he had been thinking of leaving
MIT to start a company of his own, but Cordon S. Brown, the lab's
director, had a keen eye for talent and was eager to keep him on.
Brown called Forrester into his office, gave him a list of about a
dozen projects, and invited him to take his pick. The feasibility
study, which promised to be the beginning of a much larger project,
caught his interest, and Forrester decided to stay on.
The trainer-analyzer had two basic parts, a cockpit and a
controller. Although the cockpit promised to be a devilishly
complicated piece of machinery, the real engineering hurdle was the
controller. It had to be able to mimic the behavior of a wide range
of aircraft, reacting to the pilot's moves, maneuvering the cockpit,
driving the instrument panel, simulating wind resistance, and
recording every moment of the "flight" for later analysis. The
controller had to be fast and accurate; in other words, it had to
be capable of real-time - or instantaneous - responses to human
actions. And the only device that seemed suitable for the task was
an analog computer of some kind, the traditional servomechanistic
solution to problems of control.
However, it would be maddeningly difficult to design an analog
computer for a trainer-analyzer. An analog computer is an
intrinsically inaccurate and inflexible piece of equipment; in the
case of the trainer-analyzer, it would be a square peg in a round
hole. Nevertheless, Forrester was optimistic - the job was not
impossible - and the Special Devices Center agreed to finance a
full-scale research and development effort. In the summer of 1945,
therefore, MIT received an
$875,000
contract for the design and construction of a trainer-analyzer.
(Incidentally, the contract was granted over the sharp objections of
several Navy engineers, including one officer who, well aware of the
limitations of analog computers, condemned the trainer-analyzer as
"a physicist's dream and an engineer's nightmare." He was right - as
long as an analog computer was used.)
Forrester and his team wrestled with the controller for a few
months, with little success. As chance would have it, however, in
October 1945 Forrester ran into a young MIT engineer named Perry
Crawford, who suggested that he look into digital computers. ENIAC
was almost finished, EDVAC was under development, and the Moore
School's work was stirring up a great deal of interest among
engineers. Forrester took Crawford's advice, as Robert. R. hverett,
his second in command, wrote years later:
Jay talked to a number of people, attended a computer conference
and ... came back and said., "We are no longer building an analog
computer; we are building a digital computer."
Things were different in those days. We didn't have a big study
group, and when Jay decided
to
build a digital computer,
we all thought that
was great. He won the support of MIT and the Special Devices Center,
which was also a group of engineers, and we began to build a
digital computer in late 1945
.... But the task was just barely possible because of
[the] limited availability of test equipment and other devices and
components. No technical infrastructure existed as we know it
today. There were few instruments. We had to go ahead and do almost
everything for the first time and when I say we I mean not only the
Digital Computer Laboratory [which MIT established to build the
computer] but everybody in the computer business.
By 1947,
Forrester's team had a design for a high-speed electronic digital
stored-program computer that could operate in real time. In theory,
it could not only run a trainer-analyzer but perform any real-time
function, such as keeping track of air traffic, monitoring a battle,
or running a factory. For example, you could hook it up to a radar
network, install a bank of television-like monitors, and track
airplanes in a designated area. Given an appropriate method of
communicating directly with the computer, you could ask questions
like, "How many planes in sector four?" or, "Give intercept
coordinates for target number five." Forrester and Everett had hit
on a revolutionary application of computers, and they knew it.
By 1948, the project’s
goal, the construction of a trainer-analyzer, was jettisoned in
favor of the creation of a real-time computer. Meanwhile, the
Special Devices Center had closed down and the Office of Naval
Research (ONR) was picking up the tab for the computer, now called
Whirlwind. And it was quite a tab. Whirlwind was the largest
computer project of the late 1940s and early 1950s. It had an
annual budget of approximately $1 million and a staff of about 175
people, including 70 engineers and technicians.
Forrester and Everett
kept tight control of the effort, and their partnership was as
effective, and almost as important in the history of computers, as
Eckert and Mauchly’s. One engineer gave a vivid description of the
pair:
“Bob Everett was relaxed, friendly, understanding – and I have never
seen anyone who could go to the heart of a problem so fast! Jay was
as fast, maybe faster, but he was always more formal, more remote
somehow, and you weren’t always sure how dumb he thought you were,
or how smart. That kept us on our toes, I suppose. It was difficult
to know what he was going to do next, but he was so terribly
capable, it’s didn’t matter if you couldn’t follow his reasoning.
He was always thinking with his seven-league boots on. It made him a
pretty formidable guy to work for ----- partly because he and Bob
always made sure you understood the problem you were working on, by
finding out what you didn't know
as
well as
what you did know.... I never resented Jay's obvious ability,
but he wasn't the sort I'd call easy to work for.
He definitely never was
"one of the boys." He was the chief, cool, distant, and personally
remote in a way that kept him in control without ever diminishing
our loyalty and pride in the project.”
An enormous machine
consisting of a control room and eight tall banks of tubes jutting
off on either side of a central corridor, Whirlwind took three
years to build. Altogether, it occupied 2,500 square feet of floor
space -- two and a half times the size of ENIAC. Although Whirlwind
contained far fewer tubes than ENIAC - 4,000 to its predecessor's
18,000 - it was spread out to make construction and. maintenance
easier. Since Whirlwind was designed for real-time applications, it
was the fastest computer of the early 1950s, able to add two
sixteen-bit words in two microseconds or multiply them in twenty
microseconds. (Note the small size of Whirlwind’s words, which were
well suited for a real-time computer that had to run at high speed.
Most computers at the time, being designed for scientific
calculations, used words with at least forty bits. Whirlwind was
the first sixteen-bit computer.) As for Whirlwind’s internal
read/write memory, it consisted of thrity-two CRTs, or electrostatic
tubes, storing a total of 2,048 sixteen-bit words. The
electrostatic tubes were a constant sourced of headaches
and Whirlwind's most serious
shortcoming. Although carefully produced by hand in Whirlwind's
workshops, they rarely lasted longer than a month. In brief, the
faces of the tubes tended to fade, erasing their data and reducing
their storage capacity. (Information was stored on the faces in the
form of positively or negatively charged spots of electrons, shot
from "guns" at the bottom of the tubes.) Since the tubes cost about
$1,000 apiece, the Whirlwind project was spending about
$32,000
a month for internal storage.
Moreover, the computer was unreliable, out of order several hours a
day, and unable to run programs requiring a lot of read/write
memory. Whirlwind desperately needed a better form of memory.
In the spring of
1949,
Forrester conceived of a solution - a solution that solved not only
Whirlwind's problem but the touchy internal memory problems of all
computers. "I was reading a technical journal orie evening, just
leafing through the advertisements in the magazine Electrical
Engineering,"
he recalled in 1975,
“...when
I
saw an advertisement for
a
material called Deltamax.... It had been. developed for magnetic
amplifiers.
I
think it was derived from a material developed in Germany in World
War 11.... When I
saw this [material]
I
asked, ‘Can we use it as a computer memory?
Is
there some way to fit it into a three-dimensional array for
information storage?’ The
idea immediately began to dominate my thinking, and for the next
two evenings
I
went out after dinner and walked the streets
in
the dark thinking about it.
Forrester ordered some Deltamax, a metallic, magnetic material,
and, without telling anyone what he had in mind, began experimenting
with it. First, he flattened the stuff into thin ribbons and twisted
them into small spiral rings. Next he ran a current through the
rings, rapidly and repeatedly magnetizing them first in one
direction (north), then in the opposite direction (south). A
northerly polarity represented, say, a one: a southerly polarity, a
zero. The scheme worked - the little Deltamax rings flipped from one
binary state to another at the receipt of a charge and retained
their states (whatever they happened to be) after the power was
turned off. However, Deltamax was too slow and sensitive to
physical pressures, such as touch, to serve as a practical storage
element.
Confident that his notion had merit, Forrester enlisted the help of
other engineers. His idea was to string up doughnut-like rings, or
cores. of magnetic material on a grid of wires. Thus, just
as every point on a map possesses its own coordinates, so would
every core on the grid. For example, a core on the third row and
fourth column of the first grid would have a coordinate, or
address, of, say, 3,4,1; likewise, a core on the third row, fourth
column of the second grid would bear the address
3,4,2. By
energizing the proper pair of row and column wires on a given grid,
a computer could read or write a bit into a magnetic-core mernory.
If a computer used sixteen-bit words, then every bit in the word
would be located at the same address on every grid.
Forrester's scheme was simple in principle, but it took a great deal
of work to put into effect. A better material than Deltamax had to
be found, and Forrester eventually settled on ceramic ferrite, which
was much faster and hardier. And then, because Whirlwind was tied up
with other important computational chores, a special computer, a
smaller version of Whirlwind, had to be built to test the new
memory. (The machine was constructed under the direction of Kenneth
Olsen, a graduate student who, several years later, established the
Digital Equipment Corporation, one of the largest computer
manufacturers in the world.) The test computer worked perfectly, and
a core memory was installed in Whirlwind in the summer of
1953
-.four years after Forrester had dreamed up the idea. The effect on
Whirlwind's performance was impressive: operating speed doubled,
input data rate quadrupled, and maintenance time on the memory
banks felt from four hours a day to two hours a week.
In August
1949,
the Soviet Union exploded an atom bomb, and the Cold War suddenly
became a much deadlier affair. The international situation was
already tense: the Berlin blockade had ended only three months
earlier; most of Eastern Europe was in Russian hands; China was
about to fall to the communists; guerilla wars were raging in
Greece and Turkey; and North Korea was making ominous threats
against the southern half of the country. When, in September, the
Truman administration broke the news about the Russian bomb, the
disclosure provoked a wave of fear and confusion - a reaction that
intensified with the equally frightful revelation that the Soviets
had developed long-range bombers capable of crossing the North Pole
and attacking the United States.
At that time, America's air defense system was a patchwork of radar
stations and control centers on the East and West coasts. Left over
from World War 11, it was utterly inadequate to the Russian threat.
When the net detected a suspicious aircraft, for example,
the nearest Air Force base was notified and a fighter was dispatched
on an interception course plotted by an air traffic controller or a
navigator. As long as it wasn't confronted by many attackers, and
as long as the intruders weren't flying very fast or very low, the
net was satisfactory.
But the polar approaches over Canada and most of the United States
lay outside the surveillance system, and the country would be
helpless against a massive attack, particularly by bombers sneaking
in under the radar. At low altitude, ground-based radar has a very
short range, and the only way (in the late
1940s)
to guard against low-flying aircraft was to set up a thick battery
of radar stations, which only made the job of coordinating a defense
much more difficult. Planes passing from one air sector to another
could easily get lost in the shuffle.
Jolted by the Soviet threat, the U.S. Air Force appointed a civilian
committee - the Air Defense System Engineering Committee - to study
the country's air defenses and to recommend a more effective system.
In its final report, issued in October
1950,
the committee called for, first, the immediate upgrading of the
existing defense batteries and, second, the development of a
comprehensive computerized defense network for North America. The
project promised to consume billions of dollars, but. the
committee's recommendations reflected a national consensus to
protect the United States at any cost. So, in December, the Air
Force asked MIT -- the inventor of Whirlwind the world's only
realtime computer - to establish a research center to design, the
net
and supervise its construction. MIT was promised. all the money it
needed.
The system, which came to be known as SAGE, for Semi-Automatic
Ground Environment, proceeded along several fronts. Even before the
committee had released its report, Forrester's Dig ital Computer
Laboratory was taken over by the Air Force (much to the delight of
ONR, which had grown tired of footing the bills) and Whirlwind
became the prototype of the SAGE computer. Forrester and his crew
had to invent an entire technology. Computer monitors ---
television-like screens -- were developed to display tracking
aircraft and to provide a means for communicating directly with
Whirlwind. And programs were written to enable Whirlwind to keep
track of aircraft and to compute interception courses automatically.
On 20 April 1951, Whirlwind was put to the test. Two prop-driven
planes took off into the sky above Massachusetts, one plane acting
as the target, the other as the interceptor. The target plane; was
picked up by an early-warning radar and displayed. on Whirlwind's
monitor in the form of a bright spot of light, designated "T," for
target. Meanwhile, the interceptor, forty miles away, was shown on
the screen by a spot labeled "F," for fighter.
At the direction of the air traffic controller, Whirlwind
automatically computed an interception course, and the controller
steered the fighter pilot to the target by radio. Whenever the
target changed course, the controller radioed new directions to the
pursuing fighter. Three interceptions were tried that day, and
Whirlwind brought the fighter to within 1,000 yards of the target
every time. In a much more challenging test two years later,
Whirlwind managed to keep tabs on forty-eight aircraft.
Meanwhile, at Lincoln Laboratory, the large research center MIT had
established in Lexington, Massachusetts, to supervise the
development of SAGE, scientists and military planners were trying to
work out a general defense plan. In the end, they decided to divide
the United States and Canada into twenty-three air sectors. All but
one of the sectors were in the United States, with the twenty-third
centered at North Bay, Ontario, guarding the northern approaches to
the continent. Each sector would have its own direction center, a
bomb-proof shelter where Air Force officers, using a real-time
computer like Whirlwind, would monitor the skies and, if necessary,
fight off an attack. There would also be three supreme combat
centers, where the nation's overall defense would be coordinated.
(Another center was installed at Lincoln Lab for ongoing research
and development.)
Forrester became the chief engineer of the SAGE computers - he had
come a long way since the days of the Navy's trainer-analyzer. An
advanced version of Whirlwind - Whirlwind II - was built, and the
SAGE computer moved a step closer to production.
By the end of
1952,
Lincoln Lab had started searching for a prime contractor to build
the computers, and, not surprisingly, picked IBM. As the biggest
data-processing firm in the country, it had the resources, the
engineers, and the management to take on an enormous project like
SAGE. And IBM gained much more than money from the contract; it
received a front row seat on the latest and most important
developments in computer technology. Magnetic-core memories
appeared in commercial IBM computers (the
704,
in
1955)
before showing up in other companies' products, and IBM became the
leading industrial expert in real-time applications.
In
1955,
Whirlwind II was superseded by another prototype of SAGE, designed
by MIT's Digital Computer Lab and IBM and built at IBM's
Poughkeepsie, New York, factory. Despite the computer's high
reliability, it was not, obviously, infallible; yet any operational
failure of a SAGE computer, no matter what the reason, was
unacceptable. The machines had to run twenty-four hours a day every
day of the year, and a breakdown during an attack
might lead to a catastrophe. Rethinking its original plans, which
called for a single computer at each direction center, Lincoln Lab
decided that the SAGE computer should be duplexed. In other words,
each computer would contain two central processors, central units,
and read/write memories, but share the same input, output, and bulk
storage facilities. Thus, if one processor broke down, the other
would kick in immediately.
In July 1958, the first SAGE center, a grim, windowless,
four-story concrete blockhouse, went into operation at McGuire Air
Force Base in New Jersey. Twenty-six other centers were built over
the next five years. Each center contained communications equipment,
air conditioners, electrical generators, sleeping quarters, and a
SAGE computer. Consisting of 55,000 tubes - more than any
other computer, before or since - and weighing 250 tons, a
SAGE computer could run fifty monitors, or workstations; track
as
many as four hundred airplanes;
store one million bits of data in internal and external memory
(magnetic cores and magnetic drums); and communicate with up to one
hundred radars, observation stations, and other sources of
information, combining the data to produce a single, integrated
picture of whatever was going on in the sky.
The SAGE computers were remarkably reliable, out of order a mere
3.77 hours a year, or 0.043 percent of the time. In large
part, SAGE's reliability was the result of a clever tube-checking
technique, developed for Whirlwind, that detected weak tubes before
they gave out; and of a fault-tolerant system that, by rotating
signals to redundant components, enabled the computer to work
properly even when certain parts failed. Since SAGE never had to
deal with a real attack, we don't know how foolproof the system
actually was. (For example, an atomic blast in the atmosphere above
a SAGE center probably would have damaged the computer's circuits
and communications lines.)
SAGE was under almost constant development and refinement. As new
weapons, such as ground-to-air missiles and surveillance
satellites, appeared, they were incorporated into the sys tem. And
when advances in electronic technology led to the invention of the
miniaturized solid-state components called integrated circuits, or
ICs (also known as microchips), the SAGE computers were dismantled
one by one. By January 1984, twenty-six years after the
construction of the first SAGE center and an eon in the short
history of computers, the last installation closed down. But most of
SAGE's huge blockhouses are still standing, relics of the Cold War.
"The buildings of the direction centers were formidable to look
at," recalled Norman Taylor, a SAGE engineer:
dog 1
Aside from ENIAC and von Neumann's JAS machine, which established
the paradigm of the stored-program computer, Whirlwind was the
source of more significant technological innovations than any other
computer. As the first real-time computer, Whirlwind led the way to
such computational applications as air traffic control, real-time
simulations, industrial process control (in refining and
manufacturing, for example), inventory control, ticket reservation
systems, and bank accounting systems. It gave birth to
multiprocessing, or the simultaneous processing of several
predetermined programs by different units of the machine, and
computer networks, or the linking of several computers and other
devices into a single system. It was the first computer with
magnetic-core memories and interactive monitors. And it was the
first sixteen-bit computer, which paved the way for the development
of the minicomputer in the mid-1960s (as we shall see in the next
chapter).
Almost all of these innovations were incorporated in SAGE (which
was, however, a thirty-two-bit computer), along with some new ones,
such as back-up computers and fault-tolerant systems. But SAGE's
technological significance doesn't derive from any particular
technical innovation or set of innovations. Rather, it stems from a
lesson. Above all, SAGE taught the American computer industry how
to design and build large, interconnected, real-time data-processing
systems. Through SAGE, Whirlwind's fabulous technology was
transferred to the world at large, and computer systems as we know
them today came into existence.
In 1954, while SAGE was under construction, IBM began work on a
real-time computer seat-reservation system for American Airlines. A
much smaller version of SAGE, it was known as SABRE, or
Semi-Automatic Business-Related Environment. It consisted of a
duplex computer - one in constant use, the other standing by in case
of trouble - and 1,200 teletypes all over the country, linked via
the phone lines to the airline's computing center north of New York
City. The system took ten years and $300 million to develop, and
wasn't in full operation until late in 1964. At that time, it was
the largest commercial real-time data-process-
In
1952,
while the IBM
701
was under construction, Cuthbert C. Hurd, the mathematician who ran
the firm's applied science, department, proposed the development of
a medium-sized computer that would rent for $3,000 to
$4,000
a month. His department, which had representatives in IBM sales
offices throughout the United States and Europe, received many
requests for such a machine. IBM's Washington Federal Office, which
managed the company's government accounts, estimated that it could
place at least fifty computers with the military's various supply
services, which were buried in paperwork. But Hurd's suggestion.
sparked a fierce debate at IBM. As he wrote, years later:
“The opposition within
IBM
to this idea was even stronger than the opposition prior to the
decision to build the
701.
Roberts, Bury, and Rubidge [in the product planning department]
continued to make statements such as,
"You
can never sell a machine that rents
for
more than
$1,000
a month, except to scientists." People from the engineering and
product planning departments were arguing
for
the development
of
more powerful punched-card tn.ac6ines. At a week-long engineering
meeting at the Harriman estate, the debate continued without
resolution
20
hours a day.”
But the old guard couldn't have been more wrong. Determined to keep
the company moving into computers, Tom junior overruled the
objections and decided to proceed. The next step was to decide how
many machines to make, a question that was normally settled by
agreement between several departments. Again, the old guard was
uncooperative. "The market forecast procedure," wrote Hurd,
"consisted of obtaining forecasts from the sales, product planning,
and applied science departments. Roberts, Bury, and Rubidge said
that the forecasts from sales and product planning were zero because
the machine we had in mind could not be produced for
$1,000
a month., and therefore no customers would buy it other than the
kinds who had bought the
701."
Hurd's department, then, was the only one that was willing to make a
forecast, and he called for a production run of
250
machines and a rental rate of
$3.250
to
$3,750
a month. (The rate de pended on whether the machine contained 1,000
or 2,000 words
of external magnetic-drum storage). In July
1953,
Hurd's mediumsized machine, the IBM
650,
was announced. Salesmen started taking orders, and the first
650
was delivered in December
1954.
Inexpensive, practical, reliable, the
650
turned out to be exactly what the market needed, and it was a
runaway success. The
650
was the Model T of the, computer industry - the first mass produced
computer. By December
1955, 120
of these machines had been installed and another
750
had been ordered. Fifteen hundred were manufactured by the time the
model was phased out in
1969.
The punch card side of the company was beginning to fade away.
Meanwhile, IBM also was gearing up for SAGE, the largest computer
project of the decade, and continuing to turn out large computers in
the style of the
701.
Between
1955
and
1956 IBM
introduced three new computers: the business-oriented 702, a
marriage of the 701 and the tape-processing machine IBM had
designed for the Social Security Administratior1; the
705,
the
702's
successor and the first commercial computer with magnetic-core
memories; and the scientific
704,
the
701's
successor and the first computer with a bona fide computer
programming language (which we'll discuss in a moment). About one
hundred
704s
and
705s
were produced altogether.
By 1956,
IBM was no longer a tabulator company but the world's largest and
most profitable computer manufacturer, building the machines by the
hundreds.
All the early computers - ENIAC, the IAS machine, Manchester
University's Mark I, the
IBM 701,
and Whirlwind - were ma
dog 2
deningly difficult to program. In general, the first computers were
programmed either in machine code, which consisted of binary
numbers, or in codes known as assembly languages, which were
composed of letters, numbers, symbols, and short words, such as
"add." After being fed into the computer, assembly programs written
in these languages were translated automatically into machine code
by internal programs called assemblers, and the resulting machine
code, punched out on cards or tape, was then re-entered into the
computer by the operator. As computer technology advanced,
high-level programming languages that used ordinary English phrases
and mathematical expressions were developed. Because computers are
only as useful as their programs, the computer industry -
particularly IBM and Remington Rand - put a great deal of effort
into the development of efficient and economical programming
techniques.
An ENIAC program was really a wiring diagram. It showed exactly how
the machine's switches and plug boards ought to be set to solve a
given problem - not at all what we'd consider a program today. But
ENIAC was quite unlike its stored-program descendants. For example,
it possessed two kinds of circuits: numerical circuits, which
relayed the electrical pulses that represented numbers, and
programming circuits, which coordinated the sequences of operations
that implemented a program. As a result, an ENIAC program consisted
of two parts, one dealing with the numerical circuits, the other
with the programming ones. Every single operation had to be provided
for, and it took two or three days to set up ENIAC for a complicated
problem. Programmers had to know the machine inside out, right down
to the smallest circuits.
When ENIAC was built, there were no formal, standardized, conceptual
procedures for solving problems by computer. So the ENIAC team set
about inventing one. Herman Goldstine, the mathematician and Army
lieutenant who brought Mauchly's idea for an electronic calculator
to the attention of the Ordnance Department, thought that a
pictorial representation of a computer's operation would be the best
aid to clear thinking and careful planning. With von Neumann's help,
he developed flow charting. Although flow charts have since fallen
out of favor as a programming tool, many programmers still use
them.
By the late
1940s,
ENIAC had been superseded by stored-program computers, which meant
that instead of fiddling with a computer's wiring, you now could
feed instructions directly into the machines through punch card
readers, magnetic-tape decks, or other means. For example, the first
stored program run on the Mark I consisted of binary numbers entered
via a keyboard, with each key corresponding to a coordinate, or
address, in the memory. A list of instructions for finding the
highest factor of a number, it contained seventeen lines of sixteen
bits each. The program itself has been lost, but a line in it might
have looked like this:
1001000010001001.
The last three digits specified the operation (addition,
subtraction, and so on), while the first thirteen signified the
address either of another instruction or of a piece of data.
Although this programming method was a marked improvement over
ENIAC's, it nevertheless left much to be desired. The binary system
is ideal for machines but awkward for people. Therefore, Alan
Turing, the Mark I's chief programmer, developed an assembly
language (or
symbolic
language as it was also called at the time) that substituted letters
and symbols for Os and
1s.
For example, a "/W" ordered the Mark I to generate a random number;
a "/V," to come to a stop. The language's instruction set, or
repertoire of commands, contained fifty items, sufficient to
perform almost any operation. The system was really a mnemonic code
- and a clumsy one at that - whose symbols, entered via a
teleprinter, were automatically translated into binary math by the
computer. There was nothing complicated about the translation
process; every letter and symbol was turned into a predetermined
binary number, and then executed.
By the way, the Mark I's random number generator, which was
installed at Turing's suggestion and ran off a source of
electronic; noise, supplied some fun and games. F. C. Williams, who
headed the Mark I project and who invented electrostatic storage
tubes, wrote a little gambling program that counted the number of
times a given digit, from 0 to
9,
was produced by a run of the generator. But Williams adjusted the
generator to lean toward his favorite number, and he enjoyed betting
against unsuspecting visitors. The beginnings of computer crime!
UNIVAC was programmed with a simpler and more advanced language
than the Mark I. In
1949,
at Mauchly's suggestion, an
alphanumeric instruction set was devised for BINAC and adapted, in
improved form, for UNIVAC. This instruction set was called Short
Code, and it enabled algebraic equations to be written in terms
that bore a one-to-one correspondence to the original equations. For
example, a = b + c was represented as SO 03 S1 07 S2
in Short Code, with S0, S1, and
S2 standing for a, b, and
c; 03 meaning "equal to"; and 07
signifying "add." Inside UNIVAC,
an interpreter program automatically scanned the code and executed
each line one at a time. (That is, it did not produce cards or tape
that had to be reentered into the machine; it carried out the
program automatically.)
Although Remington Rand made many extravagant claims for Short Code,
you still had to supply detailed instructions for every operation.
In the early
1950s,
most computers were used
for scientific and engineering calculations. These calculations
involved very large numbers, and the usual way of writing a number -
groups
of figures separated by a comma - was inconvenient. Instead,
programmers used the floating-point system of numerical notation,
which reduced big numbers to a more manageable size. (A
floating-point number is a fraction multiplied by a power of two,
ten, or any figure. For example,
2,500 is .25 x 104;
250,000 is
.25 x 106;
and 25,000,000 is .25 x 106.)
But the computers of the period
couldn't perform floating-point operations automatically. Nor could
they automatically assign memory addresses, a task known as
indexing, or handle input and output. As a result, programmers had
to spend a lot of time writing subroutines, or segments of
programs, telling the machines exactly how to perform these
operations. And computers spent most of their time carrying out
such subroutines.
The more forward-looking programmers began tinkering with the idea
of automating programming (and they're still working on it). If
indexing, floating-point, and input/output operations could be
performed automatically by computers, then the more creative aspects
of programming --- the things that only people could do - would be
left to the programmers, and the machines would be freed from many
time-consuming chores. Of course, all this was easier said than
done. You needed an internal program that was smart enough and fast
enough to translate a programmer's instructions into efficient
machine code. In other words, wrote John Backus and Harlan Herrick,
two IBM programmers who, as we shall see, managed to develop just
such an internal program: "Can a machine translate a sufficiently
rich mathematical language into a sufficiently economical program
at a sufficiently low cost to make the whole affair feasible?"
In
1951,
Grace Murray Hopper, a mathematician at Remington Rand, conceived
of a new type of internal program that could perform floating-point
operations and other tasks automatically. The program was called a
compiler, and it was designed to scan a programmer's instructions
and produce, or compile, a roster of binary instructions that
carried out the user's commands. Unlike an interpreter, a compiler
generated an organized program, then carried it out. Moreover, a
compiler had the ability to understand ordinary words and phrases
and mathematical expressions.
Hopper and Remington Rand devised a compiler and associated high
level language that had some success. Although "automatic
programming" helped the firm sell computers, it wasn't all that it
was cracked up to be. ("Automatic programming, tried and tested
since
1950,
eliminates communication with the computer in special code or
language," declared a UNIVAC news release in
1955.)
But Hopper was an excellent proselytizer, and her techniques
spread. In
1953,
two MIT scientists, J. Halcombe Laning and Niel Zierler, invented
one of the first truly practical compilers and high-level languages.
Developed for Whirlwind, it used ordinary words, such as "PRINT"
and "STOP," as well as equations in their natural form, like a + b =
c. In addition, it performed most housekeeping operations, such as
floating-point, automatically. Unfortunately, the compiler was
terribly inefficient. Although Laning and Zierler's language was
easy to learn and use, the compiler required so much time to
translate the programmer's instructions into binary numbers that
Whirlwind was slowed to a crawl. "This was in the days when machine
time was king," Laning recalled, "and people time was worthless."
As a result, their system, though highly influential, was rarely
used.
When IBM began taking orders for the scientific
704,
in May
1954,
they introduced it as the first of a new class of computers whose
circuits could perform floating-point and indexing operations
automatically. A
704
programmer wouldn't have to compose floating-point subroutines for
every scientific or engineering calculation, and the computer
wouldn't have to waste costly time wandering down the sticky byways
of floating-point operations. At last, the two most time-consuming
programming chores would be eliminated. But other programming
inefficiencies now stuck out like boulders on a plain, unable to
hide in the shade of floating-point and indexing subroutines.
The
704
cried out for a compiler that could translate simple high-level
instructions into machine codes that were just as good as those
written by a programmer.
In 1953, John Backus headed a small group of programmers that was
developing an assembly language for IBM's mammoth 701. Known as
Speedcoding, the language was roughly similar to UNIVAC's Short
Code. The Speedcoding effort had taken most of the year, and the
Speedcoding interpreter and programmer's manual had gone out to 701
users in the fall. It was now time to turn to the 704, then on the
drawing board. Backus sent a memo to his boss, Cuthbert Hurd,
suggesting the development of a compiler and higher-level language
for the 704. Hurd, who ran the applied science department, approved
the idea, and the FORTRAN, or FORmula TRANslation, project was
established.
It was a modest effort. At first, it consisted of Backus, an
easy-going young man with a master's in mathematics from Columbia
University, and Irving Ziller, another programmer. By the summer of
1954, three more programmers had joined the team, and they began
running test programs on an IBM 701 in the IBM complex at 590
Madison Avenue, in Manhattan. From the beginning, the group
concentrated on the compiler. "We simply made up the language [the
commands that make up a user's program] as we went along," Backus
recalled.
We did not regard language design as a difficult problem, merely a
simple prelude to the real problem: designing a compiler which
could produce efficient [binary] programs. Of course one of our
goals was to design a language which would make it possible for
engineers and scientists to write programs for the
704.
We also wanted to eliminate a lot
of the bookkeeping and detailed, repetitive planning which hand
coding [in assembly language] involved.
Backus and his team began writing the compiler in early 1955, after
a year and a half of preliminary work. Although Backus had
originally estimated that it would take about six months to compose
this internal program, the task turned out to be far more difficult
than he had imagined, and it wasn't until the summer of 1956 that
the compiler was ready for troubleshooting. "The pace of debugging
was intense," wrote Backus. "Often we would rent rooms in the
Langdon Hotel (which disappeared long ago) on 56th Street,
sleep there a little during the day and then stay up all night to
get as much use of the computer ... as possible.
It was an exciting period; when later on we began to get fragments
of compiled programs out of the system, we were often astonished at
the surprising transformations in the indexing operations and in the
arrangement of the computation which the compiler made, changes
which we would not have thought to make as programmers ourselves.
In April 1957 - about three and a half years after the project had
begun - the compiler was finished. Consisting of about 25,000 lines
of machine code, it was stored on magnetic tape and distributed to
every 704 installation. A small, handsomely produced programming
manual went along with it; only fifty-one pages long, it described
the high-level language and explained what each of its thirty-two
instructions, such as PUNCH, READ DRUM, and IF DIVIDE CHECK,
accomplished. But FORTRAN had a difficult childhood, and there were
a lot of bugs to be ironed out in the field before it was reliable.
As one programmer recalled:
“Like most of the early hardware and software systems, FORTRAN was
late in delivery, and didn't really work when it was delivered. At
first people thought that it would never be done. Then when it was
in field test, with many bugs, and with some of the most important
parts unfinished, many thought it would never work. It gradually got
to the point where a program in FORTRAN had a reasonable expectancy
of compiling all the way through and maybe even of running.”
Nevertheless, FORTRAN was a landmark in the history of computing.
Easy to learn and to use, it was an enormous advance over assembly
languages like Short Code and Speedcoding. Now anyone with a logical
mind and the desire could learn to program a computer. You didn't
have to be a specialist, familiar with the inner workings of a
computer and its demanding assembly language. By using FORTRAN's
simple repertoire of commands, you could make a computer do your
bidding, and the compiler would rapidly and automatically translate
your instructions into efficient machine code. The invention of
FORTRAN was one of IBM's most important technical achievements, and
it certainly helped the company sell computers.
The original FORTRAN compiler ran only on the
704,
but programmers went on to develop FORTRAN compilers for other IBM
computers, and competing manufacturers, licensed by IBM, adapted
FORTRAN to their own machines. Lo and behold, computers soon began
speaking the same language - although a FORTRAN program written for
one type of computer invariably had to be modified to run on another
- and programmers no longer had to master a different language for
every computer. Moreover, other computer languages began to appear.
As a scientific and engineering language, FORTRAN wasn't well
suited for business and other applications, and many languages were
devised to fill the gaps, such as COBOL (COmmon Business-Oriented
Language); ALGOL (ALGOrithmic Language); and one of the most popular
of all, BASIC (Beginner's All-purpose Symbolic Instruction Code).
In
1955,
Remington Rand merged with the Sperry Corporation, a leading
producer of electronic weaponry, hydraulic equipment, and farm
machinery. James Rand was sixty-nine years old in
1955
and contemplating retirement. His company, which had grown an
unimpressive
75
percent between
1930
and
1946,
needed a senior partner, and Sperry seemed like a good choice. Run
by Harry Vickers, a self-taught hydraulic engineer and a friend of
Rand's, Sperry was a healthy, prosperous, well-managed firm whose
revenues had zoomed nearly
700
percent since
1946.
Sperry was almost twice as big as Remington Rand, and much more
vigorous. (In
1954,
Sperry grossed
$57
million on
$441
million in revenue. Remington Rand, on the other hand, earned
$27
million on
$224
million in sales.) But military contracts accounted for most of
Sperry's revenues, and the firm wanted to establish a broader, more
stable base in the private sector, preferably in electronics.
Shortly before the merger, Remington Rand's UNIVAC had an installed
base of about thirty big computers to IBM's four. Meanwhile,
UNIVAC's makers were happily scrambling to fill a substantial
backlog of orders. On the basis of these facts, Vickers believed
that he had acquired the country's leading computer manufacturer.
But he was in for a shock. In
1954
IBM started taking orders for the
700
series of computers, then on the drawing boards and much superior to
UNIVAC's machines, and UNIVAC soon slipped to second place. By
1956,
IBM had seventy-six large computers in the field to UNIVAC's
forty-six, and its backlog was almost three times the size of
UNIVAC's. In medium-sized computers, the fastest-growing segment of
the computer market, IBM seemed to be running the race alone. The
company had placed seven times as many of these computers
(369)
as all the other manufacturers combined, and had four times as many
(920)
on order. Caught unprepared, UNIVAC didn't even have a medium-sized
machine on the market until
1958.
What went wrong with UNIVAC? Just about everything. More of a
promoter and manipulator than a manager or builder, James Rand ran a
one-man show. Although his decision to get into computers was quite
astute, he really regarded the UNIVAC division as a sideline; he was
more interested in electric shavers, office furniture, and
typewriters. UNIVAC wasn't set up right, either. It was divided into
two parts, with Eckert and Mauchly's enterprise in Philadelphia, and
the other arm, Engineering Research Associates (ERA), in St. Paul,
Minnesota - and the two halves didn't get along with each other. In
1957,
after organizational changes that put St. Paul at a disadvantage,
William C. Norris, one of ERA's founders, left to form his own
company, taking most of the staff with him. With masterly command of
technology, Norris's venture, the Control Data Corporation, became
the leading manufacturer of supercomputers - big, high-speed
machines capable of performing tens of millions of operations a
second.
Meanwhile, Remington Rand's sales force proved no match for IBM's.
When a team of IBM salesmen called on a customer, they worked hard
to show how the installation of an IBM computer would get the
payroll out faster, keep better track of sales, boost efficiency,
and save money. And they had a corps of specialists - programmers,
engineers, and business experts - to assist them. When a group of
UNIVAC salesmen visited a client, however, they tended to harp on
technological matters - mercury delay lines, decimal versus binary
computation - that went right over the heads of their customers, who
were chiefly interested in the answer to one question: "What will a
computer do for me?"
Although UNIVAC had a team of traveling salesmen that whipped
up interest in computers, Remington Rand's branch offices failed to
follow through. They were more familiar with the company's
traditional products, which were much easier to sell.
And if all this wasn't bad enough, UNIVAC's managers were as inept
at negotiating profitable deals as Eckert and Mauchly. In
1956,
in mindless repetition of Eckert and Mauchly's penchant for
fixed-fee contracts, UNIVAC signed a $3 million agreement with the
Atomic Energy Commission for the development and construction of a
supercomputer. The Livermore Atomic Research Computer (LARC) ended
up costing
$20
million, and UNIVAC had to make up the difference. Although UNIVAC
managed to sell a second LARC to the Navy, they didn't recoup their
loss.
As long as Rand, who became Sperry's vice chairman after the merger,
was in charge of UNIVAC, it was difficult to attack the division's
problems. When Rand finally retired in
1959,
Vickers brought in Dause L. Bibby, a former IBM vice president, to
run UNIVAC. But it was too late. "At IBM," recalled a former Sperry
executive, "Bibby would press a button and a thousand guys in
pin-striped suits would come out and salute; when he pressed the
button at UNIVAC, nothing happened. Mobilizing an effective
organization takes one kind of talent; breathing life into a dead
one takes another." UNIVAC lost about
$250
million between
1956
and
1967,
when it finally turned a minuscule profit.
IBM's lead was unassailable. By
1961,
when vacuum-tube computers were giving way to a new generation of
machines con-
sisting of
transistors (which we'll discuss in the next chapter),
71
percent
of the country's $1.8 billion in computers had been built by IBM.
UNIVAC was a distant second, with about 10 percent of the market,
followed by Burroughs and then, more or less in a clump, Honeywell,
RCA, Philco, NCR, General Electric, and Control Data. A host of
smaller companies, such as Bendix and Royal McBee, fluttered at the
bottom of the industry, supplying small computers. And by
1964,
when
transistor machines were giving way to a third generation of
computers composed of integrated circuits, IBM's share of the
$5.3
billion in installed computers had climbed to
76
percent.
IBM had risen to the top by dint of its vision, excellence, and
dedication, and the ineptitude of its competitors.
In
1964,
the U.S. Patent Office finally issued Eckert and Mauchly's ENIAC
patent - seventeen years after they had applied for it. The delay
had been caused by technical disputes of various kinds, chiefly
between Sperry Rand, which had inherited the patent rights from
Remington Rand, and Bell Labs, which contended that the ENIAC patent
interfered with some of its own. At long last, the disputes were
settled by the Board of Patent Interferences, the patent was
granted, and Sperry began notifying computer companies that they
were violating the ENIAC patent. Sperry offered its competitors
patent licenses at a fee of
1.5
percent of the selling price of their equipment. (IBM was excluded;
it had reached a
$10
million royalty agreement with Sperry in
1956.)
With millions of dollars at stake, no one accepted Sperry's offer
and the issue ended up in the courts.
In May
1967,
Sperry sued Honeywell and the Control Data Corporation for patent
violation. Meanwhile, Honeywell countersued, accusing Sperry of
trying to enforce a fraudulent patent.
The Honeywell-Sperry case was consolidated and assigned to the
federal district court in Minneapolis (Honeywell's home city); the
Sperry-Control Data suit went to a federal court in Baltimore. The
cases involved two different patents. In the Control Data dispute,
Sperry was seeking to enforce a
1954
patent covering Eckert and Mauchly's mercury delay line memory. The
essence of this patent was the idea of regenerative memory - the
notion of retaining stored information by periodically re-energizing
it. In the Honeywell case, Sperry was seeking to uphold the ENIAC
patent only (although the judge decided to rule on the regenerative
memory patent as well).
In
1967,
a Control Data attorney read about John Atanasoff
in a book on computers, and lawyers representing all sides in the
cases converged on Frederick, Maryland, where Atanasoff had retired
after rising to a vice president of the Aerojet General
Corporation. (He had left the Navy in
1952
and established an electronics company with several colleagues.
They sold the firm to
Aerojet in
1956.)
One of the lawyers briefed Atanasoff about the lawsuits and gave him
copies of the disputed patents. Atanasoff, who had seen ENIAC and
UNIVAC but had not studied Eckert and Mauchly's machines very
closely, examined the documents. It seemed to him that many of
Eckert and Mauchly's claims derived from his work. Angered, he
agreed to help Honeywell and Control Data overturn Sperry's patents,
joining their defense staffs as a paid consultant.
A patent consists of three parts: illustrations of the device being
patented; a written description of the device and its operation;
and a list of claims covering only those ideas that originated with
the device. In order to be valid, a patent must, among other things,
be filed within a year of the creation of the invention. In
addition, it cannot be preceded by a published report describing the
invention in detail.
The Honeywell-Sperry case, the first to go to trial, opened on
1
June
197]
and ended
135
days later, on
13
March
1972.
Seventy-seven witnesses testified and
32,654
exhibits, including Bab bage's autobiography, were filed. All told,
the trial transcript filled
20,667
pages. Obviously, it's impossible to give a detailed account of the
trial here, but at least two points are worth mentioning. A working
model of part of Atanasoff's machine was demonstrated in court, and
Sperry's attorneys glossed over the experiments Mauchly had
performed in analog and digital electronics before he met Atanasoff.
They did so, it seems, both because they underestimated the
seriousness of Atanasoff's legal threat and because the evidence
surrounding Mauchly's early work seemed too insubstantial to stand
up in court.
Judge Earl Larson handed down his decision on
19
October
1973,
and Sperry lost on every count. Larson invalidated the ENIAC patent
on four grounds, each of which would have been suffi cient to strike
down Eckert and Mauchly's claims. First, that the patent had been
filed more than a year after the machine had been put to use.
Second, that von Neumann's "First Draft of a Report on the EDVAC"
constituted prior publication. Third, that Eckert and Mauchly's
attorneys had engaged in misconduct by deliberately delaying the
patenting process, hoping to put off the day the patent took effect
and thus increasing its financial value to Sperry Rand.
Mauchly "did not themselves first invent the automatic electronic
digital computer, but instead derived that subject matter from one
Dr. John Vincent Atanasoff." Finally, Larson also invalidated the
regenerative memory patent on the ground that it too had been
derived from Atanasoff.
Larson's decision appears to be legally correct; Atanasoff’s machine
did embody many technical innovations that ended up in ENIAC, and it
indeed does appear that Mauchly was directly influenced by
Atanasoff's work. There were, however, some puzzling and
contradictory aspects in Larson's decision; for example, although
the judge credited Atanasoff with having invented an "automatic
electronic digital computer," there was nothing automatic about the
machine. ENIAC was a much better example of an automatic electronic
digital computer, and one wonders exactly what Larson had in mind by
the term automatic. Unfortunately, Sperry, which had spent about
$1
million on the case, decided not to appeal, and the Honeywell and
Control Data cases were dropped.
A lawsuit is one thing, historical judgment another. Atanasoff was
a solitary inventor who failed to grasp the importance of his
invention and didn't even bother to publicize it, let alone patent
it. After leaving Iowa State in
1942
for a job with the Navy outside of Washington, D.C., he lost all
interest in computers. Although he saw ENIAC after the war, he did
not make any effort, even for curiosity's sake, to draw any
parallels between the giant machine at the Moore School and his own,
now disassembled, device. He championed his invention only after a
group of lawyers invited him to join their cause. Despite Larson's
rulings, it was Eckert and Mauchly's talent and industriousness that
led to the development of the stored-program computer and to the
birth of the computer industry. Eckert and Mauchly were stripped of
their legal claim to primacy in the history of computers, but their
historical position is unshakable. |