Why bother? Sun and Client Java

I just saw this blog entry from Jan Erik Paulsen, the guy that runs Teppefall Labs. Question: why is Sun Microsystems bothering to invest in client (desktop) Java and RIA?

Sun is in danger of losing what position they have in the desktop/client market already, vis-a-vis Swing. While Swing has, by some accounts, a solid foothold in business applications (mostly internal apps), it’s not growing in popularity for general use across the major operating systems, or, as far as I can tell, for use in desktop applications. Also, with Adobe offering a client-side, auto-updating, network connected development stack with Adobe AIR, and Microsoft trying to enter the market with Silverlight, development using a “traditional” desktop application GUI framework seems less appealing. This is true even with Sun’s attempt to simplify desktop app development with the Swing App Framework and the Swing Binding Framework, even with support for both in NetBeans 6. That bundle of technologies and ideas called RIA may or may not be important as a market in the long run, but it’s certainly capturing people’s imagination.

However, a larger point is that Sun is in danger of losing its pretty sizable investment in client-side technologies already in place. I have no idea how much money and engineering resources were involved, but the entire stack we’re talking about–AWT, Swing, Java2D, Java3D/JOGL, NetBeans, etc.–is large, must have been expensive to develop, and covers a lot of ground. If Sun cedes the desktop/RIA market to Adobe (and possibly Microsoft and even Mono), all of that goes to waste, since neither Adobe nor Microsoft are building on top of that software stack. We should note as well that no one outside of Sun is currently extending or enhancing those technologies themselves–there are libraries that build on top of them, but Sun appears to be shouldering the entire burden for the whole stack.

To put a positive spin on it–Sun already has a lead in having developed certain time-consuming and difficult parts of the problem, and have it working on multiple OS platforms. Not taking advantage of that–not building on top of the large effort already completed–is a waste of an existing business investment. You could even say what Sun is doing with Java Update N is an incremental effort. They don’t need to start from scratch, and that gives Sun, at least business-wise, a pretty good leg up on the competition.

That said, there are reasons, good reasons, to be skeptical. Sun currently has no good story for (in no particular order) media (sound and video codec support), modern HTML + CSS or end-developer/designer tools. All of these are supposedly being addressed, but we really have to adopt a wait-and-see attitude, since Sun is not known for its accomplishments in any of these areas.

Worse, the hype and marketing push that’s been simmering around the “Consumer JRE” embodied in Update N masks some problems there, too

  • The new plugin, while welcome, is targeted for only two browsers, IE7 and Firefox 3. The latter hasn’t been released, and backporting to FF2 appears to be off the table for now. Opera isn’t supported, and neither is Apple’s Safari. Older and newer versions of IE aren’t being discussed, though one would hope for upwards compatibility with IE8.
  • The Quick Starter feature is not only Windows-only, it appears to be primarily targeted at Windows XP. It’s disabled by default on Windows Vista, which means it will likely never be used–I can’t imagine any regular user bothering to search for the checkbox to enable it. QS doesn’t improve startup time on OS X or on Linux.
  • Hardware acceleration pipelines for graphics are only addressing Direct3D 9. There is already an OpenGL pipeline, but it’s not enabled by default due to instability on a subset of graphics cards. Thus we aren’t seeing this in *nix deployments or on the Mac. Again, a Windows-only improvement.
  • There is simply nothing in this related to OS X, period. Apple seems to be in full control of Java on OS X, and who knows what they will do with it in the future, if anything. Open source efforts like SoyLatte could, in the long run, have some impact, but I’m not holding my breath; it seems at best a solution for developers using OS X who need the latest and greatest. As a side note, I do have to say that the Swing (or rather, the graphics) stack on OS X appears to be the best implementation I’ve seen so far–if you have OS X available, just try downloading IntelliJ IDEA for an evaluation to get an idea of how good a Swing-based application can be.

Mind you, I don’t think this is all bad. Sun is building on the stack they’ve already invested in, and they are looking to make the biggest splash on the most widely-deployed desktop operating system out there, which is Windows, and the most widely deployed browser, namely IE7. The story on the Mac remains a complete mystery–Apple continues to refuse to release any kind of roadmap–and outside of some large-scale deployments we hear about in the press, desktop Linux is just not that widely used at this point (compared to existing and likely Windows installations, its market is miniscule).

So I think we should see Sun’s efforts on desktop/client/RIA Java to be their effort to make lemonade from the lemons the market, and fate, have handed them. The upside is that their technology portfolio in this area actually contains work that many people, even competitors, respect. And as an incremental investment–building on what they’ve already done–it seems like a good play business-wise. For people already using the Java platform, I think it’s arguably an interesting move to watch.

This entry was posted in Uncategorized and tagged , , , . Bookmark the permalink.