Steve Yegge's predictions from 2004
steve.yegge.googlepages.com
steve.yegge.googlepages.com
1. This is happening, just not as quickly as he thought, and with JSON. (XML Databases)
2. If you actually read what he wrote, this is obviously happening. EC2, Github, Heroku. (Open Source Hosting)
3. Using processes instead of threads is absolutely rising in popularity.
4. Off on the timing, but we are in the middle of an explosion of other JVM languages. The JVM has clearly established itself as the best way to launch a new language.
5. Off on the timing, possibly off completely. Clojure is gaining in popularity, which ties in with #4. (Lisp in the Top 10)
6. Facebook. This one was easy. (Community Hangout)
7. He was actually late on this one. iPhone obviously. (Mobile Computing 5 Years Out)
8. Google Apps. (I'll Pay Google)
9. Wrong literally, but if you take out netbooks, which weren't around, Apple sells the large majority of $1000+ laptops, and they obviously sell a ton of iPhones, which are just small computing devices. (Apple Selling Laptops)
I think what Steve was referring to was people paying for hosted versions of specific pieces of open source software, e.g., a hosted version of SugarCRM, not the ability to run open source software in general.
It was still prescient though, because we're starting to see that. For instance, you can do this with Azure + SugarCRM.
1. This one is so mushy, it's wrong just because of it. Substituting your favourite representation format (JSON instead of XML) doesn't make it any better or really anything to do with databases.
2. It's happening if you think EC2, Github and Heroku are somehow comparable. Also which one of these is making 'a lot of money' as predicted?
3. Your response doesn't actually address the prediction. Also, Clojure, Erlang, blah blah.
4. Just hasn't happened.
5. See above.
6. And Twitter and 'a new internet community hangout will appear' in 5 years is the most solid bet you can make on the internet.
7. It happened to be 5 years out or under. Oh well.
8. Nobody, statistically, pays Google for anything. Other than adwords.
9. Straight out wrong.
I think that easily qualifies for 'wrong on most of them'.
* XML is the most popular vehicle for representing loosely-structured, heirarchical data. Relational databases can't do this very well. ...XML can be mapped straightforwardly to the objects and data structures of modern programming languages, so it works better than relational modeling for serializing things like object graphs.*
While his estimate of market share is off (he suggested >50%), he was right about the future popularity of document databases. The only thing he got wrong was the specific serialization format.
I don't see how to interpret this as anything other than a document database. Could you explain to me?
"Prediction #1: XML databases will surpass relational databases in popularity by 2011."
It's still completely wrong. I don't see how to interpret it as anything other than wrong. Yes we can sift carefully through it to find some way in which it's kind of, maybe right, sort of. We're discussing Steve Yegge's actual predictions not whether filesystems or the Library of Congress are really a special case of document databases.
I think we should just agree to disagree on this one.
Compare with, for instance, Bill Gates, who has been claiming that speech recognition as a primary means to control computers is just five years away, for over twenty-five years now.
The point is that Steve's predictions are actually observable, though some of them are advancing at a slower pace than he thought (and a tiny bit different, like JSON instead of XML, which IMHO is irrelevant).
(but I agree with you :))
Any fool can make a very long list of predictions that will all turn out to be correct, even in the stock market, as long as he doesn't have to give them a timeline. Plenty of people saw the housing crash, for example, and plenty of them understood that certain banks were underwater, and regardless of their actions, they were going to go under. However, just knowing that isn't actually worth anything -- a short position carries a heavy premium in interest, and in the famous words of Keynes: "The markets can remain irrational longer than you can remain solvent."
Taking into consideration that these predictions are 5+ years old I think they are pretty good. He clearly spotted several trends whose future significance was at the time not obvious. If someone started a business believing one of these trends had promise it is possible that the business would have been successful. I do feel that for what he was trying to accomplish being early or late by a couple of years or off on a detail but correct in spirit is not significant.
Also, I think it is important to add that making predictions like these is very important becuase the future develops from our perceptions of what it will be.
But with technology predictions, there's an almost infinite set of outcomes, so being right in direction but not timing is significant. For instance, someone who says "Little Rock, Arkansas will win the Super Bowl within 5 years" will look pretty smart even if it takes 6 years for Little Rock to (very unexpectedly) get an NFL franchise and 9 years to reach the Super Bowl.
Granted, technology predictors can use also use some tricks to narrow the possibility space in their favor.
XML has its roots in document creation for large organizations, and has a structure appropriate for that -- mostly an ordered graph of text nodes, which do not need to be declared (and indeed are not consistent between parsers), with provision for special node types with their own contents. But early in its history XML got hijacked by a lot of comp-sci theorists who wanted to create highly abstract notions of messaging, separating message validity and provenance from application logic. This gave the world things like XML Schemas and SOAP and worse.
Meanwhile, JSON is a straight representation of common scripting language data structures. Arrays, dictionaries. Simple. Node boundaries are syntactically explicit. In this philosophy is taken for granted that message validity will be ascertained at the application level. There are no fantasies of doing so at the document parsing level.
Your terms - json databases - do not have enough search volume to show graphs. http://www.google.com.au/trends?q=json+databases
OODB were all the rage a decade or two ago, and they solved the O/R impedance mismatch - but they didn't become mainstream. What has changed, that will make "JSON databases" succeed?
EDIT Actually, hierarchical databases were popular before Relational DB were invented, and then everyone switched. Why? Normalization of RDB is said to be important, but it seems little used in practice. It seems more a selling point, but it usually takes more than a good pitch to motivate deep organizational change (maybe it was different in those early days, when new installations quickly outnumbered old ones?)
It is because databases often outlive the application that created them. They also often serve more than one application, for more than one purpose (e.g. operations vs. business intelligence). For this, you need a data representation that is in terms of the data itself rather than the use. The problem with data structures in a programming language, such as objects is that they are designed in terms of their use; a data representation is chosen that makes sense for what you want to do with the data.
The O/R impedance mismatch is not just between "media" (objects vs. tables), but also between the specific representations chosen within that media. If you store your objects directly in a DB, your data is closely coupled to your use; the same problem occurs with OR mappers. I surmise that the advantage of relational over hierarchical databases was that they could better represent the data in terms of itself.
JSON databases will have the same problem - the data representation will be designed in terms the application that generated them, and this close-coupling will make it difficult to interoperate with a later application, and with other applications, with other purposes. The data representation will not be designed in terms of itself.
For example, he bet that people would want to play a game with deep and intriguing gameplay regardless of the graphics. Then he bet that people would want to play it on a handheld device (specifically, he targeted the Sharp Zaurus, but the game is compatible with some other palmtops of the same era). I think he's right on the first count, but too early on the second (targeting the iPhone, for instance, would probably have been more successful).
There are a number of other reasons the game didn't take off, but the point is that he's not an armchair pundit, shouting that we should all listen to him and take action based on his foresight. If anything, he's taking action, and just logging the predictions that prompted him.
I haven't played that for a few years. I'm going to have to start again.
Prediction #1: XML databases will surpass relational databases in popularity by 2011.
Prediction #2: Someone will make a lot of money by hosting open-source web applications.
Prediction #3: Multi-threaded programming will fall out of favor by 2012.
Prediction #4: Java's "market share" on the JVM will drop below 50% by 2010.
Prediction #5: Lisp will be in the top 10 most popular programming languages by 2010.
Prediction #6: A new internet community-hangout will appear. One that you and I will frequent.
Prediction #7: The mobile/wireless/handheld market is still at least 5 years out.
Prediction #8: Someday I will voluntarily pay Google for one of their services.
Prediction #9: Apple's laptop sales will exceed those of HP/Compaq, IBM, Dell and Gateway combined by 2010.
Prediction #10: In five years' time, most programmers will still be average.
1: No
2: No (I think). I don't know if Google App Engine is making money for them, and Github doesn't host apps, and Amazon Web Services doesn't (only) host open-source web apps.
3: Hopefully.
4: Doubtful, but one can dream =)
5: No.
6: HN? Is Steve Yegge here?
7: Yes. I think it's valid to put the iphone's success in 2009 (rather than earlier) due to the large number of apps and growing number of competitors in that year.
8: Well, considering he's working there, I think he's being paid instead =)
9: Probably.
10: Yes, although it's not a tautology. (You could have asymmetric heavy tails which would make most programmers below or above the mean.)
Are you really sure about that? AFAIK the use case for key-value stores isn't one that a lot of people are going to suffer (seriously high-volume).
#2 Github?
#3 The evils of threads, and how to replace them with something else to use multi-cores, is very high on the list of blogged about programming topics. Several new languages have staked their claim to fame largely on how they handle concurrency. So, yes, this one was understated, if anything.
#4 Not there yet, but might be on that trajectory if there is some "tipping point" of Java programmers en masse getting fed up with Java's limitations. There are certainly enough alternative JVM languages to choose from.
#5 Does Clojure make the top 10? Certainly not in number of users, but maybe in most popular to blog about.
#6 Facebook.
#7 iPhone was released June, 2007, beating his prediction by a couple of years.
#8 Maybe if you buy an Android phone from them?
#9 Apple laptops are immensely popular, but the scale of this prediction was a little ridiculous. Between iPhone and iPod, it's possible that there are more people who own an Apple product than own a product from all those companies combined.
#10 Now that's just insulting. Who's he calling average?
The average programmer.
They may be high on the list of blogged about topics, but in places where performance really matters threads are used more and more. If you for example look at the article http://lwn.net/Articles/357658/ you'll see that Google uses thousands of threads on 16-32 core machines and in fact is making changes to the Linux kernel to make it support a larger number of threads.
In order to sleep through the night, I'll just assume that he's not talking about me.
#2: This has nothing to do with Github or hosting of source code. Here the author was referring to sell the service of running a web application for you, like a forum or a wiki, and so forth. something like vanilla forums or wordpress.org are doing indeed. IMHO this prediction was more or less totally wrong, as the latest five years showed us that web applications are a big business but companies will try to rewrite from scratch the product they are offering in order to take it closed source, to offer more in terms of usability, and probably even for scalability concerns.
Actually the reverse happened, for instance Reddit instead to use a Digg clone wrote the code, and later released it as open source.
I do think he was wrong on most of the others, though.
Well, even deep understanding doesn't imply the ability to predict, unless chance plays little role -- a stipulation which is manifestly not the case, here.
Edit: grammar
But I also didn't downvote you, so I can't speak for those that did.
Nope, that's a logical fallacy. Lots of people do it, yes. I'm guilty of it myself. But that doesn't mean that it's correct.
For example, I am ridiculously bad at estimating how much time implementing features / fixing bugs would take. Most of the time I'm really off, at least by a factor of 2. Surely my manager should take this fact into consideration when asking me how much time something would take me when planning the timeline/schedule (he does, in fact).
> So basically he didn't get anything but #6 (facebook) and #10 (which is more of an insider joke than a prediction) right
Okay, you're good...
> Remember this next time you read Yegge's rants.
Logical fallacy.