This is one of the essays I delivered to my patrons last month. If you want to support more work like this, and see it earlier, you can sign up here.
Computer programming is one of those fascinating fields in which we got to watch work become less pink collar over time. It started as women’s work because the prestige was thought to be in hardware engineering, not “computing”, which was really just dressed-up math. (Yes, World War II required governments to recognize the math skills of their female citizens, just like they required the U.S. to recognize the skills of its black citizens.)
Then, as women developed the field of programming, the private sector started to understand just how much work it would be possible to get computers to do. Programmers gained status and pay and–over the course of a couple of decades–the idea that the work should be done by men. Women have always continued to program, particularly in government service, but they came to be seen as anomalies instead of the people who defined the field.
Before that could happen, however, women led the way to making programming practical and accessible. In honor of Ada Lovelace Day, here are four ways they did it. And no, Ada Lovelace isn’t even on the list, as awesome as she was, because it’s easy these days to find out more about her.
ENIAC and Iteration
Before there were programming languages worthy of the name, there was assembly language, which was essentially a set of instruction to a computer telling it which switches to flip. Before assembly language, however, programming involved the flipping of physical switches. Debugging at this point also involved testing vacuum tubes and wiring connections to find flaws in hardware.
This was, needless to say, grueling work that some of today’s coders would be physically unable to do and many more would be unwilling to do. Of course it fell to women. The original programming crew of ENIAC, the first computer designed to be able to do an array of tasks, was Fran Bilas, Betty Jennings, Ruth Lichterman, Kay McNulty, Betty Snyder, and Marlyn Wescoff.
These women were “computers” themselves, women who had spent the war running calculations by hand, and were now working to put themselves out of business by automating their jobs. Instead, they built a whole new field and industry from scratch. That wasn’t easy, and not just because they were doing everything for the first time.
Every application required a massive amount of physical work. That, in turn, provided an excellent incentive to streamline the work, as did the physical limitations of the computer. The women, who also converted the calculations needed into algorithms and programs, did just that. The ENIAC team is one of our first sources of programmatic subroutines and loops, standard programming structures to this day.
The next time you write a loop instead of figuring out how to build that functionality long-hand, thank the women of ENIAC.
Something Like Language
If you’ve ever looked at assembly language, it’s ugly. More importantly, however, it’s only sort of a language. It is a language in the sense that arrangements of letters mean the same thing across uses. Some “words” are even built on the same language root, though many are arbitrary. On the other hand, space and assembler limitations make assembly language annoyingly unlike the natural languages we use every day.
That causes problems for programmers. We can’t transfer many of our language skills (spotting typos, the treating of whole words as “chunks” of meaning) to assembly language until we are familiar enough with it to start to see it as its own language instead of continually translating from ours. While I know a couple of people who have programmed in assembly language for fun, most programmers consider this fiddly, exhausting work.
Luckily, the vast majority of us will never have to program in assembly language. Admiral Grace Hopper took care of that for us while working on the development of UNIVAC.
When we see Hopper mentioned as part of efforts to celebrate women in computing, we most often hear the story of how she dubbed computer glitches “bugs” after a moth found in a machine that was having problems. That’s a pity, both because the story is apocryphal and because Hopper is responsible for so much more.
Hopper did coin a common computing word, but it wasn’t “bug”. It was “compiler”. She had naming rights by virtue of originating the concept and building the first compiler. Lest you underestimate its importance, compilers are what allowed us to write in the same programming language for multiple machine designs. The language that first compiler translated wasn’t anything we would recognize as a modern programming language, but that was only a few short steps away.
Grace Hopper’s goal was not to program with her translatable mathematical language but the development of programming languages that were as close to plain English as possible. Through the 50s, she led a team that created MATH-MATIC and FLOW-MATIC. When FLOW-MATIC became the main base on which COBOL was built, Hopper consulted on the development of the language that would go on to be so influential that the U.S. had to import COBOL programmers as it scrambled to fix Y2K bugs in time.
If you enjoy using real words and descriptive variable names when you program, thank Grace Hopper.
Read more: Check out the several biographies listed by the National Women’s History Museum.
Could we all just learn programming via trial and error? Maybe, but not very well. Could we turn programming into a modern guild, with knowledge passed down through apprenticeship? Nope. At least, we couldn’t do that and still produce the number of coders needed to maintain a modern software industry. At some point, we had to write all this down.
Luckily, with programming we started early. In fact, the first programming manual was written as the first real programming occurred.
Adele Goldstine was married to ENIAC engineer Herman Goldstine. A mathematician in her own right, she was among those “computers” trained in the trajectory calculations that would be one of ENIAC’s primary tasks. With that experience under her belt, she was tasked with training the crew who would operate the machine full time. Stories from the women she trained say she did so with aplomb and a cigarette in her mouth.
Then she created a manual. In 1946, the U.S. Army published (for internal use only, I’m sure) the first operator’s manual for the first flexible-purpose computer. The manual was written by Goldstine. Because the programming of ENIAC was done physically on the machine itself, that also makes this the first programming manual.
Early ENIAC stories involve those early programmers pigeonholing engineers to learn the intricacies of various parts of the machine. With Goldstine’s work, they and subsequent programming teams were able to stop doing that and get on with programming on their own schedules, rather than the engineers’.
These days, formal technical writing is often undervalued, perhaps because the field has a much higher percentage of women working in it than other technical fields. In practice, however, programmers who want to avoid recreating the wheel tend to be highly reliant on documentation.
The next time you resolve your coding problem with documentation created by another programmer, thank Adele Goldstine.
Read more: The Engineering and Technology History Wiki has a nice bio of Goldstine, whose work tends to be neglected because she died young, before oral histories of these programs were collected.
A Booming Business
The military was the first main consumer of computer programming. Business and scientific concerns entered the field very shortly thereafter, as they did with much of the technology developed during WWII. The consumer market for software didn’t develop until the 1970s.
The consumer market was important, however, in that it significantly broadened the software market by changing how people used computers. It’s taken several decades, but we’ve recently reached a point where the games industry rivals or beats the movie industry in income.
Then we have the internet and the way the internet has enabled the data age. What do people use their computers (including their smart phones) for these days? Everything. Keeping track of everything. Sharing everything. All the everything.
That means everything has to be coded. Barring mismanagement, that means computer programmers getting paid. And as fun as it can be to code as a hobby, nothing enables coding like getting paid to spend a significant chunk of your life at it.
“Dot-com” jobs aren’t necessarily stable, and we may be on the brink of another collapse as investors try to figure out how to cash in on their enthusiasm, but even with contraction, the internet has enabled a significant growth in coding over the last couple of decades, even before we talk about how it’s enable open source collaboration. And a good chunk of the conceptual work that makes the internet work was done by Radia Perlman.
Perlman started her work decades after the women already mentioned here, in a time when most women had already been pushed out of programming. In the late 1970s, she left her graduate program in math to program. A few years later, she was an architect working in the early development of networking protocols, the processes by which data is accurately and efficiently transferred between linked computers.
It was during this time that she developed Spanning Tree Protocol (STP), which governs the creation of paths in a complex local network. More importantly for the broader development of the internet, in 1992, she published Interconnections: Bridges and Routers. This was the book on network protocols, and it brought clarity to field Perlman has described as “really murky, full of jargon and hype”.
When you do coding work facilitated by the internet or that depends on the existence of the internet, thank Radia Perlman.
As you can see from the links, Perlman doesn’t embrace the title “the mother of the internet”. Though she doesn’t downplay her own skills, she recognizes how much being a pioneer depends on time and place. If she hadn’t developed STP, someone else would have, although there may have been differences.
This is true for all the women featured here. Grace Hopper was working on subroutines at the same time the ENIAC programmers were. Other people were developing languages that would require functional compilers when Hopper completed hers. Documentation was an inevitability when academia and the military joined forces (though not guaranteed to be good).
The same is true, however, for the men we credit with being pioneers of computing. We don’t dispute that we owe them credit and thanks for their work. Let’s not do that to women either. Ada Lovelace was only the first of many women to critically shape programming for the better.
Want to see more work like this? Support me on Patreon.