For novel ideas about building embedded systems (both hardware and firmware), join the 35,000 engineers who subscribe to The Embedded Muse, a free biweekly newsletter. The Muse has no hype and no vendor PR. Click here to subscribe.
Summary: Ada Lovelace - was she the first programmer?
December 10 marks the 200th birthday of Ada Lovelace, n‚e Byron. She is reputed to be the world's first programmer, though she never had access to any sort of computer.
The only legitimate child of Lord Byron, she never actually met him. Byron was quite the cad and had an unknown number of children with a number of ladies. He essentially had to flee England shortly after Ada's birth, never to return. Ada, too, was rumored to have had her share of dalliances, but it's not clear how much one should credit these allegations. Her husband's name was William King-Noel, and through inheritance schemes only the English understand after marriage she became the Countess of Lovelace.
Ada knew Michael Faraday, Charles Wheatstone, Isambard Kingdom Brunel and Charles Dickens. Brunel is a name that isn't, but should be, familiar to engineers as he was a giant (though short) of 19th century engineering.
She met Charles Babbage at one of his champagne and science receptions in 1833. Babbage was demonstrating a mechanical ballerina and an early model of his difference engine. The guests were enchanted by the dancing automaton; she was mesmerized by the difference engine.
Ada translated Luigi Menabrea's article about Babbage's never-built Analytical Engine and supplemented it with notes; those notes were three times the size of the original article. One explained how to use the Engine to compute Bernoulli numbers. This has long been regarded as the first computer program, making her the first software geek.
But according to an article in September's CACM ("Historical Reflections"), it's not entirely clear how complete the program was, nor how much should be attributed to her as sole author considering a give-and-take in voluminous correspondence with Babbage. An article in Nature (http://www.nature.com/nature/journal/v525/n7567/full/525030a.html) says her papers have not all been released so the final say has yet to come.
Some consider her work seminal to computer science. Others say the same about Babbage. Yet in Historical Reflections the authors show that Howard Aiken was unaware of Babbage until after he wrote his 1937 proposal for the Harvard Mark I, an early electro-mechanical computer. And there's no evidence Babbage influenced Konrad Zuse (maker of the Z machines), Tommy Flowers (father of Colossus), John Atanasoff (inventor of the first electronic digital computer in 1939), Grace Hopper (COBOL), J. Presper Eckert or John Mauchly (designers of ENIAC). So one would imagine Ada, too, was not terribly influential to the development of this field.
Regardless, it seems to me that her work is at least very close to a computer program, and she deserves a lot of credit as a result. Her approach is in note G here: http://www.fourmilab.ch/babbage/sketch.html . Check out her diagram at http://www.fourmilab.ch/babbage/figures/menat6_2k.png. It sure looks like a program to me - what's your take?
I find her writing poetic. Consider "We may say most aptly that the Analytical Engine weaves algebraical patterns just as the Jacquard-loom weaves flowers and leaves." Or "I do not think you [Babbage] possess half my forethoughts, & powers of foreseeing all possible contingencies (probable & improbable, just alike). I have always fancied you for a little harum-scarum and inaccurate."
Ada died too young, at 36, abandoned by her husband due to something she confided in him some months earlier. No one knows what that tidbit was. Dickens read from to her on her deathbed from his latest work. It must have been fascinating to travel in such circles!
The programming language Ada was named after her. Interestingly, the first reference manual was approved on her birthday in 1980, and is called MIL-STD-1815 (the 1815 is her birth year) in recognition of her.
Published November 30, 2015