Read an Excerpt
The Breakneck Race to Create Windows NT and the Next Generation at Microsoft
By G. Pascal Zachary
OPEN ROAD INTEGRATED MEDIACopyright © 1994 G. Pascal Zachary
All rights reserved.
Dave Cutler was reared on adversity. He learned at a young age to care for himself, to keep his own counsel, to find a way around or through the obstacles in his path.
He was born on March 13, 1942, in Lansing, the state capital of Michigan. Lansing was auto country, home to a slew of car and car-parts makers. His father, Neil, worked in Lansing's Oldsmobile plant for nearly his entire life, first in the plant's shipping department and then as a janitor.
Neil Cutler was an intelligent and exacting man, but he was quiet and lacked ambition. He had been stricken with rheumatic fever as a boy, and it had left him too frail to play sports. Poor eyesight made it difficult for him to enjoy the outdoors. A certain bitterness crept into him. He was not sociable; he struck some as almost a hermit. At home, he could be unpredictable, angry and gruff. He drank.
Arleta, Neil's wife, raised her son Dave and his older sister, Bonnie, in an apartment above the home of Neil's parents in DeWitt, a town of some one thousand people about eight miles north of Lansing. DeWitt was surrounded by farmland and consisted mainly of retired farmers who had moved off their farms and into the town. When Dave was eight the Cutlers moved out of town to a forty-acre spread. The land wasn't suitable for farming and did not contain a dwelling. Neil built a small home, one side of which was literally carved out of the earth. By then Arleta had given birth to two more children. The family seemed to spend all its time together in one large room. Arleta kept a large garden, and the family planted pine trees on the land. In time thousands of trees took root and grew.
From the age of ten David Cutler earned money whenever he could. He mainly worked during the summertime for the many farmers in the area, building barns or doing odd jobs. One summer, he worked in a fertilizer plant. Another year he collected old newspapers with a friend, filling an entire trailer for sale to a recycler.
As a teenager, Cutler was drawn to sports. With a graduating class of thirty-four students, his tiny high school pressed him into service. He ran track and played baseball, basketball and football. He was co-captain of the basketball team and the quarterback of the football team. In one game, he ran for two touchdowns, running almost the entire length of the field for one score. He was very fast.
The local newspaper treated Cutler as a star, chronicling his exploits. Neil skipped nearly all of his son's games; it took a personal invitation from the football coach for him even to consider attending the one game during his son's senior year in which every player's father was introduced. Neil (who went) said he disliked sports, but Arleta suspected that jealousy had kept her husband from the sidelines.
Father and son were distant. While still in high school, Cutler moved out of his parents' home for a time, living first with the family of a baseball coach and then with Bonnie. At school, meanwhile, Cutler did well enough without studying hard. Graduating in June 1960, Cutler seemed serene about his prospects. Somewhere inside him sprang a confidence bordering on arrogance and a belief that he could be the best at anything he tackled. Others shared Cutler's buoyant sense of himself. In his high school yearbook, classmates captured his specialness in a line beneath his photograph:
"None but himself could be his parallel."
A small Michigan college called Olivet cobbled together several athletic and academic scholarships, offering them as a package to Cutler. He signed on. His freshman year, he started at quarterback, calling and directing his own plays just like a pro. He threw the ball well and ran one hundred yards fast—in less than eleven seconds. He was about five feet nine inches tall, weighed about 175 pounds and had thick, strong legs. His coach, Stu Parsell, called him "a one-in-a-million player" and marveled at his elusiveness. Cutler was a wily player who confessed he "loved to run over people."
In the huddle, Cutler smartly dished out assignments in between plays. He brooked no dissent, berating teammates for their lapses and telling them: "This huddle is my territory. When you're in it, shut up." When players "screwed up," he said, "I'd really ride them, telling them what to do ... to get out there and do their job."
Coach Parsell realized that Cutler relied on more than athletic skills. "He was smart enough to know he couldn't win alone," Parsell said. "He brought the other players up with him. They rose to him." The team responded to his brash assertions because Cutler led by example and "knew what he wanted."
Cutler's game peaked in his sophomore season. The long-suffering Olivet Comets, who had lost twenty-one games in a row in the late fifties, suddenly went white-hot in the fall of 1961. With Cutler at the helm, the team won its first eight games. Then, in its final game, disaster struck. Midway through the game, Cutler took the snap from the center and rolled right, preparing one of his quarterback rushes. He had already scored that season on just such a gambit. This time, he was in the clear, running full tilt along the sideline, right along his team's bench, so close that Coach Parsell could have grabbed him. Then a defender charged toward him, hurling his body in Cutler's way. Cutler tried to jump over him, but the defender smacked him squarely. He crumpled to the ground, his leg broken, his season over.
Cutler tried to return the next season, but on the eve of the opening game a doctor told him he risked permanent injuries if he played on. Cutler reluctantly withdrew.
With the end of his football days, Cutler concentrated on his studies. He excelled in math, dabbled in the sciences but finally decided to pursue engineering. When he graduated in January 1965, he was offered a job programming computers for General Motors. Along with other big companies, GM had begun shifting its business records from paper to computer in the 1950s. But Cutler was not eager to join GM. He knew nothing about computers, which seemed vaguely threatening—even sinister—to him. In the mid-1960s, many people shared this dystopian view of computers. These machines, which were designed to crunch numbers, were treated with skepticism and sometimes hostility because they symbolized regimentation. Computers seemed to bend humans to their will, forcing men and women to do little more than tend smart machines.
This gave a bad reputation to computers and the task of writing programs for them. Hardly anyone wished to call himself a programmer, and people who did were considered odd. Just a few years before Cutler graduated from Olivet, the top programmer in the Netherlands, an erstwhile physicist, described himself as a programmer on his marriage license. To his dismay, authorities rejected the license on the grounds that there was no such job.
Alert to signs of esteem and status, Cutler held a "very stereotyped view of programmers." To a young man, raised in relative penury and intent on making his way up the economic ladder without kowtowing to authority, programming "seemed a very uncreative job"; and those who did it followers of "this fixed bunch of rules," not leaders who called their own plays.
He wanted no part of software and turned General Motors down flat. Instead he took a post with DuPont. He adapted easily to the conservative and prosperous chemical giant. He kept his hair short and maintained a military bearing. He thought first of earning his keep; he had married a woman he'd met in college, and had already fathered a child.
DuPont assigned Cutler to a unit that helped customers find uses for its materials. One of his first jobs was to model a new way that Scott Paper intended to make foam insulation for use in jackets and other garments. The model was so complicated that it required a computer to create. Off Cutler went to a school run by IBM, where he learned how to program an IBM computer.
Cutler spent a week at the school. He felt humbled. Programming "was just the most bizarre situation, because you're used to doing something and thinking you've done it right," he later said. "But it isn't right. You just don't notice it isn't right. On a computer there is no consolation in discovering you're almost right. Almost means you're still just wrong."
Even veteran programmers often found their jobs excruciatingly tedious. In those days, no one had his own computer, of course. Dozens of programmers would share a single mainframe computer. The mainframe, large enough to fill a room, handled many jobs at once in batches. In batch jobs, a programmer punched instructions onto perforated cards, added a stack to the queue and waited for results. Since the mainframe was so expensive, the batch schedule was strict. It often took hours or longer to learn the fate of a program. If it failed, a programmer could spend an entire day just correcting keypunch errors.
Cutler returned to DuPont determined to excel at programming. The activity intrigued him because, in a program, he was master of his environment. He also found he had a rare ability to hold in his mind at once the various and far-flung pieces of a program. He began to crave programming. Impatient with the long lines in DuPont's computer facility, he worked in the middle of the night, when computer time was much cheaper and he could assemble and revise his cards in peace. "There was hardly anybody there," he recalled. "I could make twice as many mistakes, and get on and off the computer when I wanted to."
Foam making, by contrast, did not keep Cutler awake at night. In less than a year, he had succumbed to the attraction of computing. Having found in the computer the ideal means to answer a question, he promptly lost interest in the question and fell blindly in love with the tool. Indeed, Cutler had found a calling in life. "What I really wanted to do was work on computers, not apply them to problems."
So Cutler, looking for a new job that involved programming, found one with another DuPont division that needed help in maintaining its central computer, which was made by Univac. In the 1950s Univac made the best computers for data processing, but by the late 1960s the company was in decline. DuPont asked Cutler to improve the reliability of its aging Univac, which meant fiddling with the machine's operating system. Until then Cutler had never even thought about operating systems. But the company's computer experts seemed not to know much either, and he jumped in.
Computer programs fall into two rough classes. Applications, or "apps" for short, are the visible world of software. They comprise the programs used by ordinary people. Applications track orders or inventory, retrieve names and phone numbers, prepare a document for printing or control the design of a newsletter.
Operating systems, on the other hand, are part of the invisible world of software. They are the computer's heartbeat, throbbing in the background. Applications may appear to do all the work, but in reality operating systems open and close files, create directories of the stored information and direct the traffic to and from the computer's input, output, storage and networking devices.
In the formative years of digital computing, following World War II, both the operating system and applications were considered afterthoughts by designers. The "hardware" of electronics, as distinct from the "software" of programs, was so difficult that engineers could hardly see past it. The most important type of hardware was the circuitry or processors that actually carried out the instructions given the computer. A second set of devices made it possible to get data into and out of a computer. A third class stored information. A fourth class allowed one computer to send information to another, over special cable or telephone lines.
The question of software generally arose only after the hardware pieces fell into place. Computers were not designed with specific software in mind; rather, the programmer worked with what the hardware gave him. E. W. Dijkstra, a leading theorist of programming, once summarized the prevalent attitudes toward code writing in the formative period of computing. He declared:
What about the poor programmer? Well, to tell the honest truth, he was hardly noticed. For one thing, the first machines were so bulky that you could hardly move them and besides that, they required such extensive maintenance that it was quite natural that the place where people tried to use the machine was the same laboratory where the machine had been developed. Secondly, the programmer's somewhat invisible work was without any glamour: You could show the machine to visitors and that was several orders of magnitude more spectacular than some sheets of coding. But most important of all, the programmer himself had a very modest view of his own work: his work derived all its significance from the existence of that wonderful machine. Because the machine was unique, he knew his programs had only local significance. And since the machine would live for a short time ... he knew that little or none of his code held lasting value.
The essence of programming seemed deceptively simple. A person wrote a request to a computer. This request was stated in a way the computer could understand. It also was stated, ultimately, in terms that only a specific computer could understand. The same request, written exactly the same way, fed to a computer with a different design or circuitry, would be unintelligible.
Besides being handmaidens of a specific computer, the first computer programs were crude. Before World War II, when computers were largely mechanical, a program often amounted to nothing more than a person flipping switches, rerouting wires or shifting gears. In the 1930s, it took many days to prepare the Differential Analyzer, the decade's most powerful mechanical computer, to attack a fresh problem. A decade later, it still could take a few days to set up an early digital computer to answer a tough question.
More flexible machines read requests contained on punch cards or paper tape, but these were fed by hand into a machine. The primitive state of programming cried out for an advance.
The breakthrough came in 1944 when John von Neumann, a Hungarian-born mathematician living in the United States, advanced the concept of a stored program. The idea was familiar to others in the field, but von Neumann saw its significance most clearly. With a stored program, the instructions for the computer could be kept in the machine's own memory and treated in the same way as data. This would make it far quicker to launch a program and easier to modify it or switch from one program to another.
As the stored-program concept spread throughout the nascent computer culture, programming exploded, quickly gaining adherents. It was hard going. Digital computers have either two states, on or off, and so respond only to binary messages, which consist of ones (on) and zeros (off). Every term in a program ultimately must be expressed through these two numbers, ensuring that ordinary mathematical statements quickly grow dizzyingly complex. In the late 1940s, programming a computer was, as one observer put it, "maddeningly difficult."
Before long programmers found ways to produce binary strings more easily. They first devised special typewriters that automatically spit out the desired binary code. Then they shifted to more expansive "assembly" languages, in which letters and symbols stood for ones and zeros. Writing in assembly was an advance, but it still required fidelity to a computer's rigid instruction set. The programmer had to know the instruction set cold in order to write assembly code effectively. Moreover, the instruction set differed from computer model to computer model, depending on its microprocessor design. This meant that a programmer's knowledge of an assembly language, so painfully acquired, could be rendered worthless whenever a certain computer fell out of use.
By the early 1950s, organizations that relied heavily on computers, most notably the three branches of the U.S. military, began to realize that software was a headache, and an expensive one. Leading-edge programmers searched for ways to make it easier to write effective programs. In 1951, Grace Murray Hopper, a mathematician with the U.S. Navy's Bureau of Ordnance Naval Reserve, conceived of a program called a compiler, which translated a programmer's instructions into the strings of ones and zeroes, or machine language, that ultimately controlled the computer. In principle, compilers seemed just the thing to free programmers from the tyranny of hardware and the mind-numbing binary code.
Excerpted from Showstopper! by G. Pascal Zachary. Copyright © 1994 G. Pascal Zachary. Excerpted by permission of OPEN ROAD INTEGRATED MEDIA.
All rights reserved. No part of this excerpt may be reproduced or reprinted without permission in writing from the publisher.
Excerpts are provided by Dial-A-Book Inc. solely for the personal use of visitors to this web site.