I have been informed that today is unofficially Ada Lovelace Day. Clearly I have to blog about my fangirling for Lovelace.
Augusta Ada King, Countess of Lovelace (for that is her proper name), child of the rather infamous poet Lord Byron, was born in 1815 and is widely regarded as the world’s first computer programmer.
In the 1800s. Yes, you heard that right.
Cause around this time a brilliant guy named Charles Babbage (who I also fangirl over– his autobiography? Read it. Yeah. He had a hilarious childhood. But I digress) took a pile of draft paper and whipped up a bunch of sketches for mechanical computers. He had one called a Difference Engine, which was designed to calculate polynomial functions, and one called an Analytical Engine, which was much more complex and designed to be programmable via punch cards. Babbage’s ultimate plans called for it to be, essentially, a modern computer, except powered by gears and steam. Thus sayeth the Wikipedia:
There was to be a store (that is, a memory) capable of holding 1,000 numbers of 50 decimal digits each (ca. 20.7kB). An arithmetical unit (the “mill”) would be able to perform all four arithmetic operations, plus comparisons and optionally square roots. Initially it was conceived as a difference engine curved back upon itself, in a generally circular layout, with the long store exiting off to one side. (Later drawings depict a regularized grid layout.) Like the central processing unit (CPU) in a modern computer, the mill would rely upon its own internal procedures, to be stored in the form of pegs inserted into rotating drums called “barrels,” to carry out some of the more complex instructions the user’s program might specify. (See microcode for the modern equivalent.)
The programming language to be employed by users was akin to modern day assembly languages. Loops and conditional branching were possible, and so the language as conceived would have been Turing-complete long before Alan Turing’s concept.
First of all, does that not blow your mind? This guy was a century ahead of his time. Completed versions of these machines were never actually built in Babbage’s lifetime, due to a lack of funding, but some one hundred years later a group of people built one of his machines according to his plans. It worked. And to make things better, it was absolutely, breathtakingly gorgeous in action. Look at this thing move.
So anyways, Ada Lovelace, who happened to be an amazing mathematician, was doing documentation for Babbage’s machines and just started coming up with examples for how one might “program” the analytical engine. You know what else she said? She wrote about the possibility that “the engine might compose elaborate and scientific pieces of music of any degree of complexity or extent”. She foresaw electronic music. In the mid 19th century. Ever sat down and dinked around with FruityLoops or a similar program? Yeah. Ada Lovelace totally called it 170 years ago. Just sayin’.
Now from what I can gather, the point of Ada Lovelace Day is to talk about women (or a specific woman) in computing/science/etc. Which is a pretty great idea, because I know from experience that contrary to the video-game-osphere (and WoW-o-sphere especially), where there are a lot of women involved, something like, say, the open source movement is considerably more guy-centric, and the idea of how one should approach this topic is actually something I’ve thought about a lot. So, I fully support the Ada Lovelace Day idea.
But honestly if you told me to pick a woman in computing/science to admire, I would’ve picked Ada Lovelace to begin with, anyway, because I am just That Much of a A Fangirl.
Plus, bonus points for anything involving Difference Engines/Analytical Engines.
P.S. Somebody built one out of Legos. It’s official. We will never be as cool as that guy.