There has recently been much discussion about getting more women into computer programming roles – the case of the Google manifesto shows that what many us think of as outdated gender stereotypes about programmers are still alive and well in some circles. However, it wasn’t always the case that computer programming was considered a ‘male’ field. Early computer programming was dominated by women, and it was women who were seen as uniquely capable of being computer programmers. Among early computer pioneers were many women who made important contributions to computer science and programming and invented many of the concepts & models we continue to use today.
Lady Ada Lovelace (1815 – 1852)
Lady Ada Lovelace is considered by historians to be the first ‘computer programmer’ – even though no working computer existed during her lifetime. Lovelace’s story is fairly well know, for good reason – it combines famous parents, a scandalous divorce, and a collaboration between two mathematical geniuses.
Born in 1815, Lady Ada Lovelace was the only child of Lord Byron, the famous Romantic poet, and Annabella Millbanke. Her parents were poorly suited as they were extreme opposites – Lord Byron being infamous for his excesses, huge gambling debts, and numerous liaisons with men and women, and Lady Byron being a strictly religious and moral woman, highly tutored in maths and sciences. Shortly after Ada’s birth Lady Byron separated from her husband – his immoral behavior had convinced her that Lord Byron was insane. In order to prevent the same insanity from affecting her daughter, Lady Byron directed that Ada’s education be focussed heavily on mathematics and science, seeming to believe that would be a ‘cure’ for any inherited madness.
In 1833, through a mutual friend, Ada Lovelace met Charles Babbage, inventor of the Analytical Engine and the Difference Engine – early versions of mechanical ‘computers’. Both machines were theoretical – neither was actually built during Babbage’s lifetime, though he did build partial models. Babbage and Lovelace became close friends, and Lovelace became a strong supporter and promoter of Babbage’s work. At the time, Babbage’s theories of mechanics and computing were poorly understood, especially by the rich patrons and government officials he needed for continued funding of his research and work. To help her friend, in 1842-43 Lovelace undertook a translation of an Italian article about the Analytical Engine. In the process, she expanded on the original article with a longer “Notes” section – this ended up being three times the length of the original article.
In ‘Notes on the Analytical Engine’ Lovelace describes a (theoretical) method of calculation that could be used in the Analytical Engine. This method is now considered the first computer program and is the basis for Lovelace’s title as ‘first computer programmer’. Lovelace’s key insight was that the numbers used for calculation in the Analytical Engine could be abstracted to stand for symbols and could therefore could be used for more abstract programming.
The Women of ENIAC
The women programmers of the Electronic Numerical Integrator and Computer (ENIAC) developed and codified many of the fundamentals of computer programming that we use today. Until recently, their contributions to computing history had been almost entirely neglected.
Dedicated in 1946, the ENIAC (Electronic Numerical Integrator and Computer) was one of the world’s first true general purpose computers. Originally, the ENIAC was used to calculate firing trajectories for ballistic missiles. These calculations had formerly been done by humans at an average speed of 40 hrs per calculation. The ENIAC could make the same calculations in only 10 seconds. At the time of its dedication, it was the worlds fastest computer.
Programming the ENIAC was a difficult and laborious process, requiring weeks to complete mapping a new program into the machine. Programs were hard-coded and required physical reprogramming – unplugging and replugging connections. To carry out this programming, the ENIAC project leaders recruited a team of 7 women: Kay McNulty, Jean “Betty” Jennings, Betty Snyder, Marlyn Meltzer, Fran Bilas, Ruth Lichterman, and Adele Goldstein (who went on to write the ENIAC Operator’s Manual). The original team was drawn from the pool of (mostly female) ‘computers’ who had been calculating the trajectories by hand. With no guidance, the team studied the blueprints of the ENIAC in order to train themselves to program it. The women determined how to input programs as well as understand ENIAC’s inner workings. In the process, these early computer programmers developed and codified many fundamentals of computer programming – subroutines, nesting, branching, and sorting algorithms.
The ENIAC programmers were not given much credit at the time for their contributions, though their work was critical to the project’s success. They later described how they were left out of celebrations after the official unveiling of the ENIAC. Jean Jennings Bartik recalled:
They all went out to dinner at the announcement, […] we weren’t invited and there we were. People never recognized, they never acted as though we knew what we were doing.
They were also not recognized by historians as important contributors to the ENIAC project until fairly recently – in photographs of the ENIAC, the women programmers in the photos were presumed by historians to be models. As recently as 1996, the programmers were not invited to the 50th anniversary celebration of the invention of the ENIAC. Sadly, many of the programmers had already died before their contributions to computer history began to be more widely known.
Grace Hopper (1906 – 1992)
Grace Hopper was a US Navy Rear Admiral who at the time of her final retirement was the oldest serving naval officer. During a long career in the Navy and the private sector, Hopper invented the compiler, invented the concept of writing programs in an language close to English, and became known as the “Mother of COBOL”.
In 1934 Hopper earned a PhD in Mathematics from Yale University. She worked as a professor of mathematics at Vasser College until WWII. In 1943 she joined the US Navy Reserves – she had to get a special exemption to enlist both because of her age (too high) and her weight (too low). Hopper was assigned to work on the Mark I, another early computer. Hopper co-authored several papers on the Mark I with project head Howard Aiken. During this time Hopper wrote the world’s first computer programming manual – a history of the Mark I project, and a guide to programming the machine.
In 1949 Hopper moved to the private sector, joining the team working on the UNIVAC, the successor to the ENIAC and the world’s first commercial computer. She recommended that a programming language be written that would allow the programmer to write in something more like English and then compile down to machine code, but was told that it could not be done. By 1952, she proved them wrong by creating the world’s first compiler, the A-0 Compiler.
Known for her collaboration, Hopper helped develop the “open-source” concept by sending her work out to friends and colleagues to collaborate on. In 1959 Hopper became a technical consultant to the committee defining COBOL (Common Business Oriented Language), which extended an earlier language of Hopper’s (FLOW-MATIC). For her contributions to that project, Hopper became known as the “Mother of COBOL”.
In 1966 Hopper retired from the Navy, but in 1967 she was recalled to active duty. In 1971 she again retired from the Navy, and 1972 was again recalled to active duty. A special act of Congress allowed her to stay in the Navy long past mandatory retirement age. By the time of her third and final retirement in 1986 at age 79, Hopper was the oldest active duty commissioned officer in the Navy.
Why Women Programmers?
Why were so many of the very first computer programmers women? A primary driver for the invention of machines such as the ENIAC and the Mark I, was the need to quickly calculate missile trajectories that were currently being calculated slowly by hand. Those calculations required an expertise in higher math, and in the 1930s & 40s math was a popular college major for educated women. When these women volunteered for war work, their expertise was put to use and many of the human ‘calculators’ were women mathematicians. The first programmers for computers were drawn from this pool of human calculators. And so, as in other fields, the war allowed women to move out of more traditional work into new, unusual positions.
But another way to look at this work is that it fits a longstanding pattern of lower status jobs becoming ‘women’s work’. In the early days of computing, the interest & excitement was in building the hardware for computers – those jobs were done by men. The programming of computers as was seen as a less important afterthought, similar to filing or typing, and was a job that could be left to women. Low status is self-reinforcing – lower status jobs are given to women & then those jobs continue to be seen as lower status because they are done by women. Over time however, more men started to enter the field of software, and women were actively discouraged from computer programming roles.
As we continue to encourage more women to enter STEM fields in general and programming in particular, its important to remember that the gender imbalances we see in programming today were not always the case. Men today are no more ‘naturally’ suited to programming roles than women of the 40s and 50s were. Only our perception of the work and who is best suited to it has changed and that will continue to evolve.