[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)