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).
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.