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 Uni­versity and the EDVAC at Cambridge were subsidized by the Brit­ish 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. Al­though many computers ended up outside the military establish­ment - the Census Bureau, for example, bought three UNIVACs, and the U.S. Weather Bureau acquired a 701 - the first com­puters 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 calcu­late 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 de­sign and construction; and the passengers, those who used the computers, came from academia, defense contractors, and re­search institutes. There was a lot of intermingling of drivers, me­chanics, 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 technol­ogy shrank, and private capital assumed a growing share of re­search 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 De­vices Center asked MIT to undertake a feasibility study of a gen­eral-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 pro­posed 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 Cor­don 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 com­plicated 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 re­cording every moment of the "flight" for later analysis. The con­troller had to be fast and accurate; in other words, it had to be ca­pable 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 servomechanis­tic 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 im­possible - 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, how­ever, 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 devel­opment, 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 confer­ence 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 engi­neers, and we began to build a digital computer in late 1945 .... But the task was just barely possible because of [the] lim­ited availability of test equipment and other devices and com­ponents. No technical infrastructure existed as we know it to­day. 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 estab­lished 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 com­puter, 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 cor­ridor, 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 EN­IAC - 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 microsec­onds 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. (Infor­mation was stored on the faces in the form of positively or nega­tively charged spots of electrons, shot from "guns" at the bottom of the tubes.) Since the tubes cost about $1,000 apiece, the Whirl­wind project was spending about $32,000 a month for internal storage. Moreover, the computer was unreliable, out of order sev­eral 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 advertise­ments in the magazine Electrical Engineering," he recalled in 1975,

“...when I saw an advertisement for a material called Delta­max.... 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 immedi­ately began to dominate my thinking, and for the next two eve­nings I went out after dinner and walked the streets in the dark thinking about it.

Forrester ordered some Deltamax, a metallic, magnetic ma­terial, 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 cur­rent 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 sensi­tive 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 ad­dress, of, say, 3,4,1; likewise, a core on the third row, fourth col­umn of the second grid would bear the address 3,4,2. By energiz­ing 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 Delta­max 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 quadru­pled, 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 inter­national 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; guer­illa 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 con­troller or a navigator. As long as it wasn't confronted by many at­tackers, 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 at­tack, 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 Com­mittee - 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 ex­isting defense batteries and, second, the development of a com­prehensive computerized defense network for North America. The project promised to consume billions of dollars, but. the commit­tee'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 real­time 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. Com­puter monitors --- television-like screens -- were developed to dis­play 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, desig­nated "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 automati­cally 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 pur­suing fighter. Three interceptions were tried that day, and Whirl­wind 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 de­cided 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 of­ficers, 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 produc­tion.

 

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. Mag­netic-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 rea­son, 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, Lin­coln Lab decided that the SAGE computer should be duplexed. In other words, each computer would contain two central proces­sors, 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 quar­ters, 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 mag­netic 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 be­fore 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 comput­er's circuits and communications lines.)

 

SAGE was under almost constant development and refine­ment. As new weapons, such as ground-to-air missiles and sur­veillance 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 inte­grated circuits, or ICs (also known as microchips), the SAGE com­puters 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 formi­dable 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 sev­eral 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 develop­ment 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 com­puter 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 Ameri­can 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 cen­ter 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, de­partment, 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 ma­chine. IBM's Washington Federal Office, which managed the com­pany'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. Rob­erts, 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 sci­entists." People from the engineering and product planning de­partments 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. Deter­mined 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 cus­tomers 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 ma­chines 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 medium­sized 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 ex­actly 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 de­signed 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 tab­ulator company but the world's largest and most profitable com­puter 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 writ­ten 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 ad­vanced, high-level programming languages that used ordinary English phrases and mathematical expressions were developed. Because computers are only as useful as their programs, the com­puter industry - particularly IBM and Remington Rand - put a great deal of effort into the development of efficient and economi­cal 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: nu­merical circuits, which relayed the electrical pulses that repre­sented numbers, and programming circuits, which coordinated the sequences of operations that implemented a program. As a re­sult, 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. Program­mers 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 De­partment, 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 program­ming 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 mem­ory. A list of instructions for finding the highest factor of a num­ber, 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 im­provement 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 reper­toire of commands, contained fifty items, sufficient to perform al­most any operation. The system was really a mnemonic code - and a clumsy one at that - whose symbols, entered via a tele­printer, 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 elec­tronic; 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 gen­erator. But Williams adjusted the generator to lean toward his favorite number, and he enjoyed betting against unsuspecting visi­tors. The beginnings of computer crime!

 

UNIVAC was programmed with a simpler and more ad­vanced language than the Mark I. In 1949, at Mauchly's sugges­tion, 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 writ­ten 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 exe­cuted 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 nota­tion, 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, pro­grammers had to spend a lot of time writing subroutines, or seg­ments of programs, telling the machines exactly how to perform these operations. And computers spent most of their time carry­ing out such subroutines.

 

The more forward-looking programmers began tinkering with the idea of automating programming (and they're still work­ing 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 program­mer'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 mathemati­cal language into a sufficiently economical program at a suffi­ciently low cost to make the whole affair feasible?"

 

In 1951, Grace Murray Hopper, a mathematician at Reming­ton 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 bi­nary instructions that carried out the user's commands. Unlike an interpreter, a compiler generated an organized program, then car­ried it out. Moreover, a compiler had the ability to understand or­dinary words and phrases and mathematical expressions.

 

Hopper and Remington Rand devised a compiler and associated high­ level language that had some success. Although "automatic pro­gramming" 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 spe­cial code or language," declared a UNIVAC news release in 1955.)

 

But Hopper was an excellent proselytizer, and her tech­niques 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 ordi­nary 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 com­piler required so much time to translate the programmer's instruc­tions into binary numbers that Whirlwind was slowed to a crawl. "This was in the days when machine time was king," Laning re­called, "and people time was worthless." As a result, their sys­tem, 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 com­puters 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 engi­neering 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 instruc­tions 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 UNI­VAC'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 Co­lumbia 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 begin­ning, 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 com­piler 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 bookkeep­ing and detailed, repetitive planning which hand coding [in as­sembly 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 proj­ect 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 pro­duced 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, FOR­TRAN 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 lan­guage. 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, com­puters soon began speaking the same language - although a FOR­TRAN 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 engineer­ing 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 reve­nues had zoomed nearly 700 percent since 1946. Sperry was al­most 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 tak­ing 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 com­puters, 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 Re­search Associates (ERA), in St. Paul, Minnesota - and the two halves didn't get along with each other. In 1957, after organiza­tional changes that put St. Paul at a disadvantage, William C. Nor­ris, 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 lead­ing 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 special­ists - programmers, engineers, and business experts - to assist them. When a group of UNIVAC salesmen visited a client, how­ever, they tended to harp on technological matters - mercury de­lay 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 develop­ment 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 or­ganization 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 Con­trol 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 Mauch­ly'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 compa­nies 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 counter­sued, 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 Honey­well 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 re­tired after rising to a vice president of the Aerojet General Corpo­ration. (He had left the Navy in 1952 and established an electron­ics 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 opera­tion; 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. Sev­enty-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 under­estimated the seriousness of Atanasoff's legal threat and because the evidence surrounding Mauchly's early work seemed too in­substantial 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 EN­IAC 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 deliber­ately 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 de­rived 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 puz­zling 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 auto­matic 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. Atana­soff was a solitary inventor who failed to grasp the importance of his invention and didn't even bother to publicize it, let alone pat­ent it. After leaving Iowa State in 1942 for a job with the Navy outside of Washington, D.C., he lost all interest in computers. Al­though 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, de­vice. 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 his­torical position is unshakable.