The IMP Guys set to work on writing the code, and by the time they finished, it would turn out to be about six thousand words. “A tiny program,” said Heart. They did all their programming in Honeywell 516 “assembly” language.
Computers are instruction-following mechanisms. Assembly-language programming requires thinking through a vast number of minute steps, then writing the instructions to carry them out. For instance, let's say you want to find the elevator. An equivalent set of instructions in a high-level language might go something like this: “Go out the door, turn right, go past the water fountain, and it's on your left.”
The equivalent in assembly language would begin more like this: “Find your left foot; find your right foot. Place your left foot in front of your right foot. Now place your right foot in front of your left foot. Repeat this ten times. Stop. Turn ninety degrees to the right.” Etcetera.
To program in assembly language was to dwell maniacally on the mechanism. It was easy for programmers to lose sight of the larger goal and difficult to write short, economical programs. Unskilled programmers often ended up writing assembly-language programs that wandered aimlessly, like some hapless Arctic expedition in a blizzard.
Crowther managed to keep the detailed steps of assembly-language programming straight in his head without getting lost. But he was forever drawing big flowcharts so he could picture everything at once. One colleague likened the process to designing a whole city while keeping track of the wiring to each lamp and the plumbing to every toilet. Sometimes, though, Crowther eschewed the flow diagrams and did them in his head. Where others struggled to apply the rudimentary programming tools of the time, Crowther was out there operating on a higher plane.
Writing the IMP software began in the offices of the programming team members, where each would type code on a Model 33 Teletype into a PDP-1 “editor.” After the code was created on the PDP-1, it was transferred on paper tape to the Honeywell computer, where it was converted into the Honeywell's machine language, a chore handled by a program known as an assembler, which converted the code into the 1s and 0s the 516 could understand. The assembled code was then punched onto paper tape. For a while the programmers tried using the assembler that came with the Honeywell 516, but it was so inefficient they soon abandoned it: Walden and Cosell spent fourteen hours one weekend on an assembly of the IMP system code, using almost an entire box, nearly half a mile, of tape.
Not long after that, Cosell wrote some code to modify the much better assembler on BBN's time-shared PDP-1 computer down the hall. This made it possible for the PDP-1 to produce machine-language tapes for the Honeywell 516. From then on the team wrote pieces of IMP code, edited them, and assembled them under the PDP-1 time-sharing system. Once he was satisfied with an assembly process, the programmer would instruct the PDP-1 to punch out the assembled code on a paper tape, then carry the tape back to the lab where the 516 sat. He would load the tape into the 516, run it, and wait to see what happened. Usually there would be some bugs, and so the process would be repeated. Naturally, when one of the programmers saw something interesting or quirky happening as a new piece of code ran on the 516, the team members would gravitate to the event and stand around the Honeywell talking it over.
Most of the IMP Guys lived close to Cambridge, and it was easy for them to check in and out of the lab at any hour. Chef Joyce Chen's original Chinese restaurant was next door to BBN, and that helped when they worked late, as they often did. Cosell and Walden drank a lot of Coke to keep themselves going; Crowther never touched the stuff. He was a notoriously finicky eater (anything beyond the culinary level of a plain bologna sandwich was a risk), making him an impossible dinner guest or dining companion.
Early in the project, BBN was asked to brief a group of high-level ARPA and military personnel at the Pentagon. Crowther was among those planning to make the trip on behalf of the IMP Guys. Heart grew nervous just thinking about what Crowther might wear to the briefing. People were sure to notice his feet, thought Heart. The only time that anyone could remember Crowther wearing shoes you could shine was the day he got married. Heart went to Ornstein and asked him to tell Crowther not to wear sneakers to the Pentagon. Ornstein did.
“Willy, Frank says you shouldn't wear your sneakers to this meeting.”
There was a long silence at the other end of the line. And then Crowther's calm voice. “Tell Frank they've seen my sneakers in JSAC [Joint Services Advisory Committee] meetings before and it'll be okay.” It was.
Crowther and Ornstein were among Heart's most devoted staffers. But they loved to kid the boss when the chance arose. “Frank took things very, very seriously,” Ornstein observed.
Ornstein was an outspoken opponent of the Vietnam War. By 1969 a lot of people who had never questioned their own involvement in Pentagon-sponsored research projects began having second thoughts. Ornstein had taken to wearing a lapel pin that said
RESIST.
The pin also bore the ⦠sign, for electrical resistance, a popular antiwar symbol for electrical engineers. One day, before a Pentagon briefing, Ornstein conceived a new use for his pin. In meetings at the Pentagon, it wasn't unusual for the men around the table to remove their jackets and roll up their shirt sleeves. Ornstein told Heart that he was going to pin his
RESIST
button onto a general's jacket when no one was looking. “I think Frank actually worried that I would,” said Ornstein. (Ornstein didn't, but he did wear his pin to the meeting.)
As the IMP Guys laid out their plans in Washington, it became apparent that the ARPA network would be a hybrid of the original ideas of Baran and Davies. The ARPA network would use an adaptive routing scheme that the IMP Guys had developed on their own, but which was similar to the basic idea that Baran had sketched. However, unlike Baran's theoretical network, the ARPA network would not have nearly the same redundancy level or number of links to each node. Nodes in the BBN scheme were normally linked to two neighboring nodes, occasionally to one or three. As it was now conceived, just two failed links could divide, or partition, the network into isolated segments. Paul Baran had said that a network with a multitude of redundant links could be built of inexpensive parts; if a part malfunctioned, there would be others to back it up. The low level of redundancy in the ARPA network was closer to Davies' plan. Heart's approach was to make every part of the network as robust and reliable as possible.
During the proposal period, Crowther and Walden had already done some very crucial work, with amazing results. First, they had found a way to make adaptive routing work efficiently. They had also discovered that they could make the system run much faster than anyone imagined. Observers said their code wouldn't work; Crowther and Walden knew it would. In writing the “kernel” of their program (“the very small part that is the only thing that matters,” as Crowther put it), they had discovered how few commands would actually be needed in a software program to pull packets into the IMP, figure out where to send them, and push them out on the next line.
Crowther and Walden quickly worked out the critical algorithmsâthe basic rules for solving the packet-processing and routing problems. That had lead them to the determination that it would take only one hundred fifty lines of code to process a packet through one of the IMPs. But without a real machine to test it on, running the code would have to wait. Nonetheless, they had a good feeling the IMP would work.
A key task that Heart worried about, but didn't have to handle, was the subcontract with AT&T. It was Larry Roberts's responsibility to arrange for the 50-kilobit lines (able to transmit about two pages of text per second) into each host site by the date the IMPs were ready. Roberts turned the job over to another Pentagon agency, now working with AT&T on the terms for the installation and leasing of the proper lines, modems, and other communications gear necessary to form links in the network. The physical connection from the IMPs to the local telephone office was to be made by normal telephone wireâtwo twisted pairs of copper wires wrapped in a cable containing about a thousand other twisted pairsâwith special terminating equipment at each end to support the high data rates. The dedicated lines and other equipment were to be in place at the California sites by the time the first IMPs arrived in the fall. Heart knew the telephone company was going to have to scramble to meet its obligations, and he was glad that securing AT&T's cooperation wasn't his problem.
Roberts was a distant but persistent force, vital to the project. His style was to stay out of the way of principal investigators most of the time. Whenever he did inject himself into a project, he never wasted anyone's time. He always made his point and moved on. People in the growing computer community came to regard Roberts highly.
These were great days to be running the Information Processing Techniques Office at ARPA. With Taylor and Roberts there, the budget for computing research kept growing even as the rest of ARPA's funds were being slashed because of the escalating cost of the Vietnam War. IPTO's managers could spend money on priorities of their own choosing. And they could just as easily rescind funding if they didn't receive the kind of cooperation they wanted from contractors.
Giving ample authority to people like Roberts was typical of ARPA's management style, which stretched back to its earliest days. It was rooted in a deep trust of frontline scientists and engineers. On his deathbed in 1969, Dwight Eisenhower asked a friend about “my scientists” and said they were “one of the few groups that I encountered in Washington who seemed to be there to help the country and not help themselves.” Indeed, many of the best scientists in the country, Roberts among them, came to view working for the agency as an important responsibility, a way of serving.
But ARPA administrators were not well paid. Ornstein once hooked up with Roberts at an out-of-town meeting and saw Roberts driving a banged-up little rental car. Ornstein asked him why on earth he would rent such a heap. Roberts muttered something about how Ornstein didn't understand government rules and expenses. “I always thought of him as passing out these millions of dollars,” said Ornstein. “It hadn't occurred to me that he was in fact living, personally, on quite a limited budget. People like Larry sacrificed themselves for a while in order to get their hands on a big throttle.”
Roberts was treated in most respects as if he were a member of the BBN team, even though he was in Washington. He didn't travel to Cambridge often, yet his presence was constantly felt. Since only a few people were working on the project at BBN, Roberts sat down with everyone together when he visited. These were informal talks about their progress, lengthy high-level rump sessions. As principal investigator and group manager, Frank Heart was Roberts's main point of contact at BBNâbut Roberts also stayed in close touch with Kahn.
Each site was responsible for building a custom interface between host and IMP. Since computers of various makes were involved, no single interface would do for all the sites. This entailed a separate hardware-and software-development project at each site and was not something the host teams could throw together overnight.
The IMP Guys had to write the host-to-IMP specification before the hosts could start building anything. Heart's most urgent order of business was to complete BBN's design of the host-to-IMP specification, so people at UCLA could begin working in time to meet Roberts's schedule. Heart was already predicting difficulty in getting the host sites to complete their work on time. He knew how heavily the principal investigators relied on graduate students, and Heart worried that the project could be derailed because of a graduate student's failure to treat the schedule seriously enough.
Days spent discussing the host-to-IMP specification turned into weeks. It became obvious that unless someone on Heart's team seized the task of just writing the specification, there would be more talk and little writing. Kahn took it upon himself to draft the specification, and his colleagues were happy to let him. Heart thought Kahn was the best writer the group had, so he stood back and let Kahn produce the specification that became known as BBN Report 1822.
Some people thought Heart worried excessively about potential engineering failures. He was a most defensive driver when it came to engineering. Heart had learned cautious engineering early on from his mentor at Lincoln Lab, Jay Forrester, the inventor of core memory. Forrester had drummed reliability into the heads of a whole generation of MIT engineers. Above cost, performance, or anything else, reliability was their top priorityâdesign for it, build for it, prepare for the worst, and above all, don't put your machine in a position to fail. Heart's mantra built reliability into the IMP in a thousand ways right from the start.
Computer manufacturers were known to cut corners in order to compete on price and build new machines on time. They almost always paid some price in terms of higher failure ratesâbugs and computer crashesâbut usually it didn't ruin reputations. From Roberts to Heart, on down the line, all of the IMP Guys expected a higher standard in this project. A network running twenty-four hours a day would demand solid performance from the BBN-built IMPs. The accepted imperative was that the IMPs would do their best to deliver each and every message accurately. A line might fail, even a host machine might fail, but the IMPs should not. Reliability was, in a sense, the founding principle of the network. The ARPA network would always reflect Frank Heart's own steady character.