In a room across the hall from where I teach, a group of a dozen kids between the ages of nine and thirteen are learning how to program in Python, grasping the basics of the language with what can only be described as freakish ease and comfort. It’s quite a disarming sight, and it wouldn’t have been possible if someone, somewhere deep in the the history of computer programming, hadn’t made the decision to move the industry away from the jealous grasp of the High Priests of Machine Code and towards those mere humans possessed of the astonishing effrontery of somehow not being professional mathematicians.
Grace Hopper (1906-1992) is, at first glance, the least likely person to have democratized computer science. She was a woman (though the early history of computer science boasts a robust roster of female practitioners, gender was an issue for Hopper from her first day at work), working at a disorganized start-up in the process of being swallowed by the success of IBM’s 700 series, past fifty years of age, and battling recurrent alcoholism when she oversaw the creation of the most ubiquitous programming language in the history of the world, COBOL.
So much for first glances. Digging deeper, it soon becomes apparent that, truly, nobody else could have done the job. It was Grace or nothing. She combined a teacher’s desire to facilitate the dissemination of knowledge with a professional’s decades of experience wrangling the world’s most difficult programming problems, all wrapped in a visionary zeal to realize the potential of computers to overcome their reputations as physics-bound computation drones and affect real change in all aspects of human society.
The first thirty-eight years of her life hinted insistently at a sort of circumscribed brilliance, a capacity for the extraordinary always just hemmed in by the mundane. She attended Vassar as a mathematics student and went on to attain Yale’s first female doctorate in Mathematics, with a special interest in partial differential equations. Returning to Vassar as a professor, she attended classes in other sciences and brought that information back to her own classroom, creating interdisciplinary coursework before there was a name for such a thing. She earned a reputation as the most interesting and broad-minded mathematics teacher on campus, and was supported in her work by her husband, himself an academic. But the steady grinding routine of teaching wore on her. After a decade of it, she was ready to explode her life, to dash with abandon into the arms of the unknown.
World War II provided the impetus for the change. With a multitude of men serving overseas, the US Navy created the WAVES program to tap the potential of America’s female population, and Grace Hopper leapt at the opportunity, divorcing her husband, leaving her secure job, and throwing herself into the Navy training program in spite of her age, hoping for the best. She attended basic training at the age of thirty-eight and reveled in the lack of responsibility – the steady thrum of routine dictated from on high. She left training an officer and the best cadet in her class, with orders to report to Harvard University, where a small group of men was secretly creating the computer age.
On her first day at work she met Howard Aiken, the man who had designed the Harvard Mark I, a relay-based computing system that held the promise of solving physics problems in days that took human calculators months. Aiken ran his research group with uncompromising military rigor, insisting on strict discipline and round-the-clock availability. Once on his team, the Mark I was your life’s work, a demand for dedication that fired ingenuity and resentment in more or less equal measure. Aiken was not thrilled at having been saddled with a female mathematician, and assigned her on the first day a massive project, to be completed in mere days, without any real introduction into how the 50-foot long, ten thousand pound beast in front of her actually worked. She rose to the challenge, however, grabbing technicians and blueprints to teach herself the workings of the machine, and thereby gaining insight on how to code mathematical procedures for it.
Aiken was impressed, and Hopper soon became his right hand programmer, as valuable for her pure mathematical insight as for her love of practical jokes which alleviated somewhat Aiken’s militaristic ethos. Soon, she had not only mastered all the techniques developed so far in the nascent science of computer programming, but developed her own to overcome the shortfalls of Mark I’s hardware. Unlike ENIAC, which employed vacuum tubes and therefore computed at electronic speeds, Mark I employed mechanical relays to hold information, and was therefore limited by the speed of its central drive, effectively meaning that it could only manage about three computations a second (several BILLION times less than the device you carry in your pocket every day as a matter of course). Hopper needed to develop programming solutions to make the creation of code as efficient as possible, and the ideas she created on the fly in the midst of war became the foundation for an entire industry.
Realizing that some computations were used again and again in the course of a calculation, Hopper decided to make a library of commonly used bits of reliable code. Rather than reinventing the process for calculating a set of cosines, for example, she created a general cosine program which had generic spaces for input declaration which could be copied en masse from her central library whenever that function was needed, creating thereby effectively the first notion of sub-routines, which would see their real effectiveness with the development of internal memory in subsequent iterations of the Mark system, and most spectacularly with her later work on UNIVAC.
After the war, Hopper’s contract with Harvard ran out, and she had to seek employment elsewhere, eventually settling on computing’s first startup company, the Eckert-Mauchly Computer Corporation (EMCC), which was using the lessons learned in the creation of the fully electronic ENIAC to create the UNIVAC, the world’s first commercially offered computing system. Because it didn’t rely on mechanical relays, it was thousands of times faster than the Mark series Hopper had worked on, and boasted a sophisticated system of mercury-based internal memory which would allow her to utilize her sub-routine innovations to the fullest. What was more, whereas Aiken had been a strict martinet, Eckert and Mauchly were enthusiastic and gentle visionaries who welcomed collaboration with the extended computing community.
In spite of the superiority of the hardware and the encouragement of the company’s leadership, however, EMCC was still, at the end of the day, a startup, with all the modern implications of the term. Cash was tight, the hours were brutal, and success far from certain. Hopper, who was already well on the way towards full-blown alcoholism during her last years at Harvard, gave herself over completely to debilitating bouts of drunkenness, occasionally ending in suicide attempts, under the pressure of her work at EMCC. She was a forty-three year old woman trying to keep a tiny company afloat in the face of IBM’s massively superior resources and connections, with nothing but her own mathematical genius and vision to guide her.
In the midst of this darkness, Hopper had an insight that solidified her place in the history of computer science. She had always had a vision for computers as self-directing pieces of hardware. While Aiken saw them as glorified scientific calculators, Hopper realized that computers could be taught to take over humanity’s burdens, starting with the burdens of program creation. Why not have computers program themselves? Why must you specify every step of a program in tortuously wrought machine code, when most of the specified steps consisted of relatively logical place-holding and memory allocation? She started experimenting during the development of UNIVAC with what she called a compiler, a program that allowed a user to specify in a simplified code the outlines of what they wanted a process to do, and which then automatically arranged the proper sub-routines and memory locations, and even did some rudimentary program de-bugging. Even if these computer-arranged programs weren’t the most efficient, the time saved in program design was revolutionary. In trial man versus compiler runs, codes that took humans 740 minutes to program took Hopper’s compiler a mere 20 minutes, and with each new iteration of her compiler, her machine-crafted programs became more and more efficient, using the collected experience of the computer industry to whittle away at the need for humans to write code in machine language.
Based partly on Hopper’s representation of the ease with which one could train UNIVAC operators, contracts started coming in, but the company couldn’t produce the computers on time, and soon EMCC had to submit to being bought out by the indifferent Remington-Rand Corporation, which didn’t much believe in the potential of commercial computing, and didn’t bother training its sales representatives in the advantages of the UNIVAC system. While Remington-Rand dragged its heels, IBM invested heavily in its new 700 series of business machines, snatching a massive Department of Defense contract which infused the company with enough cash to under-price any conceivable competitors. Within a decade, IBM was the undisputed monarch of the computer industry, and Remington-Rand little more than an object lesson in opportunities missed.
Even though her company was fast letting inertia rot its initial promise, Hopper’s vision and influence only grew in the Fifties and Sixties. Hopper saw that the proliferation of computer companies was creating an equally dizzying proliferation in programming languages which could only work to the detriment of the industry. Companies that had computers from two different companies would have to train their employees in two wholly different methods of communicating with the machines. What was needed was a universal language which didn’t depend on the particular computer at hand, something that could be learned once, and used everywhere. Having spent the better part of two decades earning a reputation for innovation and developing a wide net of contacts with everybody of even marginal importance in the computing industry, Grace Hopper was the only person with the personal clout and clarity of vision to see such a program through in the face of the industry’s combined skepticism. Through her military contacts, she got the Department of Defense interested in the project of developing a universal programming language, and with their neutral authority, convened a panel of experts from all walks of computer-dom to make the vision reality.
What she wanted was a language that anybody could use, that employed everyday language rather than complex mathematical formulations. In effect, what she wanted was a more general version of the FLOW-Matic English-based computer language she had developed at Remington-Rand. And that is what, effectively, she got. Other competing systems, like Roy Nutt’s FACT, were pushed to the side in the drive to quickly develop a more efficient version of Hopper’s FLOW-Matic. The language that sprung from Hopper’s committee was COBOL, the single most successful computer language in the history of computing. It is estimated that, in the four decades following its release, over 80 percent of all code written world-wide was written in COBOL, a stunning testament towards Hopper’s intuition that Ease of Use would trump all in the developing computer market. Thanks to COBOL, anybody could write a program that was transferable to any other computer in the world, democratizing the programming community in a way unforeseeable even a decade earlier.
With our love of open code and accessible programming languages, we are living very much in the world Hopper created for us from the wealth of her all-embracing sense of the future. Where an engineer saw a tool to solve particular programs, Grace Hopper, the multi-disciplinary professor, saw a device that could change how humans relate to every aspect of their collective existence. She dedicated her life to easing the interface between the human and computer worlds, and that has made us, for better and worse, the app-obsessed, unconsciously positivist, quite overtly nerdy, species we are.
Grace Hopper and the Invention of the Information Age (2009) by Kurt W. Beyer is a thoroughly all right introduction to the early world of computer programming and Hopper’s place in it. Sure, it has a habit of saying “then” when it means “than.” And it repeats itself, quite a bit. But it manages to make the improvement of automated programming algorithms a dramatic story, and the telling of the clash between IBM and Remington-Rand is properly massive. There is also apparently a biography of her by the creator of the cartoon JEM, Christy Marx, which I have not read but feel compelled to buy out of long-standing loyalty to Kimber.