I'm not quite convinced that is what I would call an "innovation" per se, that is not quite how I think of the word; accepting that though, it is clearly a good choice.
Here's my take: without the theory of computation, there wouldn't be a web, nor would there be many of the other innovations on the list (e.g., CT scans).
Most important British innovation, heck, a case can be made that it is the single most important human innovation ever made. It hugely impacted everything from the purest of mathematics to the most mundane of modern practical concerns. As always, he stood on the shoulder of giants, of course, but he saw further.
Don't agree here. You have to set a category, unless you are claiming that the Turing Universal Machine is a greater invention than the transistor, or penicillin or the wheel or fire or writing etc etc.
I'd say it is more important than all of those, save writing. Both writing and the idea of mechanical computation represent fundamental leaps in human development. They change what we are, not just the comfort in which we live.
Right. Penicillin was important, but there are other antibiotics. The transistor was also important, but there are alternatives that might have been used (e.g. techniques based on optics). The theory of computation is absolutely fundamental.
Charles Babbage had a working computer long before Turin. If he could have implemented it in transistors or even valves rather than mechanical relays how much further would we have been today?
The way I see it, you don't need to understand the theory of computation to solve probably any problem that is solvable via computation. Given, it would be potentially far less efficient but not fundamental.
Without the common mathematical language necessary to reason and talk about computation in the general case, and Babbage-linage programmers would have been at a severe disadvantage. The fact that general purpose computers only got a resurgence decades later, well after the period of time that the hardware and resources would have supported the construction of a general purpose computer, demonstrates the necessity of the concept.
Could Babbage have created the analytical machine without the theory of computation? Sure. And Hero of Alexandria built a steam engine. Sometimes, the mere ability to create a device is not sufficient. You need the ability to step back and realize the profound nature of what you have just done, and the ability to create a language with which to communicate this realization to the world. Babbage and Ada only managed but a fraction of that, and I do not believe that completing a physical prototype was some sort of last missing piece in the puzzle.
If you want someone other than Turing to point the finger at, then Claude Shannon is next in line waaay before Babbage.
(also, it is not my understanding that the analytical engine was to be an electromechanical relay machine. do you have a source for that?)
Without the common mathematical language necessary to reason and talk about computation in the general case, and Babbage-linage programmers would have been at a severe disadvantage.
Not sure about that.
The Analytical Engine was capable of arithmetics and conditional branching. Code and input data were to be read from punched cards.
Such machine was quite practical and if Babbage managed to build it, it would immediately get used for some number crunching - scientists and businesses would love a calculator which can autonomously eat streams of data and perform boring computations on them.
Babbage and Lovelace were aware that AE can be used to process numerically encoded non-numeric data, so it would also find uses in text processing. Sooner or later somebody would invent Fortran and COBOL (after all, early compilers were pretty much string rewriters) and we would be headed to land in same place we actually did.
Only CS PhDs would waste their time on attempts to algorithmically solve the halting problem instead of "wasting" it on the P=NP debate.
The machine would have been capable (it would have been Turing complete after all) and they had some ideas of what it could be used for, but I think you are forgetting that you are standing on the shoulders of giants. Those hypothetical programmers would have lacked any common mathematical language with which to talk about computation and thus, lacked an abstract model of computation entirely. They would have been able to program particular machines to some degree but, unless someone was spurred on to replicate the work that Church/Turing/etc decades earlier (in fact, their work would undoubtedly be pre-performed out of necessity), they would lack a solid abstract model of what computation is and what is necessary for it. Until that theoretical work would be done, all of those programmers would just be taking wild stabs in the dark with ad hoc methods and superstition spawning intuition. Engineers without Newtonian physics, no common language beyond punchcards and common english. They could build great bridges sure, but lacking any semblance of a formal notion of computation they would be crippled compared to what they could be. They would be at a distinct disadvantage.
Hell, half the reason they couldn't build the thing is because they lacked the theoretical background that would have put it within their grasp. With no switching theory, without the insight of Shannon, the machine was to be an unwieldy system of gears. It is hard for the modern mind to fully internalize just how much framework they were lacking.
The extent to which the standard HN "formal CS educations are worthless" battle cry is true is only the extent to which we benefit from those who came before us.
UTM is a dumb and completely impractical model of computation. Thanks to its simplicity it is a handy tool in (un)decidability proofs and some very general computational complexity reasonings.
And that's all. Numeric computations happened on real machines. Graph processing happened on real machines. Text processing happened on real machines. Structured programming, procedures, programming languages, compilers - all happened on real computers.
Using (or even thinking about using) the UTM for any practical application would be a huge PITA and nobody ever does it. We only know that it's "possible" and hence if we want to prove something general about all possible computation, it suffices to do some magic with the UTM.
I don't think you are getting it. In Babbage's time they were not merely missing the UTM. They were missing damn near all of mathematical logic (even set theory only really came about around the time that Babbage died) and meta-mathematics was incredibly immature at the time. Forget answering questions about CS; they could not yet ask the questions.
They could have pulled some impressive stuff off I am sure, but it would have all been intuition and stabbing in the dark. The tools necessary to structurally reason about algorithms had not yet been created, nor even the tools necessary to create those tools...
Ada had the notion that the Analytical Engine was something special, something more than just a calculator... but that was conjecture based on genius insight. To actually discuss that idea in a rigorous manner would require several more decades of advances in mathematics.
Could they have programmed? Yes, obviously. That's not even hypothetical, since they did. Would they have been at a distinct disadvantage? Without anything reasonably resembling modern mathematics, absolutely.
You don't need logic, set theory, Turing machines or any meta-mathematics to build practical software.
When I was ten, I had no idea about any of this stuff and yet when somebody showed me how to do arithmetic, variable assignments, comparisons and goto in QBasic (pretty much equivalent of Babbage's machine) I was able to write a simple drawing program and tic-tac-toe which checked whether one of the players won.
Add some IO and I would write a program which reads series of transactions and computes your bank account balance. Tell me what a matrix is and I would implement LAPACK for you.
You absolutely need those things for a great deal of modern programming. All modern programming? No, but a great deal.
Without that they would have been at a disadvantage. I don't see what is so hard about this concept to you.
Regardless, the simple historic fact remains that Babbage and Ada were both unable to build the machine, and unable to verify their suspicion that the machine was special, and unable to effectively communicate to their peers this suspicion. The prerequisite math for all three of these tasks did not yet exist.
Babbage's "computer" was not. Turing's innovation wasn't a device that could perform one or two computations - it was the idea of a device that could be /programmed/ to perform any conceivable computation (resource limits not withstanding).
The Analytical Machine, which was never created, was to be programmable. Frankly though Babbage, and even Ada who wrote programs for it, lacked the framework necessary to truly realize and communicate the profound nature of the machine.
The curious thing (when compared to the other things that were being voted for) is that the Universal Turing Machine is an _idea_ and not a device in any practical sense. It's probably lost on most people that Turing never intended his machine to be built, it was entirely thought up to answer a question in mathematical logic.
Nor could one ever be built, since Turing Machines have features like infinite tape memories, which would be rather difficult to manufacture.
One could argue that Turing's contributions to cryptanalysis (e.g., breaking the German Enigma cipher) might have had an even greater effect on the world: in the grand scheme of things, defeating Nazi Germany was probably more important than paving the way for computers and the internet.
infinite, but bounded by some function of the input, so all you need to do is keep supplying it with extra tape. there we go, from impossible to merely insurmountable :D
It looks like a poll hijacked by Mini and steam train enthusiast groups. The Mini and Mallard were nice pieces of engineering, but you'd have to be a pretty hardcore fan to place them on a pedestal above the jet engine or medicinal use of penicillin or decoding DNA (or even relatively mundane things like radar and ultrasound) as significant examples of innovation.
I would have to reluctantly grant this point. ;) Although they did make a fairly good case that the MINI did contain some innovations which were significant at least within the auto industry. (Disclaimer: I sure do like my MINI.)
I think Tim Berners-Lee should have ranked higher, too, btw.
28 comments
[ 2.7 ms ] story [ 66.0 ms ] threadThe way I see it, you don't need to understand the theory of computation to solve probably any problem that is solvable via computation. Given, it would be potentially far less efficient but not fundamental.
Could Babbage have created the analytical machine without the theory of computation? Sure. And Hero of Alexandria built a steam engine. Sometimes, the mere ability to create a device is not sufficient. You need the ability to step back and realize the profound nature of what you have just done, and the ability to create a language with which to communicate this realization to the world. Babbage and Ada only managed but a fraction of that, and I do not believe that completing a physical prototype was some sort of last missing piece in the puzzle.
If you want someone other than Turing to point the finger at, then Claude Shannon is next in line waaay before Babbage.
(also, it is not my understanding that the analytical engine was to be an electromechanical relay machine. do you have a source for that?)
Not sure about that.
The Analytical Engine was capable of arithmetics and conditional branching. Code and input data were to be read from punched cards.
Such machine was quite practical and if Babbage managed to build it, it would immediately get used for some number crunching - scientists and businesses would love a calculator which can autonomously eat streams of data and perform boring computations on them.
Babbage and Lovelace were aware that AE can be used to process numerically encoded non-numeric data, so it would also find uses in text processing. Sooner or later somebody would invent Fortran and COBOL (after all, early compilers were pretty much string rewriters) and we would be headed to land in same place we actually did.
Only CS PhDs would waste their time on attempts to algorithmically solve the halting problem instead of "wasting" it on the P=NP debate.
Hell, half the reason they couldn't build the thing is because they lacked the theoretical background that would have put it within their grasp. With no switching theory, without the insight of Shannon, the machine was to be an unwieldy system of gears. It is hard for the modern mind to fully internalize just how much framework they were lacking.
The extent to which the standard HN "formal CS educations are worthless" battle cry is true is only the extent to which we benefit from those who came before us.
UTM is a dumb and completely impractical model of computation. Thanks to its simplicity it is a handy tool in (un)decidability proofs and some very general computational complexity reasonings.
And that's all. Numeric computations happened on real machines. Graph processing happened on real machines. Text processing happened on real machines. Structured programming, procedures, programming languages, compilers - all happened on real computers.
Using (or even thinking about using) the UTM for any practical application would be a huge PITA and nobody ever does it. We only know that it's "possible" and hence if we want to prove something general about all possible computation, it suffices to do some magic with the UTM.
They could have pulled some impressive stuff off I am sure, but it would have all been intuition and stabbing in the dark. The tools necessary to structurally reason about algorithms had not yet been created, nor even the tools necessary to create those tools...
Ada had the notion that the Analytical Engine was something special, something more than just a calculator... but that was conjecture based on genius insight. To actually discuss that idea in a rigorous manner would require several more decades of advances in mathematics.
Could they have programmed? Yes, obviously. That's not even hypothetical, since they did. Would they have been at a distinct disadvantage? Without anything reasonably resembling modern mathematics, absolutely.
When I was ten, I had no idea about any of this stuff and yet when somebody showed me how to do arithmetic, variable assignments, comparisons and goto in QBasic (pretty much equivalent of Babbage's machine) I was able to write a simple drawing program and tic-tac-toe which checked whether one of the players won.
Add some IO and I would write a program which reads series of transactions and computes your bank account balance. Tell me what a matrix is and I would implement LAPACK for you.
Without that they would have been at a disadvantage. I don't see what is so hard about this concept to you.
Regardless, the simple historic fact remains that Babbage and Ada were both unable to build the machine, and unable to verify their suspicion that the machine was special, and unable to effectively communicate to their peers this suspicion. The prerequisite math for all three of these tasks did not yet exist.
One could argue that Turing's contributions to cryptanalysis (e.g., breaking the German Enigma cipher) might have had an even greater effect on the world: in the grand scheme of things, defeating Nazi Germany was probably more important than paving the way for computers and the internet.
http://www.topbritishinnovations.org/PastInnovations/BMCMini...
I think Tim Berners-Lee should have ranked higher, too, btw.