The Most Important Software Innovations (2001-2017)
dwheeler.com
dwheeler.com
Clearly there are other things that need to be put on that list. One challenge I had was finding clear citations to the very first example. It is often very hard to find where some idea comes from. In addition, sometimes there is no one single place, because there's this gradual improvement.
Also, just in passing, I'm tempted to note that afaik few fonts are generated automatically, and vast majority are still done by hand―partly, I think, because computers aren't trusted to do the right thing for different sizes and widths, but likely primarily because font authors don't seem to be inclined to learn all the necessary mathematical parameters (of which Knuth's Metafont has ~60). There are some automatic features in font renderers, but that's far from full generation of a font.
If not compression, certainly coding theory in general, which is so all-pervasive now, people forget it exists.
Basically it said that von Neumann was reporting the work of others in "draft", and he didn't include the people who actually did the work as authors because it was a draft. In other words, it was prematurely circulated without proper attribution.
Ironically, I don't remember their names. It may have been Eckert and Mauchly as you list on your page. If anyone wants to know more, e-mail me (address in profile) I will look it up.
There was also a patent dispute between von Neumann and the other party, IIRC, and that is why there is no patent.
So basically the "von Neumann machine" is probably not a great name. You don't call it that in your page, which is good, but that's how I always thought of the stored program! I believe I was taught that in computer architecture class in college.
----
EDIT: Yes now that I googled, the way the Dream Machine portrayed it, Eckert and Mauchly had a stronger claim to inventing the stored program than is portrayed on your page.
You did say von Neumann "described" the stored program rather than invented it, and that's the issue that is discussed at some length in the book. Some snippets here:
https://books.google.com/books?id=7HpQAAAAMAAJ&dq=dream+mach...
Apparently there was a whole team of people participating in the design:
> some on the EDVAC design team contended that the stored-program concept had evolved out of meetings at the University of Pennsylvania's Moore School of Electrical Engineering predating von Neumann's activity as a consultant there, and that much of the work represented in the First Draft was no more than a translation of the discussed concepts into the language of formal logic in which von Neumann was fluent.
The elegiac Stigler's law of eponymy is mentioned there: “no scientific discovery is named after its original discoverer.”
Also, I don't think that 'Design Patterns' should make the list. Design patterns depend heavily on the kinds of technologies being used. It's more like philosophy than science.
Design Patterns should definitely be on there. It was very important at the time. These days we take them for granted because they are baked into the numerous frameworks that most things are now built on top of.
I disagree. It is hard to talk about software innovation without mentioning Xerox PARC. The PARC existed because Xerox was a monopoly with too much money on their hands. Kind of like Google X today.
Monopolies in the software industry are actually quite fragile. Today's monopolies started small and took over the monopolies of the past in a relatively short amount of time. And the same fate will happen to them unless they keep innovating.
Tech is not like railways, where you can't build tracks anywhere you want because of things like land ownership and city planning. It is not like heavy industry where capital investments are huge and margins are low. Even their trove of personal data doesn't mean much: these get outdated rather quickly and machine learning rely less and less on huge datasets (see AlphaZero). Unsurprisingly, AlphaZero is a Google initiative, that's the kind of innovation that could be disruptive in someone else's hands, so they invest in it in order to keep their position.
Physics had a time of rapid innovation.
I may be just arguing semantics but my take is that researchers discover and innovators make it useful and bring it to the masses. Xerox PARC may have discovered the GUI but it was APPLE who made it useful and brought it to the masses.
Although monopolies can innovate, there is no denying that monopolies are risk averse and have internal incentive to quash any innovations that may negatively affect their cash cows. Younger and smaller companies are more likely to take chances and be disruptive.
Xerox PARC can be understood as putting a bunch of smart people in one place and giving them essentially basic income. This seems to be a great way to do research work; beyond corporate monopolies, another successful source of basic income for researchers was DOD grants during the Cold War. A software monopoly that actually tries to monetize the research output directly interferes with this scheme a bit.
> Tech is not like railways, where you can't build tracks anywhere you want because of things like land ownership and city planning.
We don't have that, but we now have software patents, which are even worse in the way - not only you have to pay a lot of money to just be able to work, with software patents it's easy for existing players to just lock out whole areas of development by speculatively applying for, or buying, patents.
Are people less creative when everyone's watching, learning and copying from everyone else? ...
First, the low-hanging fruit has already been picked.
Second, it can take time - possibly decades - for an idea to bear enough fruit that we can see its importance. Look how long the idea of hypertext had been around before it became a household name.
thanks for the thesis pointer, i went down the distributed dataflow path later (but also before Google), and I'd love to read it.
Maybe ACID, CAP, and blockchain deserve a honorable mention as well?
I'm wracking my brains for something in the NN or AI or something space, but yet... yeah, maybe innovation is tailing off?
Maybe GAN if all those fake voice recordings & fake photos & fake videos end up causing major problems for society.
I guess that maybe it also has something to do with (relatively) low hanging fruit, as many of the core problems got eventually solved.
As for AI and NN, he has included backpropagation, which is the innovation that made NN practical. Also, the key innovation that is behind the current deep learning craze, GPUs, is a hardware innovation, so it's excluded.
EDIT: The author says at the end: Note that there are few software innovation identified in recent times. I believe that part of the reason is that over the last number of years some key software markets have been controlled by monopolies. Monopolies typically inhibit innovation; a monopoly has a strong financial incentive to keep things more or less the way they are.
EDIT: From the article: it’s difficult to identify the “most important” innovations within the last few years. Usually what is most important is not clear until years after its development. Software technology, like many other areas, is subject to fads. Most “exciting new technologies” are simply fashions that will turn out to be impractical (or only useful in a narrow niche), or are simply rehashes of old ideas with new names.
Perhaps similar to how relarional databases weren't practical until SQL and weren't workable until B-trees, but it's dated to Codd (which is fair).
Second, Pagerank isn't an invention it would be immediately declared as a pliagarism of academic influence measure by USPTO - that stat has been measured and reported by the index of academic citations for DECADES.
* I am not that knowledgeable about deep learning so please correct me if I am misinformed.
- Gesture-based UI: this forms the basis of the smartphone industry
- sync communications like IRC, chat, voice, video chat (since email which is async is included)
- Consensus algo like Paxos and Raft
- Computer game: Spacewar
Log-structured file systems (and append-only I/O)
Alpha-beta search
TF-IDF
Cryptocurrencies
Distributed file transfer (such as bittorrent)
Tor
it’s difficult to identify the “most important” innovations within the last few years. Usually what is most important is not clear until years after its development. Software technology, like many other areas, is subject to fads. Most “exciting new technologies” are simply fashions that will turn out to be impractical (or only useful in a narrow niche), or are simply rehashes of old ideas with new names.
Maybe that's the reason it's not in list (yet?).