[HN Gopher] It's often said that the Analytical Engine was befor... ___________________________________________________________________ It's often said that the Analytical Engine was before its time Author : luu Score : 118 points Date : 2022-02-16 00:41 UTC (22 hours ago) (HTM) web link (twitter.com) (TXT) w3m dump (twitter.com) | AceJohnny2 wrote: | I 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__ wrote: | _" 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! | hyperpallium2 wrote: | Would 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. | jordigh wrote: | I want to use this opportunity to plug 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 wrote: | "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 | samwillis wrote: | See also Plan 28, a project to build an Analytical Engine, | started by HN own jgrahamc: | | https://plan28.org/ | tasty_freeze wrote: | I 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. | dmcq2 wrote: | As 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 wrote: | I 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. | fancyfredbot wrote: | I 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? | svat wrote: | While 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--_ D7u[?] = 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), 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... ) | | > _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). 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?ke...) | after seeing an intriguing Knuth reference to it (see Russ Cox's | blog post 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.) | Sharlin wrote: | > BTW his blog post "Babbage was a true genius" looks great: | http://tomforsyth1000.github.io/blog.wiki.html#%5B%5BBabbage... | | Highlighting this for extra exposure. For even more info, plus | an emulator, see [1] (also linked from the blog post). | | [1] https://www.fourmilab.ch/babbage/cards.html | monocasa wrote: | WRT the digit count, the piece Babbage missed, IMO, was that he | could continue his overall scheme of using automation to | 'inflate' a polynomial to a more generic time/space efficiency | tradeoff. He needed all of that precision, but that wasn't | required in his mill (the analytical engine's ALU), because you | can chain ops with carries like we do today. In fact some of | the first electronic computers we used (which fit in a similar | niche, calculating polynomials to generate tables, generally | for WWII artillery) literally had single digit ALUs in order to | get the cost under control enough to be viable. Their results | had greater than single digit precision. | formerly_proven wrote: | > * 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). 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. | | Konrad Zuse was a civil engineer who was annoyed by doing | manual numerical calculations and so started to build his | computers (22-bit floating point machines). He too saw how many | engineer-man-centuries these machines could save and approached | the Nazi government which of course blundered that and thought | computers were irrelevant. | detaro wrote: | > _He too saw how many engineer-man-centuries these machines | could save and approached the Nazi government which of course | blundered that and thought computers were irrelevant._ | | Zuse built "computers" and process control for military R&D | and production. He wasn't a major concern or priority at a | high level, but given resources "thought irrelevant" projects | wouldn't have gotten. | avrionov wrote: | Up-voted you because of the high quality comment. Thank you for | the provided links. | ummwhat wrote: | A 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. | monocasa wrote: | The goal wasn't as much speed (it generated printed tables to | be referenced later), but instead accuracy. The contemporary | sources of such tables were rife with errors. Some by mistake, | some added intentionally as a form of copy protection. | a_shovel wrote: | > 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 wrote: | That's extra complexity kind of like adding frequency | throttling or sleep mode. | Animats wrote: | _This 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. | codeflo wrote: | 40,000 decimal numbers is about 16 KB of RAM (40K * | log2(10) / 8). That's 1980s home computer territory -- | there's no way that amount of memory would have been needed | for anything. (Given today's understanding of efficient | algorithms.) | Animats wrote: | Babbage was perhaps thinking a bit too big. | | Also, the 40 or 50 digit decimal number thing comes | partly from not being clear on how to manage scaling | "However, by inserting an imaginary divider between the | same two figure wheels of all variable number columns, | thus making all coefficients and numbers within the Store | possess the same number of decimal places, decimals could | be used."[1] So there was one decimal point location for | all memory locations. Babbage apparently didn't include a | general shift function, which is necessary for rescaling | results. If you can shift to discard low order digits, as | on mechanical desk calculators, you need maybe 10 digits, | and a 20 digit product register, so you can multiply two | 10-digit numbers and then round off or truncate the | result. Without that, you need a lot more digits to avoid | overflow. So close... | | Useful programmable calculators from the 1970s had 20 to | 100 memory locations, each capable of maybe 10 digits. A | base Babbage machine with 200 digit wheels of memory, | expandable to 1000, would probably have been feasible and | moderately useful. Useful for cranking out navigation and | gunnery tables, at least. Babbage's difference engine has | about that much storage. So that was probably buildable | as a minimum viable product. | | [1] https://cs.stanford.edu/people/eroberts/courses/soco/ | project... | fanf2 wrote: | "Some guy" is John Graham-Cumming (CTO of Cloudflare) and | the project website is https://www.plan28.org/ named after | Babbage's final iteration of his design. | | I am sitting below a poster of Sydney Padua's splendid | cartoon of Plan 25, and her book and comics are the most | entertaining way to learn a bit about Lovelace and Babbage | http://sydneypadua.com/2dgoggles/comics/ | jgrahamc wrote: | Here's the latest: | http://blog.plan28.org/2021/12/winter-2021-report-to- | compute... | ahazred8ta wrote: | Babbage shows his latest invention to a dubious Lovelace: | | "It's operated by a crank!!" "... Indeed." :-P | | http://sydneypadua.com/2dgoggles/lovelace-and-babbage-vs- | the... | wmf wrote: | Yeah, I was also wondering about performance when I read this. | The Analytical Engine wouldn't have been fast to begin with and | using a narrower datapath would have made it even slower. AFAIK | if you measure the time-space complexity of emulating wide | operations in software it's a loss. | | 8-bit PCs were derided as toys in the 1970s and with the | benefit of hindsight people now scoff at that idea, but PCs | really were much slower, less capable, and harder to program | than minicomputers. | pishpash wrote: | And we're going wide again, as soon as we have the means to | do so. The virtualization penalty is real. | tshaddox wrote: | What 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 wrote: | I'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 wrote: | A 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...) | allturtles wrote: | I don't think there was any continuous chain of influence. | Howard Aiken[0] effectively "rediscovered" Babbage in the late | 30s and presented himself as carrying on Babbage's legacy, and | did a lot to popularize the connection between modern computing | and Babbage. | | There's a chapter on this in I. Bernard Cohen's book on | Aiken[1]. | | [0]: https://en.wikipedia.org/wiki/Howard_H._Aiken [1]: | https://www.google.com/books/edition/Howard_Aiken/Ld7TgLeQXs... | shadowofneptune wrote: | The 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_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. | svat wrote: | His "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#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/... | ), 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/deta | ils/edinburghreviewo59macauoft/page/...): already in 1834 | people were wondering why on earth Babbage and the government | don't bring this matter to a quick conclusion. | grahamm wrote: | "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 wrote: | Don't forget about Moller. | somebodynew wrote: | As 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"). | kevin_morrill wrote: | Really 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-be... | svat wrote: | Good 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. ___________________________________________________________________ (page generated 2022-02-16 23:00 UTC)