News for hackers. Stuff that matters.
Re:It's often said that the Analytical Engine was before its... by ummwhat on Wednesday February 16, 2022 @03:11PM (#30365066)
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.
Re:It's often said that the Analytical Engine was before its... by wmf on Wednesday February 16, 2022 @03:43PM (#30365424)
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.

Re:It's often said that the Analytical Engine was before its... by phire on Wednesday February 16, 2022 @06:42PM (#30367447)
The reason why many 8 bit micros were derided as toys was not because of the 8bit cpu. 8bit cpus were well-respected.

It was because of the crippling lack of ram and other cost-saving measures.

Having 1KB of ram (or less) on a single board computer like the KIM-1 wasn't an issue, because they were programmed in machine-code and didn't need to drive a screen.

But 1KB of ram on a low-cost microcomputer like the ZX80 was beyond painful. It takes 768 bytes for a full screen buffer, leaving just 384 bytes for the BASIC program, all it's variables and the interpreter state. And it took all the CPU time to drive the display. Actually running the program or even pressing a key would cause the screen to blank and desync.

Even on better micros that had ~4KB of ram, the scope of the BASIC program you could write was pretty limited.

Re:It's often said that the Analytical Engine was before its... by zozbot234 on Wednesday February 16, 2022 @06:32PM (#30367343)
8 bit computers were basically glorified calculators that could double as video game systems and perhaps BBS terminals. Even data storage was very much an afterthought on those machines until well after floppy disks entered common use. Then again, as late as the 1960s a programmable desk calculator could be quite valuable for plenty of serious uses.
Re:It's often said that the Analytical Engine was before its... by pishpash on Wednesday February 16, 2022 @04:23PM (#30365884)
And we're going wide again, as soon as we have the means to do so. The virtualization penalty is real.
Re:It's often said that the Analytical Engine was before its... by a_shovel on Wednesday February 16, 2022 @03:35PM (#30365328)
> 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.

Re:It's often said that the Analytical Engine was before its... by Animats on Wednesday February 16, 2022 @04:41PM (#30366124)
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.

Re:It's often said that the Analytical Engine was before its... by fanf2 on Wednesday February 16, 2022 @05:05PM (#30366410)
“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/

Re:It's often said that the Analytical Engine was before its... by jgrahamc on Wednesday February 16, 2022 @05:33PM (#30366743)
Re:It's often said that the Analytical Engine was before its... by ahazred8ta on Wednesday February 16, 2022 @05:55PM (#30366999)
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...

Re:It's often said that the Analytical Engine was before its... by gknoy on Wednesday February 16, 2022 @06:10PM (#30367135)
I'm so glad you mentioned Padua's art and book. Her book ("The Thrilling Adventures of Lovelace and Babbage") was just a joy to read. The footnotes are magnificent, and span multiple pages, and it was just altogether entertaining as heck. The artwork is great as well. :)
Re:It's often said that the Analytical Engine was before its... by codeflo on Wednesday February 16, 2022 @05:04PM (#30366404)
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.)
Re:It's often said that the Analytical Engine was before its... by Animats on Wednesday February 16, 2022 @05:41PM (#30366842)
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...

Re:It's often said that the Analytical Engine was before its... by codeflo on Wednesday February 16, 2022 @06:44PM (#30367464)
That sounds like the fixed point representation is part of what causes the huge memory requirements. It's fascinating how obvious some ideas are in retrospect. Floating point is basically just scientific notation, which was well known AFAIK. But I can imagine that it's hard to make the transfer to use that as the representation for all calculations.
Re:It's often said that the Analytical Engine was before its... by djmips on Thursday February 17, 2022 @07:16AM (#30372264)
I don't think it's hard. As a kid, I didn't know about floating point but derived it on my own. It seemed logical to just add another number that represented where the binary point was. I'm sure Babagge would have got there if his iteration time wasn't so slow. He really should have made a small general purpose computer as simple as possible just to experiment with.
Re:It's often said that the Analytical Engine was before its... by Animats on Friday February 18, 2022 @02:34PM (#30390095)
Babbage's work pre-dated mass production. Today, production people look at something like that, and ask "how many different parts"? Because banging out a lot of the same part has been a routine job for the last century. Babbage was too early for that. Parts required much hand work and craftsmanship. Metal part manufacturing did not scale yet. It was possible to build Babbage's parts using clockmaking techniques, but it would have required a lot of clockmakers. Ely Terry had a mass production clock business in the US by 1804, but the gears were wooden. Apprentices made rough clock wheels, and better workers finished them more precisely with hand tools. Precision stamping was still in the future, awaiting the widespread ability of steel in the 1880s.

The Ingersoll dollar watch (1896), "The Watch that made the Dollar Famous", was probably the first high-volume mass produced product with part complexity and precision comparable to what Babbage needed. A few years later, the Computing-Tabulating-Recording company, the predecessor of IBM, was manufacturing the first commercial electromechanical computing devices in quantity. After that, there was steady progress.

Those were the days when New England was to the world what Guangdong is now.

Re:It's often said that the Analytical Engine was before its... by fentonc on Wednesday February 16, 2022 @09:42PM (#30368945)
I believe his plans did include a general shift function - what he referred to as “stepping” up/down was just shifting by a digit
Re:It's often said that the Analytical Engine was before its... by Animats on Wednesday February 16, 2022 @10:25PM (#30369202)
Right. There's some question as to whether that was seen as a scaling operation or just as part of multiply or divide.[1]

If you can scale into a reasonable range for each data type, you don't need 50 digits. But that's an abstraction which came decades after Babbage.

[1] https://www.fourmilab.ch/babbage/cards.html

Re:It's often said that the Analytical Engine was before its... by User23 on Wednesday February 16, 2022 @08:03PM (#30368277)
As I’m sure you know, the lack of reliability of computing machines persisted well into the 20th century.
Re:It's often said that the Analytical Engine was before its... by pishpash on Wednesday February 16, 2022 @04:13PM (#30365761)
That's extra complexity kind of like adding frequency throttling or sleep mode.
Re:It's often said that the Analytical Engine was before its... by nitwit005 on Thursday February 17, 2022 @02:04AM (#30370312)
> Anything less than 40 and you could more economically pay someone to calculate directly.

Hiring someone to do the math would defeat the point. The idea was to eliminate human error when doing something like printing tables of common functions like sines or cosines.

A lot of effort went into designing a printer, as they couldn't have humans recording the results without re-introducing human error.

Re:It's often said that the Analytical Engine was before its... by monocasa on Wednesday February 16, 2022 @05:14PM (#30366529)
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.