- The night sky over the planet Krikkit is the least interesting sight in the Universe. But the people of Krikkit are planning to do something about it - destroy the rest of the Universe. -- from the back cover of LifeTheUniverseAndEverything
Occasionally, it is proposed that portions of the computer science/software engineering infrastructure erected over the past 50-odd years, are so fundamentally flawed (and yet so firmly entrenched) that radical overhaul--akin to "blowing up the Universe"--is needed to solve the (alleged) problems.
Occasionally (but less frequently), such proposals come from respectable and reputable computer scientists, who aren't merely trying to sell a product or grind a favorite axe.
And occasionally (and still less frequently), they're right--or at least have a legitimate point. (Though often there may be an evolutionary
path that is less painful than the revolutionary
path they propose, yet accomplishes the same long-term good, or at least a useful subset).
A good LetsBlowUpTheUniverse
rant^H^H^H^Hproposal will generally have the following elements:
- A claim that some key element of the computing infrastructure is flawed
- That the flaws are fundamental and fatal--piecemeal improvements cannot be employed to rectify the situation, and the current situation cannot be considered acceptable by any conscientious observer.
- Moreover, the sins and flaws of the current situation can be laid upon the back of technology/product X, where X is firmly entrenched, widely used, and has been around awhile. Due to its age, X contains design decisions which may have been appropriate some number of decades ago, but which have been rendered foolish by changes in how computers are used or MooresLaw or other improvements in technology.
- Some new technology/product Y is proposed as its replacement; where Y fixes the manifest flaws of X. (It may have its own flaws, or be sufficiently new that it hasn't been tested; but those issues are swept under the rug.)
- The fact that there is no clean migration path from X to Y is irrelevant; the advantages of Y are so apparent to all and sundry that the migration should be undertaken regardless--even if new hardware and software must be procured, and existing and valuable data must be ported at great expense. Often times, support of Y is claimed to be a professional responsibility of programmers everywhere; continued use of X is claimed to be professional malpractice.
- Advantages of X are seen as irrelevant.
In many cases, the argument contains the following as well:
- Vested commercial/government interests are hindering the adoption of Y through various nefarious practices (FearUncertaintyDoubt, etc.); any defense of X is suspect.
- UniformityUberAlles is injected into the argument; suggesting that the transformation should occur all at once.
- Y is claimed to be a SilverBullet, and order-of-magnitude increases in productivity, software reliability, and/or quality of the user experience are promised. No evidence, other than a small-scale research project or prototype, is advanced to support this theory.
- Those who continue to support X (or who take a neutral posture) are luddites, incompetent, or obviously subject to undue influence or brainwashing from the aforementioned commercial/government interests.
Famous (but serious) examples, both reasonable and not. (Limit ourselves to such examples from respected and well-known practitioners; an anonymous posting to comp.lang.lisp saying "let's all use lisp" doesn't count.)
- TheThirdManifesto, to some extent. (Darwen and Date have a lot of research to back them up, understand the economics of what they propose, and don't degenerate into some of the more specious forms of this argument, so perhaps this tag is unfair--but what they propose is fairly radical stuff nonetheless.)
- JohnBackus's famous TuringAwardLecture in which he roundly trashed the suite of industrial languages popular at the time (including his own brainchild FortranLanguage), and proposed adoption of FunctionalProgrammingLanguages instead.
- JefRaskin's HumaneInterface project, which attempts to boil the UI ocean by salvaging concepts from Raskin's ill-fated CanonCat project.
- PerlSix and ParrotCode (speaking of the Perl/unix-scripting universe, not the general software engineering one)
- EricFreeman and DavidGelernter's LifeStreams
- the idea of representing all information in a computer and in communication systems as binary bits (rather than trinary values, decimal values, analog values, etc.) -- is there a better name for this than TuringMachine ?
- the idea of storing programs in the same memory space as the data -- CodeIsData, VonNeumannArchitecture. Still hasn't completely won out over the alternative HarvardArchitecture.
- the original MacIntosh completely replaced the CommandLineInterface with a GraphicalUserInterface.
- computers without floppy disk drives -- FloppyDiskZombieTechnology
- Replacing two-digit years with four-digit years (the year 2000 bug).
- Using something other than oil for all automobiles -- PeakOil
- other ZombieTechnologies
I doubt there is a significant EverythingIsa
that nobody has thought of yet. However, there are many that are under-explored.
The first LetsBlowUpTheUniverse
project that succeeds
will make this page look rather silly. It's only a matter of time. -- DavidSarahHopwood
Many LetsBlowUpTheUniverse projects have succeeded--just not at blowing up the universe. Instead, the good ideas contained therein are plucked out and integrated into the mainstream of computer science; evolution and not revolution occurs. Often times the advocate of LBUTU will complain bitterly about this--but that's what occurs.
JohnBackus' lecture has been widely influential. On one hand, industrial users still use imperative languages FTMP, but many functional ideas have crept in--see MainstreamInfluenceOfFunctionalLanguages. Xanadu probably had quite a bit of influence on the design of the web; even though TedNelson remains bitter that only a subset of his vision was ever widely adopted. Even though the DynaBook was never realized in it's original form; much of the research done nowadays permeates computing.
[The main goal of the DynaBook
, allowing end users to think better and communicate with each other better by building and sending each other simulations, has only been slightly realized a couple of times. HyperCard
s and LambdaMoo
come to mind. But the idea of PersonalDynamicMedia
has yet to be realized in any kind of large scale or pervasive manner. Many of the support technologies created for the DynaBook
have become popular (like overlapping windows and ObjectOrientedProgramming
) but the core idea still isn't really "out there".]
Usually, the difficulty in evolutionary progress (the justification for the radical approach of LBUTU) is overstated. Sometimes this is because of the LBUTU advocate's distaste for the status quo, and his desire to be rid of it--in other cases, the advocate fancies himself as a peer to the likes of AlanTuring; as someone who ought to be standing at the pinnacle of computer science.
...Getting rid of Gotos blew up the universe--of unstructured programming.
See also: DisciplineEnvy