This is the sort of machine that Babbage designed and named a "difference engine". He built a small demonstration model, Difference Engine 0, in 1822 and on the strength of this was awarded the money to design and build Difference Engine No 1.
This he attempted to do with the help of Joseph Clement, a skilled toolmaker and draughtsman, but to be successful he had to push the precision of the metal working of the time to its limits. Babbage was a good mechanical engineer in his own right. He used a lathe, built many test pieces on his own and studied the manufacturing methods then available to see if any could be used to mass produce the accurate parts he needed.
He invented a mechanical design language for the trains of gears and linkages that his machines needed and this enabled him to refine his designs to eliminate redundancies and reduce moving parts. This isn't far removed from the software and hardware engineering principles used today.
You should refrain from thinking that mechanical design of an adder is trivial. To make something that works reliably and in which friction and backlash (looseness) in the gears doesn't destroy the accuracy is very difficult. Babbage's mechanical designs were elegant in the extreme. To give you some idea of how advanced they were he even included a printing mechanism which would produce printing plates by making impressions in papier-mâché sheets - the first GUI interface?
Difference Engine No 1 would have been 8 feet high by 7 long and 3 deep and would have weighed tons.
Difference Engine built from original parts by Babbage's son
It was never completed for reasons that seem almost ridiculous from today's perspective. An argument over compensation to Joseph Clement due for moving his workshop to be near to Babbage stopped the project in 1833. In reality it was probably that ten years was too long to sustain such a project without results and Babbage was already thinking other thoughts. A portion (about 1/7th) of the Difference Engine No 1 was put together in 1833 and this at least demonstrated the feasibility of completing the whole machine.
The difference engine was half a step towards a computer because it implemented a simple algorithm rather than just providing the four functions of arithmetic that a human could then use within a calculation.
The difference engine was, in our terms, a hardwired computer. Babbage made the leap of the imagination necessary to see that this could be generalised to a programmable device.
The reconstructed difference engine in the London Science Museum.
Even before the Difference Engine No 1 project was completely abandoned Babbage had made progress on the design of his Analytical Engine.
This really was a computer in the modern sense. It had a store that could hold between 100 and 1000 values - depending on the memory expansion fitted - each to forty digits! This may sound well over the top for a mechanical machine but when it comes to memory mechanics is easier than valves. Each value can be stored as a stack of figure wheels and they have the virtue of not burring out like valves. The store was connected to and adder by way of connecting rods and gears.
A value could be transferred from the store to the adder, operated on and then returned to the store. The entire machine was controlled by the use of punched cards. The holes in the cards allowed the rods through or blocked their passage. One set of cards controlled the arithmetic operation to be performed and another set controlled where the values where to be retrieved from and results returned to the store.
The cards were to be presented to the machine in pairs making up, a now traditional, operator+address type of assembly language. The analytical engine had a printer as an output device and it was entirely possible that had it been built computer science would have started before 1900!
It was exposure to the ideas of the analytical engine that allowed Ada Countess of Lovelace to claim the title of `first programmer'
The planned machine was so large that it would have needed a steam engine to turn the handle and this is the source of the vision at the start of this article of the "steam mainframe".
Of course the machine was not build. A small portion was completed in 1871 just before Babbage's death and another by his son in 1910 and these succeeded in demonstrating the principles.
The 1910 Analytical Engine
Babbage was disappointed at his failure to build a working machine - with more support he may have succeeded - and he must have felt bitter when the Swedish engineers Georg and Edvard Scheutz produced a production model based on the difference engine.
Babbage's curse was that he was a man born before the technology needed to make his ideas a reality.
This short introduction to Babbage cannot possibly do his wide ranging interests justice. As well as the Analytical engine and Difference Engine 1 he also designed Difference Engine 2. Again this wasn't built in his life time but you can see one built from his original drawings at the Science Museum.
This was constructed to celebrate the Babbage bicentenary in 1991. Shame it wasn't the analytical engine, but it is a fine example of Babbage's design skills and worth looking at.
You can also read more in the three books shown in the panel by Doron Swade who, as Assistant Director of London's Science Museum, curated the bicentenary exhibition there and led the team who built the working model.
There are currently plans to build the Analytical Engine from the original plans that Babbage created. The project called Plan 28, from the name given to the original documentation, aims to raise the money and bring together people to work on the Engine.
Despite the fact that pointers have been long regarded as "dangerous" they are still deeply embedded in the way we do things. Much of the difficulty in using them stems from not understanding where th [ ... ]
Many programmers are confused by the range of variations that there are on the humble variable - mainly because the idea is so basic that we just "pick it up" as we go along. This explanation doesn't [ ... ]