Last week, while at the JavaOne conference in San Francisco, Sun drew some major lines in the sand for Java and now, about the only thing we can do is sit back and watch to see what happens. If I had to sum up what I heard, it's that the battle for supremacy in the RIA space (that's Rich Interactive Application if you're Microsoft, Rich Internet Application if you're not) will be fought in the mobile and embedded spaces.
Sun CEO Jonathan Schwartz reminds us that the number of active handsets and embedded devices (eg: set top boxes) already outnumbers the number of client PCs in the market and the deltas are only going to become more pronounced over time. It is true. Particularly as more people in the Asia-Pacific region as well as those in under developed countries come "on line." Schwartz used to talk about how more people will experience the Internet for the first time through a telephone, than not. Now, however, it's a battle cry.
Before 2007, Java had no challengers in the handset space. The runtime environment's footprint in the mobile market served as a reminder to everyone that Sun was positioned for a slam dunk once handhelds could do the sorts of tasks, and graphically so, that only PCs could once do. Now in 2007, with that tipping point (largely a function of Moore's Law, wireless broadband networks, and battery life) around the corner, Java finally has some competition.
In one corner is Adobe's Mobile Flash (largely being marketed under the Apollo brand). Today, 99 times out of 100, Flash is the go-to tech for building RIAs. Primarily desktop RIAs. In the other corner is Microsoft's Silverlight. Silverlight isn't the go-to technology for anything. Yet. But, to the extent that coding Silverlight apps will be easy for .Net programmers, what Silverlight does have is an army of developers that might prefer to capitalize on their existing skills rather than learn new ones like Java and/or Flash. Meanwhile, while Java may have a huge footprint in both the mobile and desktop spaces, it's not exactly viewed as the canvas upon which creative developers prefer to leave their mark.
If what Schwartz and other executives have been saying about the handset space (and to some extent, the embedded space) is right, then the battle royale between the three companies will be over mobile RIA developers. Java may have a foothold in the mobile space, but Adobe and Microsoft -- two competitors that cannot be counted out -- are circling. For Sun, there ain't nothing like a bit of competition to sharpen the company's priorities which is why it comes as no surprise that two of the major messages coming out of JavaOne were that (1) thanks to the JavaFX scripting language, the Java Runtime can be programmed without much of a learning curve (target: all current and potential Flash and Silverlight developers) and (2) after adjusting for form factor issues like screen dimensions, RIAs developed for Java on desktops will be reasonably portable to handsets. That second message could be critical to Sun's ability to fend off Adobe and Microsoft.
Prior to 2007, getting desktop applications -- even Java ones -- to run in a mobile handset was so challenging that the mobile environment required its own mobile version of Java known as J2ME. Because of handset limitations, J2ME's ambitions, prowess, and capabilities were scaled down versions of what could be found on the desktop; J2SE (Standard Edition). Thanks to Moore's Law though, handsets are becoming more capable and the thought of squeezing J2SE into them -- an idea pioneered by SavaJe back in 2001 (see my coverage of it then) -- was ready for primetime. According to Sun's executive vice president of software Richard Green, Sun's acquisition of SavaJe one month ago will play an important role in the company's ability to execute on its vision of portability across desktops, mobiles, and, embedded systems. For developers, it could mean less work to reach a much larger more lucrative base of users.
But Sun's rear view mirror isn't exactly clear. During an after hours event at JavaOne, I posited to Redmonk's James Governor that Java has a natural lead because of its existing presence in the hearts and minds of handset manufacturers and mobile operators. Governor laughed at my insular view of the world (admittedly driven by my observation here in the US) and proceeded to enlighten me about the in-roads that Flash is making onto handsets in South Korea and Japan: probably the two most sophisticated mobile markets in the world (and probably good predictors of what will one day be mainstream in the US). Whereas Flash is good for mobile RIAs though, its weakness is on the more transactional stuff and Sun's Schwartz is certain mobile operators would prefer one versus multiple runtimes in their already footprint-challenged handsets.
He could be right. But neither Adobe nor Microsoft are prepared to cede the market to Java just because of their own weaknesses. Both will be looking to close any such technological gaps in an effort to get the design wins they need (with handset manufacturers and mobile operators) to win. While Microsoft and Adobe tool their offerings, Sun has one other small fungus eating away at the Java community that may need reconciliation before it can battle Adobe and Microsoft at full strength: the religious division amongst Java developers that's expressed through their loyalties to either the Eclipse or NetBeans integrated development environments. The two espouse Java philosophies that are different enough that the rift between the two camps is enough to keep all of Java's wood from being behind one arrowhead. With Adobe and Microsoft looming, that's not good.
In a round of post JavaOne e-mails with Sun's Schwartz, he encouraged me to run a poll to see which of the two IDEs was preferred by those developing mobile Java apps. If in fact NetBeans is the preferred IDE for mobile Java apps, and mobile RIAs are where the big battles will be fought in the next five to ten years, then NetBeans could indeed experience a resurgence in popularity. The again, counting the Eclipse Foundation out would be like counting out Adobe and Microsoft. So, without further adieu, here's that poll: