The feature of being easier to write than assembly is often seen as the biggest advantage of high-level programming languages. The other benefit that comes with them is portability. With high-level languages, algorithms can be developed independently from the underlying hardware. This allows software to live on once the hardware becomes obsolete.
The compiler was a concept that was met with resistance when it was first introduced. This was at a time when computers were custom-built machines bearing individual names like ENIAC, UNIVAC and Mark I. A time when the global demand for computers was estimated to be around five units by the CEO of IBM. In this scenario, it took a visionary to foresee a future where the number of computers would outgrow the number of programmers and hardware would evolve so much faster than software that a compiler would make sense. One visionary was [Grace Hopper].
Compiled code often runs slower than optimized assembly code. Surprisingly, this wasn’t what got into the way of implementing them. They were regarded as technically impossible. One could think that computer science was at that time too young to fully understand the potential of its subject. One could also conclude that already then it was old enough that its practitioners were set in their beliefs. In this atmosphere, it took a special attitude to turn the idea of programming languages from a challenged concept to one of the most influential technologies of the following decades. The quote “It’s easier to ask forgiveness than it is to get permission.”, which today is used to explain dynamic binding in python, is attributed to her.
Although a pioneer, [Hopper] wasn’t that far ahead of the curve. [Alick Glennie] developed another compiler in the same year as she did. [Glennie]’s ‘autocode’ compiler was much less successful than [Hopper]’s A-0 which should later evolve into COBOL — the Common Business-Oriented Language. There are two probable reasons for this. Autocode was relatively close to machine code and tailored to the British Mark 1 computer at the University of Manchester- portability was not part of its design.
The second reason is that [Hopper] explicitly wanted her languages to provide enough abstraction to allow more people access to the power of computing. In an Interview from 1980, she identifies two distinct groups among the early users of computers: mathematicians and people interested in data processing. She found the data processors to be word-centric in their thinking as opposed to the symbolic approach of the mathematicians. Developing the first compiled language was in her case intended to make computers useful to a bigger audience. COBOL was aimed at business applications in an era where computers were a mostly military and academic affair.
The list of outstanding achievements in her life is long. [Grace Hopper] had been the first woman to receive a Ph.D. in mathematics at Yale. Which is even more impressive as she didn’t want to study mathematics in the first place. She entered the Navy after the attack on Pearl Harbour and had to retire three times before they finally let her go in 1986. Yale has named one of its residential colleges after her. This puts another quote of hers into perspective:
“If you ask me what accomplishment I’m most proud of, the answer would be all the young people I’ve trained over the years; that’s more important than writing the first compiler.”
She had been teaching after receiving her master’s degree at Vassar College in 1931 and kept holding lectures at different institutions throughout her career. Her lectures to professional audiences have been featured here before.
Compared to her outstanding professional career, her personal life is much less documented. Wikipedia deals with a marriage of 15 years in a single sentence and other sources are sparse on details as well. We know that she battled alcoholism in her forties and overcame it with professional help. She was also known to take her work home and start the morning with presenting solutions to problems that had been discussed on the way home the day before.
[Grace Hopper] was a person that managed to get herself into the right place at the right time. She did so with ingenuity and the drive to overcome obstacles, not by smashing through them but by looking for ways around. She also approached her work with an eye for how useful it would be.
Heroes are a difficult thing. In the wrong hands, they set standards that are impossible to reach. Nobody can be Grace Hopper, only she could. The compiler is invented and high-level programming languages have replaced machine code in most applications. We can, however, strive to be like Grace Hopper: aspire to be good mentors, build things that are useful to others and reach for help when we meet our limits.
The Interview mentioned above is a good starting point to get a glimpse at who[Grace Hopper] was. Its good to keep in mind that the conversation took place two years before the ZX Spectrum was released, or otherwise the technological parts don’t make sense. With 54 pages it’s a long interview, and reading it might take even longer than expected, because it’s easy to get distracted by reading up on all the people who are mentioned.
Her biography ‘Grace Hopper and the Invention of the Information Age’ by [Kurt W. Beyer] is often considered a bit light on the biographical part but nevertheless a sound historical account of the era shaped by her.