Pioneering Women in Programming

Today I thought I’d write about historic female programmers.

The first programmer is often said to be Ada Lovelace. When she translated a paper about Charles Babbage’s ideas for a programmable mechanical calculator, she spent months not only translating, but expanding on the concepts. Nine months later, she had effectively written the first computer program. The machine itself was never built, so her program was never run — but Ada and Charles continued collaborating, sketching out both programs and machines. It’s difficult to say exactly where Charles’s contributions end and Ada’s begin, but Ada is widely credited with the title. She also introduced several abstract ideas about computation, decades ahead of what their machines could have handled. The programming language Ada is named in her honor.

Many women worked on the primitive electronic computers developed during wartime. One standout was Grace Hopper, known for coining the term bug after literally debugging a moth that had flown into a vacuum tube. She realized the need for higher-level abstractions and a way to translate text into machine code. Despite resistance, she pushed on — eventually giving us COBOL, still used today on IBM mainframes. She is often credited with the invention of the compiler. You may have seen footage of Grace holding up a 30-centimeter piece of wire to explain how far light travels in a nanosecond.

Margaret Hamilton joined the Apollo program early on and became a central figure in programming the computer that got us to the Moon. That was also the first computer with silicon chips, although it wasn’t much more than some loose NAND gates on a wafer. Margaret is often credited with creating the first event-driven real-time system. Her system handled the Moon landing even when Buzz Aldrin inadvertently overloaded the computer by requesting too much display data — activating an eighth concurrent task when the machine was only meant to handle seven. The system kept going, raising error codes but continuing to function during descent. This was a massive project with around 300 programmers, and Margaret not only led much of the work but contributed key insights that have echoed through computing history.

Karen Spärck Jones may not be as widely recognized, but she laid the foundations for how we weight information in text — semantic classification — enabling search engines to determine what content is most relevant. She is credited with the phrase:

“Computing is too important to be left to men.”

Joan Clarke worked alongside Alan Turing at Bletchley Park during World War II, helping to break the Enigma code. She was a specialist in Banburismus, a statistical technique that drastically reduced the time and computational power needed to break messages. Joan became one of the leading experts in this method, and her mathematical brilliance helped optimize the entire codebreaking process.

Barbara Liskov is the architect of abstraction. She is best known for the Liskov Substitution Principle — the idea that an abstraction should honor its promise. But she did much more: she gave us abstract data types, type parameters, iterators, and exceptions. She taught us how to build well-structured, modular programs.

Radia Perlman, the Mother of the Internet, invented the Spanning Tree Protocol — a fundamental technology that made Ethernet networks scalable. Without STP, the internet wouldn’t be the robust and loop-free marvel we rely on today. Her work in routing, security, and resilience has shaped the digital world.

Fran Allen broke ground in optimizing compilers and parallel computing. She developed techniques to analyze dependencies between instructions — laying the foundation for utilizing superscalar processors. We thank her for pioneering the techniques behind optimizing JITs and LLVM.

She taught the machines to speak fluently — in loops and branches.


All #art #clojure #csharp #data-structures #database #datomic #emacs #functional #haskell #history #immutability #java #jit #jmm #lambdas #lisp #pioneers #poetry #programming #programming-philosophy #randomness #rant #reducers #repl #smalltalk #sql #threads #women