Chad Perrin: SOB

11 February 2007

Answering the question: What is the Next Big Thing?

Filed under: Cognition,Geek — apotheon @ 05:23

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:

  1. 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.
  2. 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.
  3. ECMAScript 4: The third best fit is the new ECMAScript (henceforth ES), currently in development. The current ES, like Perl 5, fits enough of the Steve Yegge criteria to be a serious contender in its own right, if only for a few little — but critical — shortfalls. Also like Perl 6, these shortfalls are precisely the things being addressed in the new version under development. For those of you unfamiliar with the term ECMAScript, you may be surprised that the number three contender for Steve Yegge’s NBL criteria is most popularly known in its browser-based JavaScript (henceforth JS) implementation. That’s right, an evolution of JS may be the Next Big Language. It’s not just language characteristics that make this seem likely, however — there’s also the fact that Adobe is working on the client-side applet platform Apollo for the new iteration, ECMAScript 4 (henceforth ES4). This will provide a new way of getting, and using, applications that combines the convenience and ease of the Linux/BSD software manager model with the sandboxed security, clicky widgetness, and cross-platform capability required of a single platform for the NBL — essentially both the next evolutionary step of the JVM and the convergence of the best qualities of both the JVM and the Web as platforms. . . . but wait, there’s more! Mozilla is offering the Tamarin VM for JS, which will both provide a stand-alone platform for ES4 and be used as the JS engine of the Mozilla Firefox browser. This is of course thanks in large part to the recent opening of the JS/ES source. Meanwhile, Microsoft has its own implementation of ES, in the form of JScript (henceforth known as JScript). Google has already started working on plans to make some of its currently web-delivered services (such as Google Maps) available via Adobe’s Apollo platform. While MS is of course setting out to derail the Adobe effort, it is mostly doing so via a competing implementation of ES — JScript, you may recall me mentioning — and the open source community is already on board with Tamarin. That’s kind of a four-pronged assault on the CBL by a serious contender for the NBL, according to Steve Yegge’s criteria. The major hang-up is that the current crop of “serious programmers” look down their noses at JS, but I don’t think that’ll be much of a deterrent to adoption because of the simple fact that the old guard won’t have much to do with its adoption (or lack thereof) — they’ll be sidelined, as C++ was by Java and Fortran was by, well, everything. That’s not to say they’ll be out of jobs, of course: they’re still going to have very solid job security for a long time to come, because their work cannot be supplanted so easily. They just won’t be the guardians of the CBL any longer, and they’ll have nothing to say about it.

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
    1. NBL: The language was C, including C++, as the OOP extension of it.
    2. 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.
    3. 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
    1. NBL: The language was Java, and I think this should be currently obvious enough that I don’t have to explain it.
    2. NBP: The platform was the Virtual Machine, which suited the megalithic corporate business environment necessary to the language’s popularity quite well.
    3. 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)

Why Digg Sucks (or: Ten Reasons Digg Sucks)

Filed under: Geek — apotheon @ 12:50

While this was originally intended to be about Digg, by the time I was done I discovered that to a fair degree it’s also about reddit and Del.icio.us. I haven’t used Digg or Del.icio.us nearly as much as reddit, for a number of reasons — some particular to the way I use the web, and some related to the information I provide below about why Digg sucks, especially in relation to its competition. I have used all three enough to have a pretty clear idea of how they work, and why that doesn’t work for me, however.

This SOB entry was largely inspired by my recent attempt to make some real use of Digg again. It didn’t work out so well.

  1. Digg doesn’t know how to organize its interface. It’s difficult to find the things you want when you’re new to Digg — while with reddit and Del.icio.us, all the links you need are right at your fingertips. Del.icio.us has some interface issues of its own as a social network facilitator — largely because it’s designed to provide personal bookmark caches with the ability to accrue more from like-minded individuals rather than targeted specifically at the social aspect — but it’s a darn sight better than Digg in that regard.
  2. The submissions process at Digg is obtuse. Compare reddit: I’m looking at a page, and I decide it deserves to be reddited. I click on the “reddit” bookmark in my browser, and it automatically takes me to the submission page with all the form elements filled out. If the webpage in question had already been submitted, it just takes me to that article’s page, where I can upvote it. There’s no need to search to see if it’s already submitted, and there’s no need to go to the website (as with Digg) to submit it.
  3. Digg is webmaster-driven. The whole focus of Digg’s tools and interface enhancements seems to be on letting webmasters pimp out their own stuff, rather than on users of the website submitting things that are actually worth something to them. This produces different emergent properties of the system: rather than the most generally valued stuff rising to the top, you get the results of the most dedicated users (willing to put in the effort of working with the Digg interface) and self-promoting webmasters gaming the system. Contrast reddit and Del.icio.us, where more benign emergent properties have a fighting chance.
  4. Maybe I’m just imagining this, but Digg programming-related stuff is all about Java, and other daycoder topics for people working in little gray cubicles working on their particular little cogs of a huge, soul-sucking enterprisey system who think this makes them l33t, while reddit tends more toward interesting hacker languages that inspire passion about topics other than “Is that code object-oriented enough?” For example, I see lots of Lisp, Haskell, Ruby, and Python on reddit, and a healthy disdain for Java. Del.icio.us, meanwhile, pretty much runs the gamut — because it’s more a collection of individuals using the same service than a community, you see a wider range of programming interests than either reddit or Digg. This is good if you want more variety, but not so good if you want to filter for content that matches your own proclivities.
  5. While the reddit community’s self-conscious faux-intellectualism is at times a little tiresome, it encompasses a bit of genuine intellectualism. Digg seems to lack that entirely. This is one case, however, where Del.icio.us is the clear winner: you can easily forge more direct connections with individuals who have a genuine intellectual bent and track their activity on the site. Just as reddit is about the aggregate, Del.icio.us is about the individual. Digg, meanwhile, is about the mob.
  6. Politics — redditers as a whole seem far more aware that the political sphere affects their lives, and seem to care quite a bit more about that, than Diggers. This leads to more interesting, relevant political material, and discussions of that material that is at least representative of the views of people who notice the world around them and put some thought into it (I won’t discuss the failings of common political views, even on reddit, here). Digg, meanwhile, seems to harbor the politically ignorant. As always, Del.icio.us is more of a shotgun-effect in terms of its political awareness.
  7. See Why does Digg suck?. The relevant bit is at the bottom of the page. Hint: text-search in your browser for digg.
  8. While Del.icio.us and reddit have no such pretensions, Digg claims to be about technology. Meanwhile, better technology articles are more easily found on either Del.icio.us or reddit than on Digg — especially if you’re looking specifically for programming stuff (which I usually am), and I’m not just talking about Java vs. Haskell. For instance, a nontrivial percentage of top Digg stories these days are about iPods and text messaging, or something equally vacuous. There’s a small, but noticeable minority of completely off-topic items that make it occasionally necessary to wade through announcements about famous actors being gay at Digg, whereas I have no such problem on programming.reddit.com, for instance. What’s up with that?
  9. Provincialism: if you’re not one of the faithful, you’ll be burned at the stake for your heresy. Of course, I happen to disagree with a fair bit of what the said (there’s just no way to reasonably run a social bookmarking site with Digg-traffic pre-warnings as he suggests), but that doesn’t mean a link to his site should be labeled “bury this” for the crime of saying something less than glowing about Digg. The same sort of thing doesn’t tend to happen on reddit, and on Del.icio.us the mechanics of the site’s social networking pretty much make it impossible.
  10. This one hearkens back to an attitude similar to the pro-Java sympathies — I find the black-and-white worldview of Digg in general, as though MS Windows and MacOS X were the only operating systems in the world and there’s an unquestioned orthodox answer to the question of which is better, repugnant and annoying. I guess that might be indicative of a common cause with the lack of interesting political material in the off-topic stuff: people are willing to accept the two-party view of politics, so they don’t examine the evidence that both wings of the Republicrats suck; they are willing to accept the two-player view of the operating system market, so they don’t examine the evidence that Apple isn’t much different from Microsoft under the surface, and as bad as MS Windows is MacOS X has also managed to screw things up a bit by eliminating many of the benefits the underlying technologies could provide.

Here’s one last bonus item: I’m kind of put off by the fact that most Diggers seem to think Digg is the only social bookmarking site in the world. That doesn’t really relate to whether or not Digg is any good to use, but it’s still annoying and strangely ignorant.

All original content Copyright Chad Perrin: Distributed under the terms of the Open Works License