For a long time, J2SE supporters like myself have said that the big win of J2SE is not only that you "run everywhere" today, but that future Java-capable platforms could pick up and run your software on day one. This would be a great reason to write J2SE applications, and a great reason for platforms to build in Java support.
Well, three new platforms made their public debut last week:
And it's very likely that Java won't be on any of them.
These platforms will sell tens of millions of units world-wide. Indeed, Microsoft says it aims to reach one billion people with XBox Live. Any way you look at it, this is a huge, huge market to miss out on.
Pessimism? Sure, and grounded in experience. After all, Java for PlayStation 2 was promised and demo'ed at JavaOne 2001, yet it never shipped. Last year, the JavaOne keynote showed Java on the Infinium Phantom a vaporware console so loathed by the gaming community that Sun would probably be harmed by a well-known association with it.
Moreover, where are the apps that would make it worth it for the consoles to support Java? They largely don't exist. Granted, Puzzle Pirates is great. We all love Puzzle Pirates. But there needs to be a thousand applications like it to create an end-user need for Java, and we're about 999 applications short.
To channel Daniel's blog a little bit: how can it be that Apple can get the computer press (yes, us included) to practically wet themselves over a collection of calendars, stickies, stock charts and other mini-apps? Where is the J2SE community, which could do the same thing on a potentially infinite number of devices? Sadly, it seems we're all more interested in a pointless, self-destructive holy war over IDE's than in shipping anything anyone would ever use.
All of these platforms will have broadband network connections, and are talking about features like instant messaging, voice, and video chat. Who's providing those apps, not to mention the media browsers, streaming audio clients, personal organizers, etc.? Not us, apparently.
"Run everywhere" isn't very everywhere, is it? Some days it's just "Windows and maybe Linux or Mac." If J2SE isn't worth running on set-top boxes and game consoles, and if it's always behind or half-baked on Mac and Linux, is it ultimately just a "me too" way to write Windows applications?