People like to speculate about the Next Big Thing. This is particularly true, in my experience, of pop culture and information technology — more so in the case of information technology, at least as far as my experience is concerned, though that may be because I spend an awful lot of time on IT matters and very little on pop culture (I didn’t even watch the Superbowl). Case in point: Steve Yegge (almost everything he writes ends up on the front page of reddit) recently laid out his list of characteristics that the Next Big Language must have, and stated unequivocally that he knows for a fact what the NBL will be, but it’s a secret. He did this in The Next Big Language which, of course, I found on the front page of reddit. Go fig’.
There’s some interesting conversation to be had in the discussion of the essay, including (of course) a massive stew pot of predictions. Certain predictions kept getting repeated, with one in particular topping the heap of predicted likely candidates. A couple of extreme minority instances made more sense than almost all the more popular suggestions. My thoughts on a few are as follows:
- Perl 6: It fits the Steve Yegge criteria more fully than any other language mentioned, and by a wide margin in all but a couple of cases. Especially noteworthy is the fact that Steve specifically alluded to the fact that the NBL is not yet completely finished and production-ready, but that its characteristics in the current, publicly available state of development (whether already usable or just documented) clearly point the way to the language’s likely success as the Next Big Language. He also made a point of indicating that Perl (through version 5) qualifies for the corporate backing requirement of the NBL via O’Reilly, which carries through to satisfy the requirement for Perl 6 as well, even if that’s the highest-profile corporate backing it ever gets.
- Java++: The second best fit for his criteria, but the most uncertain in terms of whether it will ever emerge in the necessary form to supplant Java as the NBL, is the next, open source Java, now that the JVM is going GPL. If it develops in a manner to suit the needs of supplanting old Java (rather than just being an almost indistinguishable — if improved — Current Big Thing iteration) before Java’s mindshare is supplanted by something else, it will certainly beat out any of the other options, including Perl 6. Java as it currently exists of course already suits all the necessary characteristics of the NBL (because it was the previous NBL and is the CBL), with the exception of the things we might expect to see from an open source evolution. Again, this assumes an awful lot about what will happen to open source Java, so it strikes me as second place. Of course, Perl 6 actually suits the requirements more fully than a new Java anyway, but the increased corporate backing of Java over Perl 6 (I’m frankly skeptical of O’Reilly as being effective enough a corporate backer to make any language the NBL on its own) sure does make it a close call.
Java could sweep all contenders away, but it really would require a complete open source overhaul and, as I’ve mentioned already, the chances of that are quite sketchy. It’s merely the strength of its marketing merits if it happens that Java++ is worthy of the silver medal. In terms of actually existing evidence, both Perl 6 and ECMAScript are clear winners. The fact that Perl 6 is given the gold here is largely predicated upon Steve’s identification of O’Reilly as its marketing powerhouse — which definitely has its value, and makes the language a contender, but I’m skeptical of its ability to sell to the level of the NBL. This means that, if I ignore Steve’s faith in the power of O’Reilly as a corporate backer, ECMAScript owns the field in terms of likelihood.
I’m still not convinced, though, even of my own top three guesses. I’m certain of them if Steve Yegge’s rules prove to be the ultimate decisive factors, but things are not quite so cut and dried. In the world of information technology, I believe there are three major branches to the Next Big Thing, and they are all inextricably linked in determining what comes next. In other words, in a very real way, the NBT is actually a package deal, even when it arrives in fits and starts. The holy triumvirate of the NBT are the Next Big Language, the Next Big Platform, and the Next Big System. A couple of examples follow:
- The NBT was at one time made up of
- NBL: The language was C, including C++, as the OOP extension of it.
- NBP: The platform was the persistent user interface environment, pioneered by Unix and marked by the ability to run discrete binary executables within a multitasking abstraction from the hardware.
- NBS: The system was end-user computing, an aggregate market of stand-alone computers with varying levels of interconnectivity, but no reliance on a network.
- The NBT was at a later point made up of
- NBL: The language was Java, and I think this should be currently obvious enough that I don’t have to explain it.
- NBP: The platform was the Virtual Machine, which suited the megalithic corporate business environment necessary to the language’s popularity quite well.
- NBS: The system was the Internet, almost by accident — but a serendipitous accident for Java, which could not have achieved its successes so thoroughly without the World Wide Web.
Further examples could be brought up, of course — some were mere flash-in-the-pan phenomena, but flashes that clearly demonstrated the forces that lead to the information technology NBT, both directly and by counter-example to demonstrate where failure to comply with those forces leads to failure. It’s worth noting, as you ponder this, that I’m talking about the NBT in the same sense in which Steve Yegge talked about the NBL, by the way: I don’t mean the best system to come, but rather the one that will come to dominate and redefine the market. I don’t mean necessarily that it will redefine computing or the state of information technology, though it will have some effect on that — other things will have bigger, if more quietly applied, effects: rather, I’m talking about something that will redefine the market in which we work and, more specifically, be the tool most of us will need to learn if we want to do mainstream work.
Take for example the current state of Big Thing affairs: more programmers use Java professionally than any other language; Java runs on its own virtual machine on thousands of corporate servers all over the world; more of that enterprisey code is written for the Web than anything else. While Java isn’t the most-used web development language in the world, that’s not really the point — the Web is the most important use of Java, in terms of what keeps people using the language. Take away Java and the Web goes on; take away the Web, and Java dries up as people rediscover the use of non-VM languages, high-performance short-run coding, and languages that aren’t painful to use.
So . . . what’s next? I really don’t know. ES4 certainly has its appeal as a future prediction, with the new platform (an applet VM internetworked with the rest of the world, like Apollo and friends) and the ability for it to potentially leverage the emerging Next Big System (the social network enabled by the hardware network) for great effect. Perl 6 also has its appeals, of course, including the fact that it’s being developed in tandem with its own VM that can be used as an implementation of the kind of multilanguage rainbow-land represented by the .NET CLR framework, language features that will certainly catch the attention of most programmers who bother to give it a serious look, and implementations of the language springing up all over the place in the community in addition to the core VM implementation. Java still holds its own as a potential candidate, with the big IF of “if it ever moves in that direction now that it’s freed from a proprietary implementation and standard” still applying. The fact that I’ve just identified what I’m convinced is the “real” underlying set of factors that determine the NBL, as a single small part of a larger NBT framework, really throws a lot of doubt on those assumptions, however.
I do tend to agree with the likelihood of Steve Yegge’s criteria being relevant, of course. They all make perfect sense as reasonable correlative predictors. I just think it’s also entirely possible that we may be surprised by the effects of the interplay between the three NBT components. The market will change, and we may not even realize it in any comprehensive fashion until it’s about time to start thinking about the next major change. The biggest indicator will probably be the NBL. If it doesn’t match Steve’s criteria as well as we might expect, it’ll indicate that we’ve definitely overlooked something in the question of what will be the NBP and NBS.
One other point: I don’t think Steve Yegge really knows what the NBL will be. I think he’s being subtly ironic in his conspiratorial claims, even if on some level he believes his own marketing (not insulting him here — we all do that from time to time, and it’s often a necessary step on the path to brilliance when considering a given subject). I think it’s most likely that he actually knows he’s not really sure of the NBL, but has a couple of strong ideas, with one he’s picked out as the most likely or at least the one he’d most like to see succeed.
. . . and I think his may be the most intelligent essay I’ve ever read that speculates on the identity of the NBL, even though it doesn’t really discuss how we arrived at the Previous Big Languages very much.
(next, I think I’ll talk about Java)