19 ms·
OP here. The number and variety of special-purpose computing devices that existed before general purpose computers is astounding. The surprising (to me) conclus
by randomwalker 8y ago
OP here. The number and variety of special-purpose computing devices that existed before general purpose computers is astounding. The surprising (to me) conclusion is that the main impediment to the development of computers wasn't technology. After all, Babbage's machine could have been built in his time if funding hadn't run out.
Rather, the limitation was that people didn't have the abstractions, vocabulary, and mental tools to properly conceive of general purpose computers as a concept and to understand their usefulness. They couldn't see that devices as seemingly disparate as tide prediction machines[1], census tabulation machines, and loom controllers were all instances of a single, terrifyingly general idea.
From what I can tell, Babbage mostly understood this, but it was Ada Lovelace who grasped it fully. But her writings weren't understood in her time and had to be "rediscovered" a century later. For example, she wrote [2]:
Supposing, for instance, that the fundamental relations of pitched sounds in the science of harmony and of musical composition were susceptible of such expression and adaptations, the engine might compose elaborate and scientific pieces of music of any degree of complexity or extent.
This leads me to wonder: what abstractions are we missing today that will be obvious to future generations?
BTW I have a follow-up thread on the optical telegraph, a form of networking that long predates the Internet. [3] My long-term goal is to teach a course on computing/networking/information processing before computers, with a view to extracting lessons that are still applicable today.
[1] https://en.wikipedia.org/wiki/Tide-predicting_machine https://en.wikipedia.org/wiki/Tide-predicting_machine
[2] https://googleblog.blogspot.com/2012/12/honouring-computings-1843-visionary.html https://googleblog.blogspot.com/2012/12/honouring-computings...
[3] https://twitter.com/random_walker/status/1037031465735860224 https://twitter.com/random_walker/status/1037031465735860224
- garmaine 8y ago> After all, Babbage's machine could have been built in his time if funding hadn't run out. Funding ran out in large part because of cost overruns due to the fact that the technology of the time wasn’t capable of building the analytic engine design.
- irrational 8y agoThis was my understanding as well. The tight machining tolerances required simply didn't exist in his time.
- ddingus 8y agoGiven resources, they could potentially have made a machine to machine. The ability was potentially there, but the need perhaps was not. It would have required a generation dedicated to that one task.
- frostburg 8y agoIt was likely possible with a lot of effort and extensive hand-fitting, just not economically at scale.
- randomwalker 8y agoThat's possible, but an alternative explanation for the cost overruns that I've read is that Babbage had terrible project management skills. Wikipedia has this to say: In 1991, the London Science Museum built a complete and working specimen of Babbage's Difference Engine No. 2, a design that incorporated refinements Babbage discovered during the development of the Analytical Engine. This machine was built using materials and engineering tolerances that would have been available to Babbage, quelling the suggestion that Babbage's designs could not have been produced using the manufacturing technology of his time. https://en.wikipedia.org/wiki/Analytical_Engine https://en.wikipedia.org/wiki/Analytical_Engine
- chubot 8y agoI just finished reading The Difference Engine yesterday, an entire book about this project, by the project lead! https://www.amazon.com/Difference-Engine-Charles-Babbage-Computer/dp/0142001449 https://www.amazon.com/Difference-Engine-Charles-Babbage-Com... (unfortunately overshadowed in Google Search results by a William Gibson book of the same name) It gives a lot of color on Babbage, but yes the conclusion was that Babbage design basically worked, and could have been built. There were errors in his drawings that they had to correct, but nothing fundamental. The group at the Science Museum spent over 6 years doing this! This is the group that holds most of his papers, drafts, and unfinished machines. Although there are a couple things I want to follow up on. They weren't that specific about what computation they did. And does it still work today? It was extraordinarily finicky. It produced a lot of bit errors, as did mechanical computing devices that came later, which sort of defeated the purpose (it was supposed to calculate tables of logarithms and such with higher accuracy than humans.)
- ddingus 8y agoGiven the great perspective you put here, Ada was truly amazing. I have a bit more appreciation for her insight at such an early time. How frustrating! She could see it, but too early. A bit like maybe Tesla, others in times just before things really opened up.
- Aardwolf 8y ago> what abstractions are we missing today that will be obvious to future generations? For one, both quantum computing and general relativity have some concepts that are extremely hard to grasp by the mind imho
- bluedino 8y agoI would throw 'real' AI in there as well
- krick 8y agoThis is really great stuff you are collecting. Would be awesome to read it in a more organized manner than a twitter posts: twitter really isn't so great for organizing knowledge. Don't you keep a blog or something? Maybe considering? By the way, I remember you by your course on coursera, it was great. Thank you a lot for that.
- randomwalker 8y agoThanks! The main reason I'm using Twitter for this is that it's a bit too preliminary for a blog post. I don't yet have as good an understanding of the history as I would like. This way, when I discover new stuff, I can simply add at a tweet to the thread. But TBH I think Twitter is underrated as a publishing medium. For example, I've had probably 10x the number of responses from other people as I would have gotten in the form of blog comments. In any case, I'm definitely planning to make this more organized once I'm happy with my level of understanding. At least a series of blog posts; probably a paper and/or online lecture.
- ckastner 8y ago> But TBH I think Twitter is underrated as a publishing medium. For example, I've had probably 10x the number of responses from other people as I would have gotten in the form of blog comments. What was your impression of the quality of those comments, compared to the ones you get on blog comments?
- themodelplumber 8y ago> What abstractions are we missing today that will be obvious to future generations? The first that comes to mind is rooted in the problem that our concept of "tech" is still incredibly mechanistic. Look at Foucault's "technologies of the self" and you realize that technology is not just something we create in teams at work using this or that set of tools. Rather than a "thing" outside of us, tech is very much already a part of us. We are compelled to develop it (externalize it; give it objective manifestation) simply by living. A computer is us, but even the word computer is no longer sufficient; people needlessly mechanize humans when they think in those terms and this creates fear, fear of AI and fear of becoming mere batteries; meanwhile our fault-protection circuits have already accounted for this and we can trust them (while leaving them engaged). We must zoom even farther out from the typical computer model in order to compute at the next level. "Tech" as an industry (in hindsight to be found a ridiculous and temporary construction) has turned too far inward. In fact there is nothing to fear outside, even in the foreign-to-tech irrational world. We can accept that world, live in it, give it the respect it seems now to unfairly demand, and learn it as a technological mode. We can bridge with it, build more technologies to abstract our relationship with it. At that point we become truly powerful, able to spin technology out of limitless resources and into limitless solutions.
- Terr_ 8y agoRegarding externalized systems, a relevant quote from the classic computer game Deus Ex (2000): > Helios: The checks and balances of democratic governments were invented because human beings themselves realized how unfit they were to govern themselves. They needed a system, yes, an industrial-age machine. > JC Denton: Human beings may not be perfect, but a computer program with language synthesis is hardly the answer to the world's problems. > Helios: Without computing machines, they had to arrange themselves in crude structures that formalized decision-making - a highly imperfect, unstable solution.
- themodelplumber 8y agoO'Neill likewise skewers the human-condition-social-upgrade-solution (referring to various -isms like Socialism) in his futurism work, _2081_. IMO it's the bipolar casting of the thought process there that is "wrong" if anything is. We are gradually becoming capable of merging and finessing subject and object using various technologies (I count therapeutic-environment-building and institutional life-examination-encouragement as examples of those technologies, but wouldn't exclude something more mechanistic than those) to where the question of "did a computing machine help or was it old fashioned social structuring" will seem pretty uneducated if it doesn't already.
- btilly 8y agoNear the end of your proposed course, I would heartily recommend including https://www.theatlantic.com/magazine/archive/1945/07/as-we-may-think/303881/ https://www.theatlantic.com/magazine/archive/1945/07/as-we-m.... It was the 1945 paper that introduced the ideas behind both hypertext and the science citation index. The two ideas famously got recombined some decades later by Google's PageRank algorithm. Now reading that article, one might wonder how someone could have such a solid grasp of how computing and people could work together in practice when the transistor had not yet been invented, and stored program computers were first described only a month earlier. The reason is that Vanevar Bush had been building and working with computers for close to 20 years!
- dekhn 8y agoIf you haven't seen it, physicists used physical lenses to compute fourier transforms before computers. Also, although I didn't read closely enough, I think "collation" or "partitioning" is the right term for sorting things and then placing them into buckets. Sorting is just ordering, not partitioning.
- stan_rogers 8y agoThere were also things like Michelson's harmonic analyzer: https://www.asme.org/engineering-topics/articles/technology-and-society/return-of-the-harmonic-analyzer https://www.asme.org/engineering-topics/articles/technology-...
- gowld 8y agoThe question is why you believe that "sorting" is "ordering"? Dictionaries show that "sorting" meand "ordering" in computing, but means "classifying" or "organizing" in all other contexts. Putting documents in order is "filing", from the French word meaning "string", as in attaching things in a string to put them in order in a line. As an example, pre-computer card catalogs are "filed", not "sorted": https://libguides.ala.org/filing-rules https://libguides.ala.org/filing-rules
- TheSpiceIsLife 8y agoBecause the dictionary is wrong. Dictionaries are not authoritative sources for word definitions. Rather they are, and can only be, historical references. Words mean what people use them to mean. “Sort these pages” with no other instructions will almost always mean, to the average person in a general context, put the pages in ascending order using the most obvious sequence present. “File these documents” will generally mean put these pages in their relevant folders, either in a filing cabinet or computer storage. Well, that’s their common usage outside of computer specific applicant ions here in Australia. YMMV
- TeMPOraL 8y agoAt this point my mind is blown. English is my second language, and to this moment, I've always believed "filing" is just "putting somewhere in the right cabinet".
- joe_the_user 8y agoRather, the limitation was that people didn't have the abstractions, vocabulary, and mental tools to properly conceive of general purpose computers as a concept and to understand their usefulness. Maybe that was it or maybe society had not achieved a scale and a regularity where a more primitive and expension version of a programmable computer would have been useful (ie, where the cost-benefit exchange was obvious). I'd note that computers effectively came into use during WWII, where there was immense pressure to optimize the large-scale organizational activity as well as large scale industrial processes (the Manhattan Project esp).
- philwelch 8y agoThere was also an era of “human computers”, and when someone ultimately decided to automate their jobs away, people gradually realized that a computer could do things we never thought of as computation before, and that information could be encoded as numbers, and a lot of wild things like that. One thing I learned in college was a means of encoding a secret: n people all learn a separate point on the curve and the degree of the polynomial for the curve, and you encode the secret as the Y-intercept. That way any k of n of those people (depending on the degree of the polynomial) can recover the secret. I thought, that’s not so hard, and I asked why this wasn’t discovered centuries ago. It’s because encoding arbitrary information as a number is an idea that never occurred to anyone before computers, aside from things like bible codes and numerology that are usually lossy anyway. But you can do this with a pad and paper if you wanted.
- bradleyjg 8y agoThat’s Shamir’s secret sharing algorithm. Very clever, yet easy to understand. The one caveat is that it should be done over a finite field.
- EGreg 8y agoWho was the guy who patiently explained IN THE 70S to an interviewer why general purpose computers would be needed? I remember hearing the interview and the guy genuinely couldn’t fathom why they’d be needed to replace regular libraries and so on.
- commandlinefan 8y ago> what abstractions are we missing today that will be obvious to future generations? And how many people have already recognized them, only to have been ignored because they're working at too high a level for their listeners to appreciate?
- deleted 8y ago[deleted]
- riazrizvi 8y agoFeyerabend explores the difficult process of scientific progress in the classic Against Method. He describes how society finds it difficult to develop new scientific theories to better explain new evidence because of our confirmation bias to conventional theory. For example the earth was once understood to be at the center of the solar system, when telescopes could better observe planetary behavior it first lead simply to more precise epicycles. In the book he points out that one way we tend to break through this hold on how we frame evidence, is by considering metaphors from the Arts. For example, religious writings helped inform the works of Copernicus and Newton. So to generally answer your question, I think some insights will come to us from the Arts, like science fiction books/movies/games. For example, the show Black Mirror provides some ideas that we may at some point take for granted.
- c3534l 8y ago> Babbage's machine could have been built in his time if funding hadn't run out. And if it hadn't, so what? The world would not have changed, we'd just have an absurdly impactical computer which no one had a use for. Had it been useful enough to keep making them and improving them, we'd have developed the abstractions.
- wolco 8y agoWe are missing thought to action devices. We have voice action devices.
- TheSpiceIsLife 8y agoI don’t follow. When you have to build a device pretty much by hand, why bother building a general purpose machine? And here we are, 181 years after Babbage first described his Analytic Engine and Aplication Specific Integrated Circuits and Graphics Processing Units are all the rage.
- TeMPOraL 8y ago> When you have to build a device pretty much by hand, why bother building a general purpose machine? Because you'd conquer many industries with it simultaneously. Instant path to richness. > And here we are, 181 years after Babbage first described his Analytic Engine and Aplication Specific Integrated Circuits and Graphics Processing Units are all the rage. It's a different thing. We usually first figure a description of a computation - one that could be run on a general-purpose machine - and then turn it into ASIC to make it more efficient, by performing only the work necessary for that one particular calculation. Back in Babbage's times, they didn't have a coherent notion of computation yet.
- TheSpiceIsLife 8y ago> Because you'd conquer many industries with it simultaneously. Instant path to richness. I just mean to say, from my limited knowledge, the available applications were all (mostly?) bespoke anyways, so the inputs and outputs probably needed to be also. So perhaps a modular mechanical general purpose computer may have helped. > It's a different thing. Yes, you've made a good point, I agree. Perhaps, then, if you were to build a general purpose mechanical computer ~180 years ago you might use it for whatever application is required, observe it's most commonly used computational paths, then swap it out for an application specific computer. of (possibly?) reduced complexity. You can then take your whizz-bang-high-tech-expensive computer to the next client, rinse and repeat. Maybe.
- TeMPOraL 8y ago> So perhaps a modular mechanical general purpose computer may have helped. That's what I was imagining when writing that comment. And I suppose experience turning computation into work in one industry would let you design bespoke endpoints for another faster.
- smallnamespace 8y ago> what abstractions are we missing today that will be obvious to future generations? I think we're missing a science of meaning, and (closely related) trust. We have a science of raw data and bits (basic thermodynamics into information theory), a science of sending streams of bits (information theory), and provide rigorous numerical bounds for e.g. if you know the medium, how quickly one can signal. We don't have a predictive, numerical theory of meaning, which is how interpretations of data or information cohere to the real world and how those meanings can be trusted and transmitted from one another in a robust way. We're seeing the failure of meaning all around us today as we're drowned by real data and fake data and noise, as competing voices and groups spread selfish memes and narratives that ultimately obscure truth. We're seeing the failure of meaning as our overcompetition in academia spawns a raft of fake or non-replicable studies and p-hacking, threatening to drown the signal with noise. Anyway, there are hints of a 'science of meaning' in different fields: Graphical statistical models hint at how causality can be inferred from downstream facts, game theory tells us some (very limited) conditions under which selfish players can learn to trust one another, evolutionary theory tells us how groups can learn to cooperate and share models of the world. But none of these provide predictive and quantitative bounds, so as of yet, meaning is an art left for cultural leaders and manipulated by advertisers and politicians, and not yet a science.
- TheOtherHobbes 8y agoA lot of the cultural and political issues that surround digital technology appear because there's a predisposition to consider all bits equally valuable and useful. Another word for meaning could be quality. Socially and culturally, not all information is of equivalent quality and value. In fact we use the profit motive and political power as metrics of quality, and in practice they're turning out to be a bad way to maximise long-term social value.
- deleted 8y ago[deleted]
- Animats 8y agoNo, that's a misreading of computing history. The big problem, all the way into the early 1970s, was storage, not compute power. Leibniz built the first mechanical multiplier in 1694. But significant amounts of storage (kilobytes) didn't become available until the 1950s, and memory was still a million dollars a megabyte in the early 1970s. Read the history of the IBM 400 and 600 series, the business line from IBM. First machines that could add and count, then print, then multiply, then divide, and then a long struggle to get some memory. Machines had a few memory locations, then tens of memory locations, then a hundred or so. The people involved knew they could do more if they could store more info. It wasn't a conceptual problem. Finally they got to the IBM 650, with drum memory, the first business machine we'd recognize today as a computer. Knuth learned on one of those. Read "IBM's Early Computers", von Neumann's report on the EDVAC, learn what Zuse and Atanasoff did, find an Analytical Engine simulator and learn what the machine could do, and read up on the history of punched card and tote machines.
- icc97 8y agoRegardless of whether your correct or not, this is still a disrespectful comment. Nevertheless, he's referring to Ada Lovelace's comments from 1843 and saying they weren't understood for ~100 years i.e. 1940s. That pre-dates most of what you're talking about. In the twitter thread the OP clearly has read up on the history of punched cards and the history of IBM machines.
- fragmede 8y agoIn case downvotes on the above confuse others, the comment Animats made is disrespectful but they are not some random Internet commentor, and in Jobsian fashion, disrespect is cool so long as you can back it up (and John Nagle can back it up).
- hycaria 8y agoWell I didn't read it as disrespectful, and that's my explanation of the downvotes (which doesn't have any value and that I only offer as a counterpoint here). I have no idea who that poster is, I don't care, and that shouldn't be a factor when considering rudeness tbh. As long as you can back up your reasonable claims and don't attack the person behind the keyboard, what's disrespectful ? Or is arguing considered rude now ?
- wiz21c 8y ago>> This leads me to wonder: what abstractions are we missing today that will be obvious to future generations? That's a very nice question. But I tend to see it like this : if you'd know, it'd mean that somehow you predicted the future. I'd say that abstractions are built everytime but only the good ones survive. So the only way to answer your question is to wait 50 years. Then we'll know what are those missing abstractions. But the simple act of asking the question already opens the way to a critic of current abstractions, which will lead to new ones and maybe, one of the future :-) Are there public places where such things are discussed ? I mean, places where you don't need to be inside a university to actually participate.
- Joeri 8y agoThis leads me to wonder: what abstractions are we missing today that will be obvious to future generations? Assuming that at some point we will stop writing code and machines will generate programs for us instead, then we need abstractions that make this possible: a way to describe the purpose of a program that is precise enough to generate code satisfying the purpose and that can be derived from normal human communication instead of having to be explicitly coded. In other words: a way of describing why the program exists, instead of describing what it should do. Additionally, to avoid paperclip maximizers we would need a system of ethics and values robust enough that it becomes computable. Then it can be integrated into the code-writing code in such a way as to constrain the code it generates to only choose approaches that are in line with the value system, and to refuse to implement purposes at odds with the value system. As long as our best stab at ethics largely boils down to long lists of behavioral rules written in holy books with few underlying principles we aren't ready to build truly advanced AI. Probably some philosopher has already figured out the right model of abstract ethics, but has gone mostly undiscovered so far.
- blattimwind 8y ago> Assuming that at some point we will stop writing code and machines will generate programs for us instead, then we need abstractions that make this possible: a way to describe the purpose of a program that is precise enough to generate code satisfying the purpose The industry-standard term for a specification precise enough to enable building a program from it is "code"