This is part two of my JavaOne 2010 review and thoughts. To read part one, click here.
What happened with JavaFX?
As everyone knows by now, Oracle is making significant changes to JavaFX. Oracle is stopping any further development of JavaFX Script. Instead, it will develop Java APIs which will become a part of JavaFX 2.0 to be released in the second half of 2011. So, instead of using JavaFX Script to develop rich Java applications, you will use the new Java API. If you followed Twitter during JavaOne, many people called it the next Swing or Swing++ or something similar. No matter what you call it, you will be able to open your favorite Java IDE and start creating JavaFX applications.
Oracle is finally making significant changes to the platform which is very good. I blogged about the future of JavaFX in late July and said that Oracle should either start pushing JavaFX hard or just discontinue it (or let the community drive it). I said Oracle had about 6-12 months to do this. I doubt they listened to me, but Oracle is definitely going to push JavaFX, although with significant changes (dropping script) from the state it was in when I blogged. You can view the road map for JavaFX 2.0.
I’m happy to see JavaFX getting another chance because I still believe it’s a great technology for creating rich user interfaces.
Exadel and JavaFX
How was Exadel involved with JavaFX? In two ways. First, we had the Exadel JavaFX Plug-in for Eclipse and Exadel Flamingo: both open source. Flamingo allows connecting JavaFX to server-side technologies such as Java EE 6, Seam, and Spring. Flamingo also supports Flex, Swing, and JavaME connecting to these same technologies.
What’s going to happen to these products? The most affected product is our JavaFX plug-in for Eclipse. The JavaFX Script editor was one of the main features in the plug-in. With Oracle stopping JavaFX Script development, there is little value for us to continue developing the plug-in. So, as of now it’s on hold. There is some good news. Steve Chin is launching a new project and language called Visage. The language is very closely based on JavaFX script and will need a good Eclipse-based tooling. This is one area where our plug-in could get a new lease on life.
Now to Flamingo. The Flamingo situation is a little better. Once the JavaFX 2.0 API is out, we will quickly update Flamingo to work with the new API. Even today Flamingo works with Swing, so updating it to work with the new API should be simple. Enterprise applications are going to be very important and a framework like Flamingo is needed to easily connect the UI with the enterprise server side. As Amy Fowler said in her blog post A Heartfelt Ramble on Swing & JavaFX: “Oracle sells a lot of applications, and those applications will need great UIs too.”
JavaFX 1.x was launched during JavaOne 2007 and in three years didn’t gain a lot of momentum. The JavaFX community seemed to grow and was rather vocal but no real enterprise applications were developed or deployed anywhere. If you followed JavaFX before the JavaOne 2010 announcement and changes, then you know that every couple of months an article or a blog post would appear predicting the death of JavaFX and how it’s a bad technology. Many just wanted JavaFX to go away for one reason or another.
Once the news about JavaFX 2.0 was made public, I was happy to see that almost everyone was happy with the changes. It looked like people suddenly liked JavaFX with the new changes. It was somewhat surprising, because, just before the announcement, many people disliked JavaFX.
It almost looks like JavaFX Script might have been guilty of making JavaFX disliked. I’m still not sure why JavaFX script was disliked so much. It was a really great DSL, with a powerful binding feature for building user interfaces. As I said here, no one expresses resentment when one needs to learn MXML (Flex) or Groovy or Scala languages or any other language. One person said that no one liked JavaFX because it was created by Sun. Maybe.
In my opinion, JavaFX Script maybe played a role but rather a small one. I think JavaFX failed to gain any significant momentum mainly because of deployment problems which I described here. Deployment was never simple. Running an applet could freeze the browser for a few seconds, present you with a number of scary security dialogs, and maybe even launch. If you were not that lucky, you would see the Java logo as an animated GIF. Unfortunately, at JavaOne, there was very little news about changes to deployment. I do know from other sources that plans exist to overhaul deployment in a major way. I guess we will have to see.
As another person said: Oracle should get its own browser and make JavaFX start there in under a second. (Firefox, are you listening?).
See you at JavaOne 2011.