13 ms·
It's often said that the Analytical Engine was before its time
- shadowofneptune 5y agoThe impression I have gotten from articles which look at the Analytical Engine more critically is that Babbage had the habit of trying to upsell his investors into a more complex, more risky, more academically interesting device without completing the last one. The Difference Engine actually was completed eventually and ordered by the British government, in a more pragmatic form: https://en.wikipedia.org/wiki/Difference_engine#Scheutzian_calculation_engine https://en.wikipedia.org/wiki/Difference_engine#Scheutzian_c... That said I do agree with what was said in the thread. There was a lot of accidental complexity in early numeric computers. I feel a true programmable computer could not have come about without the development and refinement of symbolic logic that took place in the 20th century.
- grahamm 5y ago"Babbage had the habit of trying to upsell his investors into a more complex, more risky, more academically interesting device without completing the last one." Omg the oracle business model was born....
- jacquesm 5y agoDon't forget about Moller.
- svat 5y agoHis "investors" being in this case the government, and Babbage does not seem to have understood politicians or the constraints that a government operates under. You can see the timeline in https://www.gutenberg.org/files/57532/57532-h/57532-h.htm#p068 https://www.gutenberg.org/files/57532/57532-h/57532-h.htm#p0... Chapter VI (with the caveat that, though this chapter is written by a third person, this being Chapter VI of Babbage's autobiography/memoirs, clearly it must have been sufficiently sympathetic to him that Babbage included it in his book). But the short version is that, far from it being a "habit", he seems to have done what you said only once, in 1834, when he started to have ideas for an Analytical Engine, which would have completely superseded the Difference Engine that he had already been building for the government for 11 years at that point (initial estimate had been 2–3 years). The relationship between the government and him were already strained, but he doesn't seem to have understood that and got further entangled, instead of extricating himself. He asked the government what their plan was (in light of this development), and it took them until 1842 to make a decision (just give up on it entirely). ---- Slightly longer version of the timeline that I started reconstructing, before abandoning it: • In around 1812 or 1813, he had the germ of the idea "that all these Tables (pointing to the logarithms) might be calculated by machinery". Between 1820 and 1822, he made his own Difference Engine (two orders of difference, 6 digits). • In 1823, Babbage started making "a much larger and more perfect engine" for the government, and this is where the trouble starts. The plan was for this machine to have "six orders of differences, each consisting of about twenty places of figures". • Unfortunately, the conversation was informal and the details of the arrangement were not written down(!), which led to misunderstandings over the years as Babbage came back and asked for more money: work ceased in May 1829, resumed in February 1830, etc. Then in September 1834 that "Analytical Engine" event (idea) happened. • Just before this, in July 1834, Lardner in The Edinburgh Review wrote "a very elaborate description of this portion of the machine" (took me some searching but I found it! here: https://archive.org/details/edinburghreviewo59macauoft/page/262/mode/2up https://archive.org/details/edinburghreviewo59macauoft/page/... ), and this inspired Scheutz in Sweden to build a machine as described. As Wikipedia describes, the Swedish machine went up to the third order (not sixth), and had 5-digit numbers (not 20). This was completed in 1843. • In 1853, a larger (fourth-order, 15 digits) Swedish machine was built, exhibited in 1855 and sold in 1856, delivered in 1857. The British government commissioned a copy of it, which was built in 1859. (Note that this was still smaller than the design which Babbage was close to completing in 1834 or even 1842… oh well.) • Note the ending of the 1834 article (https://archive.org/details/edinburghreviewo59macauoft/page/326/mode/2up https://archive.org/details/edinburghreviewo59macauoft/page/...): already in 1834 people were wondering why on earth Babbage and the government don't bring this matter to a quick conclusion.
- shadowofneptune 5y agoOk, I concede that, it was exagerrated in what I was reading. What do you think about the other point? Was a computer as we know it today practical to design before the discovery that arithmetic and other principles of math could be worked out using logic?
- svat 5y agoI'm not an expert (my only qualification is that I read a part of Babbage's book; others must know a lot more), but see http://tomforsyth1000.github.io/blog.wiki.html#%5B%5BBabbage%20was%20a%20true%20genius%5D%5D http://tomforsyth1000.github.io/blog.wiki.html#%5B%5BBabbage... and (linked from it) https://www.fourmilab.ch/babbage/cards.html https://www.fourmilab.ch/babbage/cards.html — it looks like he did have a reasonable design of a computer in fact. (Except for the too-many-digits-of-precision thing, that the OP tweet thread is about.) He seems to have well understood how not just arithmetic but a lot more could be done mechanically.
- kevin_morrill 5y agoReally interesting to think about hardware vs software. Thank goodness for Von Neumann for helping us get more generic. A lot of historians assume that Babbages work collected dust and was lost for 100 years. This turns out to not be true at all. His work was consulted by the Scheuts and Jevons. Details on what I found researching him at https://buriedreads.com/2019/02/09/when-computers-stopped-being-human/?amp=1 https://buriedreads.com/2019/02/09/when-computers-stopped-be...
- svat 5y agoGood blog post and thanks for writing it. But though Babbage's work may not have been lost for quite as close as 100 years, there is truth to the usual history and I don't think these two examples establish the "turns out to not be true at all": • Charles Babbage lived 1791–1871, dying a couple of months before his 80th birthday. He wrote his Passages from the Life of a Philosopher in 1864. • The Swedish difference engine, produced by Scheutz father and son, is mentioned in these memoirs. At the time, it was regarded as a smaller-scale/toy/prototype version of the Difference Engine he was engaged in building. So, even though this version did find use "in production" (at the Dudley Observatory at Albany, and an English-made copy in use "the department of the Registrar-General, at Somerset House"), it was still short of what he actually wanted to build (or had promised to build). • As for the example you illustrate of W. Stanley Jevons's praise in 1969 of the Difference and Analytical Engine, this too came during Babbage's lifetime, and was for the idea rather than any concrete details of the design: "in his subsequent design for an Analytical Engine, Mr. Babbage has shown that material machinery is capable, in theory at least…" etc. So it does seem to be the case that at least after Babbage's death in 1871 (if not before), his ideas for the Analytical Engine were dismissed as impractical, or absurdly expensive, or a failure, etc, and no one quite looked at them at least until (going by the Aiken reference you found) 1936, which is 65 years.
- jamiek88 5y agoWow this really brings home how recent it was still in the scheme of things. I had it in my mind before this thread and article that Babbage was in the 1600’s or something.
- tasty_freeze 5y agoI don't know about Babbage, but the hardware/software tradeoff was well known before microprocessors. The IBM 360 family (1960s) had a range of options, from hardwired monsters, to microcoded but wide machines, all the way down to microcoded versions that had an 8 bit ALU.
- fancyfredbot 5y agoI was expecting the thread to end with a link to a design for a binary mechanical computer with software multiply which could have been built back then. Exercise for the reader I guess?
- ummwhat 5y agoA lot of the problems cited make sense in the context the machine was designed for. Of course it did math in decimal. The designer did math in decimal, the user input was in decimal, they wanted output in decimal, and unlike electrical switches, mechanical switches aren't naturally limited to just on/off states. Of course the register supported 40 digit numbers. This was a machine that would have to be cranked. The clock cycle was literally a cycle. Anything less than 40 and you could more economically pay someone to calculate directly. It's easy to say "just do it in software" when cycles are measured in GhZ.
- a_shovel 5y ago> Of course the register supported 40 digit numbers. This was a machine that would have to be cranked. The clock cycle was literally a cycle. Anything less than 40 and you could more economically pay someone to calculate directly. Yes, but larger registers would need more physical force to manipulate. If you had smaller registers, you could have a higher gear ratio on the crank, allowing the machine to run faster for the same input force. If they wanted to perform some particularly complicated instructions, then they might want a lower gear ratio instead. The obvious solution: install a gearbox and a shifter.
- pishpash 5y agoThat's extra complexity kind of like adding frequency throttling or sleep mode.
- Animats 5y agoThis was a machine that would have to be cranked. The Difference Engine was hand-cranked, but the Analytical Engine was intended to be steam-powered. The thing was going to be the size of a locomotive. Most of that was memory. As I've pointed out before, the big problem in the early days was affordable, fast memory. Babbage's design, at least one version, was to have the ability to store 1000 numbers of 40 digits each. So, 40,000 number wheels, with some kind of mechanism to bring them to the read/write station. Access time would probably have been measured in seconds. The arithmetic unit wasn't the big part of the machine. It was roughly equivalent to a desktop mechanical desk calculator, after all. Something similar appears to have happened with Babbage, where he started with a simple calculating device and, thinking about it more deeply, single-handedly came up with a Turing-complete design and was writing programs for it. Desktop calculators existed long before Babbage. Leibniz built the first mechanical multiplier around 1673. Mechanical arithmetic was known. Babbage's contribution was the instruction decoder and control unit. Mechanical arithmetic was limited more by cost-effectiveness and reliability than by conception. The commercial breakthrough was cash registers, in the mid 1880s. First really cost-effective application. Babbage's machine might have been buildable, but not cost-effective. A few years ago, there was some guy in the UK talking about an analytical engine build. But he never got very far. I'm surprised someone doesn't have one running in Minecraft or Unreal Engine.
- svat 5y agoWhile this is a good point (yes, many of Babbage's difficulties were self-inflicted; arithmetic on 40-digit numbers wasn't needed in mechanical hardware and could be done in software as the industry started to realize in the 1970s), looking at the historical evolution—how Babbage got to the Analytical Engine—reveals the reason: • Babbage's first insight was that many books of tables (log tables, sine tables, actuarial tables) could be generated mechanically, using finite differences: basically, any "nice" function can be well-approximated by (say) a sixth-degree polynomial, and that was the basis of his Difference Engine. He did understand this; see the paragraph just before his frequently quoted one: > One gentleman addressed me thus: “Pray, Mr. Babbage, can you explain to me in two words what is the principle of this machine?” Had the querist possessed a moderate acquaintance with mathematics I might in four words have conveyed to him the required information by answering, “The method of differences.” The question might indeed have been answered with six characters thus— Δ⁷uₓ = 0 but such information would have been unintelligible to such inquirers. (This paragraph is followed by the famous: > On two occasions I have been asked,—“Pray, Mr. Babbage, if you put into the machine wrong figures, will the right answers come out?” In one case a member of the Upper, and in the other a member of the Lower, House put this question. I am not able rightly to apprehend the kind of confusion of ideas that could provoke such a question. — but he does attempt to briefly answer how error-correction could be built into the machine.) • In short, as he explains, his Difference Engine can be seen as a glorified version of a simple machine that turns a triple of integers (x, y, z) into the triple (x + y, y + z, z). If you start this machine with the triple (0, 1, 2), then it successively turns it into (1, 3, 2), then (4, 5, 2), then (9, 7, 2), then (16, 9, 2), etc — so in n steps you get n^2 as the first number. (In general, starting with (a, b, c) gives the quadratic function a + nb + (n(n-1)/2)c after n steps.) Do this to six places and many digits of precision and you have the Difference Engine, which could compute arbitrary sixth-degree polynomials and could indeed automate a lot of the tables that were being built by hand. • As Tom Forsyth points out in the replies on the Twitter thread (https://twitter.com/tom_forsyth/status/1359572977377890304 https://twitter.com/tom_forsyth/status/1359572977377890304), for this purpose, he really needed all those digits of precision. (BTW his blog post "Babbage was a true genius" looks great: http://tomforsyth1000.github.io/blog.wiki.html#%5B%5BBabbage%20was%20a%20true%20genius%5D%5D http://tomforsyth1000.github.io/blog.wiki.html#%5B%5BBabbage... ) > What the Difference Engine did was polynomials by forward differencing, which is just a bunch of adds. You actually do need massive precision there, and/or the numbers have a high dynamic range. So until floating-point, yeah you need a lot of digits. • The big mistake Babbage seems to have done (IMO), after coming up with this idea for the Difference Engine, is to have grand visions of it (it can do all the tables!), think it will be super useful, and present it to the government. Instead of taking private funding, he thought his great invention should be the property of the country and partly funded by government. Of course, like any engineer, he underestimated how long it would take, and meanwhile, while the government entanglement led to it being dragged on for twenty years at various points deciding whether to pour more money in, he came up with loops and branches and arbitrary computation—the Analytical Engine—asked them "hey I have something better than the project you've been funding, what do you think?", and put them in an impossible spot, and was too socially naive to realize that he had become non grata. • John Nagle (Animats) has commented a few times about how, contrary to the "high culture" story of the evolution of computers (Turing, von Neumann etc), the gradual evolution of "calculators" was itself leading up to computers (e.g. https://news.ycombinator.com/item?id=10636154 https://news.ycombinator.com/item?id=10636154). Something similar appears to have happened with Babbage, where he started with a simple calculating device and, thinking about it more deeply, single-handedly came up with a Turing-complete design and was writing programs for it. • I started reading Babbage's memoirs "Passages From the Life of a Philosopher" (http://onlinebooks.library.upenn.edu/webbin/book/lookupid?key=olbp36384 http://onlinebooks.library.upenn.edu/webbin/book/lookupid?ke...) after seeing an intriguing Knuth reference to it (see Russ Cox's blog post https://research.swtch.com/tictactoe https://research.swtch.com/tictactoe "Play Tic-Tac-Toe with Knuth"). I'm only a third of the way through it, but unlike the popular image (his plans were never completed, the project was a failure etc), he seems to have been the real deal, really did understand what computation was possible, in many respects he was thinking like a programmer. Too bad machine-making of his time was not up to the task, or we might have had a different history. (According to Wikipedia, William Gibson and Bruce Sterling had the same thought, and came up with their 1990 novel "The Difference Engine", establishing the genre of steampunk.)
- tshaddox 5y agoWhat I find interesting is how historiography works. Babbage is widely cited as a major or even the primary originator of programmable digital computers. What I haven’t been able to get great information about is to what extent there was actually a continuous chain of influence, and to what extent we retroactively recognize that he had the ideas early. Did Turing know about Babbage? Did the ENIAC designers?
- wmf 5y agoI've wondered the same thing about Turing's influence on computers (not computer science, which is obvious). ENIAC looks nothing like a Turing machine and I assume Eckert and Mauchly were not aware of Turing's highly classified computer work at Bletchley Park.
- hyperpallium2 5y agoA lot of math seems like that: this cool "new" idea was actually completely worked out 200 years ago by this obscure mathematician but it didn't have any impact. (I mean, they deserve priority, but...)
- meetups323 5y agoSame for computer science, no? Or anything really... ideas are cheap, seeing the bigger picture and successfully integrating with it is difficult.
- djmips 5y agoSometimes 2000 years ago. I was admiring this quarter scale multiplication algorithm on an eight bit system that used tables of squares and a clever formula to beat my fastest shift and add approach and was blown away to find out that it was known in Babylonian times.
- ravi-delia 5y agoYeah, I think most would say Turing had little influence on computers per se, rather than computer science. ENIAC was built in a clear line of succession with other mechanical calculating devices of varying complexity, but if they got how fundamental a threshold they passed I'm not sure they knew it.
- samwillis 5y agoSee also Plan 28, a project to build an Analytical Engine, started by HN own jgrahamc: https://plan28.org/ https://plan28.org/
- AceJohnny2 5y agoI love that it would take another century (almost exactly, AE ~1837, Turing's "machines" paper 1936) for the required insight that the computation was interchangeable, and indeed the HW need not be so sophisticated.
- k__ 5y ago"knowing what we do now, you could likely come up with a version that could be realistically built (and kept running reasonably well) with 19th century tech." No shit!
- k__ 5y agoBut seriously. I think, we should put more effort in checking out these old solutions to problems and see how we could build it in a better way with modern knowledge. Many things, like the AE, could probably be built much smaller, since we have more precise tooling available. Smaller size could lead to optimizations already, a smaller mechanical system requires less power to do its work. But also, like the article suggests, using generally better design. Could be that a mechanical computer, like the AE, is way slower but could work in circumstances that electronical devices don't.
- jordigh 5y agoI want to use this opportunity to plug The Thrilling Adventures of Lovelace And Babbage: https://en.wikipedia.org/wiki/The_Thrilling_Adventures_of_Lovelace_and_Babbage https://en.wikipedia.org/wiki/The_Thrilling_Adventures_of_Lo... The book is fun and deeply instructional. It has the only illustrated explanation of the analytical engine that I have ever been able to understand. And yes, Babbage wanted as much RAM as possible ("the store" he called it). This greatly ballooned the size of a mechanical machine as he devised it, further impeding its physical construction. The book actually pokes fun at this, inventing "Babbage's Law" to replace "Moore's Law": instead of shrinking by half regularly, the machines in this alternate comic book world double in size, and giant construction projects are required to install new RAM.
- HideousKojima 5y ago"I predict that within 10 years, computers will be twice as powerful, ten thousand times larger, and so expensive that only the 5 richest kings of Europe will own them" - The Simpsons
- dmcq2 5y agoAs far as I can see the reason for a large number of digits was to do the equivalent of floating point without having an exponent. Also a number of digits gets lost doing differences and not doing proper rounding. Konrad Zuse was the first one to do floating point - and he had binary too in his mechanical computer, but it worked on completely different principles from Babbage's machines. Decimal is fine when one uses wheels, Zuse used plates where binary was much more natural. The digital mechanical multipliers I know of use rods for multiplying and wheels for the adding.
- slyall 5y agoI was looking into the idea of building a clockwork computer. Probably a 16-bit RISC based on a simple teaching instruction set (just over dozen instructions). Maybe a 4-bit prototype to work out how to actually implement everything. Realistically even the prototype project is way beyond my skills but it doesn't look impossible. Actual performance would be in seconds-per-instruction ( mIPs = milli-IPs? ) with perhaps a few hundred words of memory.
- trasz 5y agoGiven that you need a really simple ISA, and probably also good code density, how about a Forth CPU, like https://excamera.com/sphinx/fpga-j1.html https://excamera.com/sphinx/fpga-j1.html?
- somebodynew 5y agoAs another example of historical complexity driven by a focus on directly encoding the everyday representation of data, early designs for the telegraph system used twenty-six individual wires to separately indicate each letter of the alphabet. It is also interesting that practical designs then ignored the obvious five-wire simplification of this ("UTF-32 for telegraphy") and settled on Morse code ("UTF-8 for telegraphy").
- djmips 5y agoThe costs of stringing wire would be significantly less for the Morse system. There were low wire designs that could be used by untrained staff. The Cooke and Wheatstone system was used in 4 to 6 wire setups. https://en.m.wikipedia.org/wiki/Cooke_and_Wheatstone_telegraph https://en.m.wikipedia.org/wiki/Cooke_and_Wheatstone_telegra...
- hyperpallium2 5y agoWould it have adequate memory to do it in software? I guess the code was on ROM (punched cards), but you need RAM too. It's also a whole other invention or series of inventions - just because it's software doesn't make it soft and easy. (what software techniques have we yet not thought of - or is it "all already invented"...?) It's maybe fair to qualify it as his hardware problems being harder than warranted. Reminds me of Wozniak: made Breakout in hardware... then made it again, much more quickly and malleable in software... but (I think?) only realized he could do that after having made the Apple computer. Kinda sorta related Dragon's Egg (Forward), a novel with a theme that inventions are much easier once you have the idea, and know it's possible.
- ravi-delia 5y agoAs designed, it had storage space on the order of tens of kilobytes, accounting for much of the complexity and cost. It definitely could have gotten by with significantly less memory and smaller, more practical registers.
- ajnin 5y agoHe's missing one key fact in his analysis which makes the conclusion incorrect, imho : early computers were really, really slow ! Early mechanical or relay computers for example had dedicated hardware to compute multiplications or divisions or more complex operation on full width floating point registers and still they took minutes to complete a computation. Doing things in software sounds great written from a multi-GHz modern computer but it would have been just too impractically slow at the time. Doing something as seemingly simple as a division can take thousands of cycles when you need to do everything "in software" with only additions and subtractions. When your machine has a clock frequency in the order of 1Hz, this translates to hours on a single operation. So the issue was mostly technical, the hardware at their disposal was not capable of doing things quickly enough, so they did not design impossible things based on a future understanding of how things should be done. The process of invention is very iterative, building up on technological progress. When advances in semiconductors allowed to reach clock speeds millions of time faster, then doing things "in software" came naturally.
- dan-robertson 5y agoSomewhat related is the way one tends to learn mathematics, mostly seeing definitions, proofs, and sequences of lemmas that have been improved on over many decades. When you learn real analysis you get Cauchy’s epsilon–delta formulation mixed with quantifiers, set theory, the notion of continuous functions, and Riemann integration. You don’t need to first learn vague notions of infinitesimals and explanations that seem to make sense but fall apart when you try them yourself. When you learn graph theory, you can use the language of set theory with straightforward definitions of what a graph is, and you can see innovations like the probabilistic proof or subjects like Ramsey theory. When you do applied maths you have tools like contour integration and computers and you don’t need to rely on Euler’s technique of applying the ‘universality of analysis’ (at the time analysis meant what we might now call non-abstract algebra; over history it has meant basically every different topic that is not geometry) and expanding and rearranging infinite expressions and somehow getting the right answer. When you learn Galois theory you already know what a group is, and you have lots of examples and tools you can use. You also know about rings and fields and polynomial rings. You don’t need to simultaneously invent the notion of a field extension, a group, a functor, and a normal subgroup. When you learn group theory you seem to find all these easily-proven theorems with grand names like Lagrange’s theorem or Cayley’s theorem but maybe they are only easy in a modern context. When you learn category theory, most of your examples of categories come from things that you learned from materials that post-date category theory and therefore can have a structure that makes the categories more obvious.
- djmips 5y agoAll true but certainly, for me, I was never satisfied until I found out the history and stumbles along the way. In this manner, I was able to integrate my own approach to understanding with the original path and not only feel better about my own struggles but overcome some mental blocks to achieve deeper understanding.
- fentonc 5y agoI've been very interested in mechanical computing for a while (even going so far as to build my own simple 3D-printed, hand-cranked computer!), but the whole analytical engine thing makes me wonder what might have happened if computing had developed more from the industrial-control / power-loom side of things rather than a need for scientific number crunching. A truly impressive amount of work was done by the mid-to-late 1800s with power looms - 'programs' 10s of thousands of cards long, speeds in excess of 3 Hz, 'production-level' reliability. The people building weaving mechanisms could have readily implemented something equivalent to a 4-bit microcontroller if they had been sufficiently motivated, which might have kicked off a computing revolution from the bottom up rather than starting with supercomputers and gradually figuring out how useful very limited microcontrollers were.
- kwhitefoot 5y agoA lot of the comments here seem to be conflating the Analytical Engine with the Difference Engine.
- Lamad123 5y agoI soemtimes forget to forego clickbaity titles.
- eggy 5y ago>Babbage and consorts were not alone in making that mistake; I wouldn't call it a mistake. Maybe there were not alone in taking that tact or direction, but there seems to be a touch of hubris calling it a mistake. I get the point of the thread, and there are some nice points in it, but hey, Babbage was born in 1791!
- crazypython 5y agoIt was too CISC!
- qurashee 5y agoFirst time I've seen ryg/farbrausch not talking about the demosecene :) Great post!
- divs1210 5y agoVery interesting article, thanks for sharing! I hope someone makes a 3D model of such a "minimilist" working Analytical Engine that we can play with. Would be cool if we could enter a program and see it being processed. Seeing AE in action - programs being run mechanically - would be so cool!
- euroderf 5y agoThey have been built in Meccano, and there are videos !
- visarga 5y agoPeople invent things for something, turns out they are really useful for something else, in hindsight. So much talk about AI not being really intelligent, not being able to think causally, but what about us? We're also suffering from low ability to predict outcomes and we can only see one step ahead. We think we're so superior when in fact we're doing distributed random search. Another example - the battery invented in Baghdad 2000 years ago. Why didn't we follow up with the theory of electricity for two millennia?
- IMAYousaf 5y agoIs there a particularly good book on the history of math/analysis that would be worth reading? I assume it would overlap with these types of computation a lot.