Saturday, December 13, 2008

Java RIA Momentum

In my previous blog post, I briefly discussed Flex's growing circle of friends that gained a powerful friend with the addition of the Spring Framework and the announcement of the Spring BlazeDS Integration project. To make things even more interesting, this announcement has been made in the same month as the release of JavaFX 1.0 SDK and as the announcement that JBoss will include Google Web Toolkit (GWT) as part of its middleware offerings. Besides the recent announcements of Flex+Spring collaboration, JBoss+GWT collaboration, and the release of JavaFX 1.0 SDK, there is also increased coverage of forthcoming JSF 2.0. All of these announcements are evidence of the battle for Java-based RIA supremacy.

The concept of momentum applies to just about any competitive sporting event one can imagine and often applies to the software development world as well. One interesting point about momentum is that it is difficult to measure quantitatively and is often something we "feel". Another interesting observation related to momentum is that it does not necessarily imply who is winning the overall particular sporting event at this moment, but rather describes who seems to be playing better currently. Even a team or individual losing the match or game might be said to have the momentum if that team or individual is narrowing the difference in score. A team that is widening its lead similarly is often said to have the momentum.

I see similarities in this somewhat nebulous concept of "momentum" in the trends of the software development world as well. Programming languages, approaches and methodologies, and so forth enjoy and lose momentum. For this blog post, I specifically want to focus on the momentum I have observed in the Java-based RIA world. Just as with momentum in sporting events, it is difficult to measure momentum, but it is something that I "feel" based on discussions with other Java developers, on attendance at conferences, and on frequent reading of related blog entries.

From what I have observed in attending conferences such as Colorado Software Summit 2008, in reading blogs, and in talking to fellow self-labeled Java developers is that both Flex and Google Web Toolkit seem to have significant momentum in the Java-based RIA world at this point. JSF seems to have lost significant momentum, though that could change with the 2.0 release. Sun is spending significant resources and energy to try to re-energize momentum for JavaFX that I believe (at least true for me) was damaged by the early announcement at 2007 JavaOne without a 1.0 SDK release until December 2008.

In many ways, the same thing happened to me with JSF; the momentum seemed to be significantly limited due to long delays on the delivering of its promises. I remember hearing about JSF being the next great thing during my development with Struts in early 2001, but it seemed to be many years before it was really ready for prime time. Even now, many are saying that 2.0 (2009) will finally bring JSF to where it needs to be.

When watching sporting events, we can look at the scoreboard to determine who is winning the overall competition (which may not be the team or individual with the current momentum). It is more difficult to see what is winning currently in the Java+RIA arena, but it is interesting to speculate on where current momentum and future potential momentum changes will take the Java-based RIA community in the future. Based on what I "feel" when I talk to others about Java development of RIAs, the current momentum seems to be in Flex's favor (as witnessed by many different events such as the Spring+Flex integration announcement and the defections of many high-profile Swing developers to Adobe) and in GWT's favor (as witnessed by several events including the JBoss+GWT collaboration announcement).

Another category of RIA development that could be argued to be enjoying current momentum is direct Ajax/JavaScript development. Like Flex, this approach is not Java-specific, but is used by Java developers. Current momentum does not guarantee a victory, but it is certainly something every competitor wants. An argument could be made that the current participant that is "winning" is the direct Ajax/JavaScript approach and the real question may be if the growing momentum of Flex, GWT, JavaFX, and other approaches can overtake that lead.

SpringSource and Red Hat/JBoss are major players in the Java-oriented open source community. Their collaborative efforts with Adobe (Flex) and Google (GWT) respectively indicates the momentum enjoyed by Flex and GWT in the Java development world. While using straight Ajax/JavaScript on the front-end with Java on the back-end is also currently popular, Flex and GWT seem to be taking advantage of a common desire among many Java developers to avoid direct contact with JavaScript and DOM browser idiosyncrasies whenever possible.

Finally, all of this is complicated by that fact that many of these approaches can, in fact, be used together. For example, Flex and Ajax/JavaScript can be used together (such as with the Flex-Ajax Bridge). Similarly, there are efforts underway to integrate Flex and JSF such as the JSF Flex Project. Similarly, there are projects surrounding integration of GWT and JSF.

To make matters even more complicated, there are other competitors trying to enter the competition. These include Flash/Flex-like competitors such as Silverlight and Curl. Silverlight, in particular, has many things in its favor, but winning the hearts and minds of Java developers seems like a long-shot. Java developers wishing to developer RIAs might also be interested in the next-generation Java plug-in (the return of the applet) or in one of the numerous Java-based frameworks such as Galileo and Pivot.

In summary and based on my own observations, I'd say that direct Ajax/JavaScript solutions are probably currently winning in terms of number of RIAs being developed with Java on the back-end, but that the momentum is shifting toward Java developers using Flex or GWT. However, the competition is not over yet. The good news is that the RIA options for the Java developer continue to get more diverse and productive.

No comments: