Friday, November 7, 2008

RIA Technology Perceptions in the Java Community

Several polls on java.net have interested me and the results of some of them have even surprised me. While these are not scientific polls and they could certainly be rigged by someone wanting to drive them to a certain suggestion, I don't think there are many developers interested in doing so. The comments can also be interesting. While the results of these polls aren't binding on anyone or any organization and, in fact, are probably ignored by decision makers, I believe that these poll results can provide a better idea of what technologies fellow Java developers are actually using and what they would like to use.

The current poll asks the question "What should be the primary focus of future Swing development?" The voting is still early (slightly fewer than 150 total votes so far), but the overwhelming favorite answer to this poll question (nearly 81% of the votes) is currently "[make] Swing a better stand-alone GUI library." Currently the second-place choice (just over 12% of votes) is for the option to improve JavaFX. Over 5% of the votes were for the option to not develop Swing any more.

UPDATE (14 November 2008): As of 14 November 2008, this poll had a total of 820 votes with 667 (81.3%) of them in favor of "making Swing a better stand-alone Swing GUI" and 103 votes (12.5%) favoring Sun focusing on supporting JavaFX." Sun definitely has an uphill battle to win over Java developers to JavaFX.

These results do not surprise me. For one, I fall in the camp of those who would rather see a once-dominant client-side technology improved and enhanced (such as has been done with Java SE 6 Update 10) rather than having resources and energy divided and diverted to yet another new language. I am not the only one who has been concerned about this. Frank Sommers addresses this in Has JavaFX Hurt Client-Side Java? Of course, Bruce Eckel pointed many Java developers to Flex "way back" in early 2007 with Hybridizing Java.

There have been several interesting blog entries and articles recently that seem to imply additional discontentment with the direction of client-side Java. These include Sharendipity's post We're Moving to Flash [from Java]: Here's Why, Sun Setting Down on the Core Swing, and JavaWorld's Are Applets Making a Comeback?.

Other java.net polls also help paint a picture of the RIA/Java developer landscape. In an earlier poll with the question Are you going to download the JavaFX SDK?, roughly one-third of the 728 responses were either "I already have" or "probably." Another 14% were "maybe" with roughly 38% answering "probably not" or "no." A poll that I think may back up my contention that many of us would have rather seen attention and resources focused on applets (and WebStart) is the results of the poll question What RIA platform do you prefer? Almost 1/4 of the respondents chose Java applets. The only higher response was for Ajax/DHTML (~30%). Flex got 17% of the votes and 10% of the responses were from people who don't like RIA.

I thought that the low point had occurred this week with Kirill Grouchnikov's post Sun Setting Down on the Core Swing. When I read that, my first reaction was, "This is exactly what I've been afraid of since hearing about the JavaFX being the 'big thing' at 2007 JavaOne and again at 2008 JavaOne. Sun has ditched Swing in favor of this new thing that has not even been delivered yet." This was especially frustrating after the release of Java SE 6 Update 10 and the Next Generation Java Plug-in had started to get me excited about the future of Swing and of applets again.

Fortunately, a detailed response from Josh Marinacci alleviated some of my fears and renewed some of my excitement about the direction of Swing and applets. Other encouraging posts include Java RIAs, Languages, and JavaFX and Wouldn't It Be Cool?. Of course, there are still lingering doubts and I'm still not convinced that a totally new JavaFX was necessary, but I do hope that I'll be pleasantly surprised in the near future. One of the big knocks on JavaFX has been the seemingly premature announcement of it at 2007 JavaOne and another edition of JavaOne coming and going before its first SDK release. I think we'll begin to have a better understanding of the potential (good or bad) of JavaFX when the JavaFX SDK 1.0 is released formerly. JavaFX is already behind Flex/Flash and DHTML/Ajax in the race to claim the hearts and minds of Java developers developing RIAs, so I believe that time is of the essence.

I love programming in Java and would like to see a Java-based solution work well for me on the client. However, I have to admit (as I've done many times in this blog) that Flex + Java EE has been a compelling combination and it may already be difficult to pry the rapidly growing number of those of us who do love the Flex/Java EE combination away from what works well for us.

I believe the polls on java.net have given us a fairly representative glimpse of how Java developers feel about Swing, client-side Java in general, and RIA development with Java. It will be interesting to see how future polls and their results document either renewed interest in Java applets and/or JavaFX or continued migration to other client technologies. As for the JavaFX SDK, I will be one of those who will download it and play with it. While I may have felt it wasn't the best decision at the time and was announced way too soon, I can't help but be curious about it. With much time and attention spent on it already, I hope that it will meet or even exceed my expectations.

No comments: