Often facts are more exciting than fiction. This is also true in case of Countess Ada Lovelace’s story. In my opinion, this is a story about an extraordinary woman with an extraordinary education for that time who accomplished an extraordinary feat, that has a great impact on our lives today.
Today, everyone knows (well, almost everyone) that there are “machines” like computers, various devices, etc. that we call – hardware. And then there’s software, coded to be used with that hardware. Without software there’s little use of hardware.
This is true for robots as well. A robot without software is an elaborate statue at best. Also, it’s often the complexity of software that determines whether or not we perceive a device as a robot at all. This seems straightforward for us now. However, it wasn’t always so.
Augusta Ada King, Countess of Lovelace, was born in December 10, 1815. She was a daughter of the well-known poet Lord Byron and his wife Anne Isabella Milbanke. However, she had no relationship with her father.
Even more, her mother apparently had a view that Lord Byron was insane and that this insanity could be inherited. So, she sought ways how to weed out this possible insanity from her daughter. Education in mathematics was perceived as one possible method.
Because of this, Ada was privately schooled in mathematics and science by prominent persons in this field. Not that this was against her will, as it later turned out, Ada had remarkable mathematical abilities and mathematics became her passion for life.
This is the very reason why he and Charles Babbage became friends. Charles Babbage, who was the inventor of the Analytical Engine, recognized Ada’s intellectual and mathematical skills. He even called her – “The Enchantress of numbers”.
Because of this friendship and her abilities, Babbage asked her a favor – to translate a certain piece of work and complement it with her own insights in a form of notes. The article she translated was called “Sketch of The Analytical engine” by L.F.Menabrea. Because of the aforementioned notes she is so famous in our days.
The Analytical Engine
I realize that I should explain more in a few words what this Analytical Engine is. I suppose you’d like to find out what it does and why it’s connected with computer programming so much that Ada Lovelace, who wrote some notes on it, is sometimes even regarded as the first computer programmer ever.
The analytical engine was a programmable, mechanical, multi-purpose computational device. It was a mechanical computer so to say. It should be noted that it was never completely built because of numerous reasons such as technological limitations, financial, political and personal obstacles.
However, the design was there and people say it would’ve worked if it was ever built. So, the machine was intended to be programmed using punch cards, as this way of control was already successfully used in mechanical looms.
So, the machine would’ve been able to do numerous calculations as well as store a limited number of variables. Three types of cards would’ve been used to control the machine – operation cards, number cards and variable cards. A sequence of these cards can be viewed as software for the Analytical Engine.
Operation cards would execute arithmetic operations and branching/looping functions. Number cards would load a numerical constant in to the store (memory) and variable cards would transfer values from the store part of the analytical engine to the Mill part that executes operations.
If you are familiar with Assembly programming languages you can surely notice some resemblance here. Indeed, the language that would’ve been used to program the Analytical Engine would’ve been more or less similar to them.
I don’t know how you feel about this, but for me it is pretty mind-blowing. Think about it – some hundred years before first “modern” computers were created, there were people who already “programmed” in Assembly. Anyone who was involved should be honored, but one of them even realized that the potential of such machines is far greater than bare number crunching. This person was Ada Lovelace.
So, why Ada Lovelace is often regarded as the first programmer instead of Charles Babbage who invented the machine? I mean, surely Babbage knew how his machine could be programmed, surely he had some programs in mind for it, so why Ada?
Because of her notes to the “Sketch of The Analytical engine”. A description “notes” is a bit misleading, as these notes are a few times longer than the translated text. These notes are labeled from A to G. Note G includes an algorithm for calculating Bernoulli numbers on the Analytical engine. Don’t expect to find lines of code there though.
It is not clearly known at what level Ada Lovelace and Babbage cooperated to create these notes. So, the designation “first programmer” is often disputed. Nevertheless, Ada Lovelace did a remarkable job and raised some philosophical questions regarding software and its significant role in computing.
Firstly, she predicted that a machine such as the Analytical Engine with appropriate software could do much more than solving mathematical problems. Let me quote it.
Again, it might act upon other things besides number, were objects found whose mutual fundamental relations could be expressed by those of the abstract science of operations, and which should be also susceptible of adaptations to the action of the operating notation and mechanism of the engine. Supposing, for instance, that the fundamental relations of pitched sounds in the science of harmony and of musical composition were susceptible of such expression and adaptations, the engine might compose elaborate and scientific pieces of music of any degree of complexity or extent. (Note A)
She also had an opinion on something we call Artificial Intelligence today. Let me quote that as well.
The Analytical Engine has no pretensions whatever to originate anything. It can do whatever we know how to order it to perform. It can follow analysis; but it has no power of anticipating any analytical relations or truths. (Note G)
Here she basically denies the possibility of a “thinking machine”. On the other hand, I suppose she couldn’t imagine what computational power could be available. As we now speculate, if it’s possible to “design” our brain, it should be possible to design appropriate software for it as well.
If you find the Analytical Engine or Ada Lovelace’s notes interesting and would like to find out more about it, I strongly encourage you to visit this site, that’s dedicated to Ada Lovelace and the Analytical Engine. There you can find historical documents on this topic, including “Sketch of the Analytical Engine” by Menabrea with Countess Lovelace’s notes.
There you can find an emulator of the Analytical Engine (i’m not joking). So, if you have to do a project on computation history or something like that, you can actually write a program for the Analytical Engine. Isn’t that cool?
In either case, Ada Lovelace was a significant person. She is also often viewed as a symbol of women in computing and she fully deserves it. I think, we roboticists should honor her as well, as no robot is a robot without proper software.