Monday marked an important date in the history of programming: the 197th anniversary of the birth of Ada Lovelace, considered by many to be the world’s first computer programmer. Her life and work has been celebrated in many ways, such as the naming of a programming language and a medal awarded by the British Computer Society after her. This week, though, more than 160 years after her death, Lovelace received a high pop culture honor when Google made her the subject of Monday’s Doodle to commemorate her birth.
Lovelace is recognized as the world’s first programmer for the work she did in association with Charles Babbage, an English scientist and engineer known as the “father of the computer” who designed (but never built) several mechanical computers, the Difference Engine (which has since been built) and the Analytical Engine (which is currently being constructed). During 1842-1843 Lovelace, who was already an accomplished mathematician, translated an Italian memoir on Babbage’s Analytical Engine. In her notes accompanying the translation she wrote an algorithm for the machine - now considered the first computer program - for calculating a series of Bernoulli numbers.
Of course, while she conceptualized the first computer program, Lovelace never got to actually see her program run. She never even got to type it out on a keyboard (being the first programmer, she wouldn’t have had the luxury of cutting and pasting someone else’s code). In fact, she never had the pleasure of actually living the high life of a programmer (and nobody else would, either, for a good hundred years or so after she died). This means that while she was the first programmer, she wasn’t the first to do any of the following programming tasks:
- Inherit, support and curse at a pile of legacy code
- Provide time estimates for building sketchily defined applications
- Try to debug a problem based on the following bug report: “It doesn’t work”
- Refactor code she originally wrote with a hangover
- Try to understand someone else’s comments
- Spend a morning trying to find a piece of code she needs and that she could swear that she's already written
- Explain to an end user or decision maker why, yes, what’s being requested is technically possible but probably shouldn’t be done
- Thank God (or some supreme being) for the existence of version control software right after she recovers code (or a whole branch) that she had accidentally deleted
- Pull her hair out trying to use a poorly documented API
I’m not sure who actually did any of these things first, but somebody must have. If you know who did, please share in the comments.
In any case, happy birthday Ada! You don’t look a day over 190.