With Sun announcing JavaFX, Microsoft putting their strength behind Silverlight and Flex/Apollo going strong in the RIA space, the wars for UI domination has just begun. Perhaps I should say begun yet again! From Applets to *ServerPages to Ajax/RIA we have seen the user interface go through rapid evolution in the last 10 years or so. In the last couple of years the Ajax/RIA story has been the most prominent one and one technology that has suffered the most has been Java, with one and sundry blaming the poor interactivity of JSP, the complexity of JSF or the poor performance of the Applets. In fact there have been stories, articles and blogs about Hybridizing Java, about bringing in scripting languages into the JVM or about getting rid of our good old trusted friend altogether. However, with the introduction of JavaFX there is a completely new direction and a new set of questions. Is JavaFX a superior alternative to current Ajax/RIA technologies? Is it just a scripting face to the old options? Will it bring the desktop and web UI technologies closer? Will it address the next generation of UI requirements - video, svg, voice and more? Will it evolve rapidly with community participation, thus having implicit approval of the masses? Will it be Sun’s new recipe for success?
In my original post I did not mention JavaScript and DHTML as an alternative and I think that is not fair, since a lot of the rich web is made up of that. In this context, you may want to read this post on JavaScript, which speaks about its viability as the dominant web2.0 language/platform - http://www.codinghorror.com/blog/archives/000857.html
Matching up to the user interface wish list may perhaps be the important factor that will govern the final winner or winner(s) (plurality is the way of life in technology now!). That brings us to a good question - What is the ultimate user interface wish list? Should there be one wish list or should we have two - one that addresses the end user wishes and one that makes the developers happy? Are all solutions satisfying both these wish lists? If yes, then to what extent?



"the poor performance of the Applets"
I assume you mean startup performance. The performance of running applets completely eclipses Flash by several orders of magnitude. I'm glad Sun seem to be finally attempting to address the (cold) startup time issue!
Media!! The reason Flash is so great is that it supports more rich media. Even Flash is limited in the codecs it can use, but _every_ sharing site... Uses flash for its player. Pandora music player? Flash.
That, and the fact that Flash UIs can actually look nice, as opposed to crusty Swing components.
It's really sad, that Sun has had the technology and potential to dominate this market all along, and they never utilized it. Java desktop -- bust. Applets? J2ME? All of those spaces are dominated by other platforms.
If Sun finally gets their act together and makes Java do as well in those areas as it has in the enterprise space... Then we'll have something to be proud of.
for the open source crowd, the answer's pretty clear now - Java+Linux are the only real story. Everything else has got someone else's hooks in it.
The performance of running applets completely eclipses Flash by several orders of magnitude.
Hi Anonymous,
This was true before Flex 2 and Flash 9, but now that we also have a JIT enabled VM Flex applications are in many cases more responsive/interactive than Swing apps. Also, how, when, where is Sun fixing the startup performance problem? I must have missed that announcement.
-James (Adobe)
"That, and the fact that Flash UIs can actually look nice, as opposed to crusty Swing components."
The Java2D API, used by Swing, is quite powerful and can look comparible to Flash UIs. The real problem isn't that Java can't look nice, it's that you write it in Java, which most graphics artists are not going to learn. JavaFX (aka F3) is really a more approachable way for non-programmers to create good looking UI's using Java2D.
Chet Haase in his blog illustrates what Sun is doing to make the lauch of Java applications and Applets faster. Here is the link - http://weblogs.java.net/blog/chet/archive/2007/05/consumer_jre_le.html
If I remember correctly, Danny Coward in his JavaSE session at JavaOne also spoke about this.