ex post javaone
So, what was cool this year? The tiger on stage? I missed that. The keynotes that were more or less repeats of the previous year's keynotes? Unfortunately, I didn't miss those, though I wasn't quite as put off by them as some people were. (But I admit--I missed the tiger because I was tired of listening to last year's keynote one more time, so I split.) We've been hearing that "this is the year for mobile" for some time. My attitude is that, after you've been hearing that "this is the year for X" for about five years, it finally is the year for X. So maybe this really is the year for J2ME; the year in which there are enough Java-enabled devices, the year in which developers en masse actually start hacking. It takes a lot of time for that momentum to build, and I'm not even sure it's there this year. I'm surprised at how few developers I know who are hacking mobile phones, on Java or any other platform. But I think the time for mobile programming has come--if not this year, next year. When we'll probably have to listen to the same keynote again.
The Big Question was really a Big Disappointment. It's amazing how people managed to dance around the issue without getting to the big point. My boss, Tim O'Reilly, said the right thing: the important people are the ones who aren't in the room, the users of Linux who aren't using Java. And Larry Lessig said exactly the wrong thing when he took ideology off the table, because ideology is really the big problem.
I don't have any ideological axes to grind. The debates between this and that open source license are entirely boring. There's really only one sense in which it's important: when ideology keeps developers away from the Java platform, it's extremely important, and needs to be neutralized as an issue. There's an easy way to neutralize that issue: release Java under a legitimately open-source license. Sun wants to get from 3 or 4 million Java developers (this year's number is 4 million) to 10 million; it will be a whole lot easier to do that if you can throw some hundreds of thousands of Linux developers into the mix. Gosling has the odd impression that Java is incredibly popular on Linux. That's really not true. There are two significantly different communities: Java developers who happen to use Linux (just like there are Java developers who happen to use Windows or OS X), and Linux developers, who for whatever reason are staying away from Java--a significant number of whom are moving towards Mono, a .Net clone.
I happen to think that Mono is an extraordinarily bad idea; I don't see any chance that there will be meaningful interoperation between Windows apps and Linux apps because of the CLR. The real glue to Windows is VB and libraries, and I don't think they are going away, nor could they be cloned without a huge and disastrous lawsuit. But that's beside the point: Mono's existence shows that Sun failed to attract Linux developers when they should have. They didn't neutralize the ideological issue when they could have, and developers went elsewhere.
Of course, it may well be too late. If Sun released the JDK under an open source license tomorrow, would anyone care? Perhaps not. I'm inclined to say "Better too late than never," but I'm very disappointed that they're still dragging their feet over decisions that should have been made years ago. If there were an open source Java in 2000, it's quite possible that .Net wouldn't even exist. It certainly wouldn't be serious competition.
We're past the point where we need to argue about splitting the platform. There are certainly ways to avoid that. Bob McWhirter's Codehaus has the notion of a "despot" who's the person with primary responsibility for any project. The despot approves project committers, and generally is responsible for the project's overall direction. (Bob, forgive me if I'm wrong). James Gosling has been an effective "despot" for Java, and there's no reason for that to change. A license could probably be written in which the JCP served as a "despot by committee". And, while there's lots about the JCP to dislike, it's less dysfunctional than the other standards bodies out there, many of which only exist to allow vendors to impede progress.
My worry is that, is Sun doesn't release an "open source" Java, someone else will first. That could be IBM; it could be BEA: it could be someone else. But at that point, the center of gravity will irrevocably shift, away from Sun's stewardship--which, on the whole, has been fairly good. I think an "open source" Java is inevitable--if Sun doesn't do it, someone else will. And we'd probably all be the losers in the dissension and wrangling that would inevitably follow.
One last note on an unrelated subject--wasn't all the Jini cool? It's disappointing that Sun still has Jini earmarked as a "device technology", which is very limiting. It's a desktop technology, as Dan Steinberg has argued; it's an enterprise technology, as Orbitz clearly demonstrated. It's grid services without the pain, without the agony, without the incomprensible XML, without the excedrin. I don't know if Sun yet realizes what they have. But there are some signs that some developers are catching on.