Yakov Fain blogged that Java on the client has no chance succeeding with the current complicated installation process. Unfortunately I agree. But, I also think there is even a bigger and very closely related problem, launching Java client applications. I blogged about it here. Launching Java applications on the client could be very challenging.
With JavaFX 2.0 undergoing dramatic changes (JavaFX script is dropped), we are going to start looking early next year how to update Exadel JavaFX Plug-in for Eclipse and Exadel Flamingo to work with new JavaFX. With JavaFX script being dropped, applications will be developed using Java API. I get a feeling that a few years ago it was popular to use declarative languages to create user interfaces and now we are going back to using Java. Maybe GWT has something to do with that. Two things must happen for JavaFX or Java on the client to succeed: easy virtual machine install and easy deployment. Even with major, and I believe positive changes in JavaFX 2.0, without the two things I mentioned above, it’s going to lose the battle against plug-in free browser applications.
I still find one thing very interesting. With JavaFX 1.x out for about three years during which it didn’t produce any real applications and JavaFX 2.0 is still in development (and with somewhat unclear future), you still get JavaFX presented at various conferences. Just last month at Devoxx, JavaFX was covered by 4-5 sessions. The community is strong. At the same time, you never hear HTML5 vs Java client, it’s always against Flash. So again, client Java is kind of there but also not there.
JavaFX 2.0 will use Java APIs instead of JavaFX script to build user interfaces. If you are curious what’s going happen with Exadel JavaFX Plug-in for Eclipse, I blogged about it in JavaOne 2010: what happened with JavaFX (part 2) post. Here is the excerpt on the plug-in (and Flamingo):
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.”
The latest version of JavaFX Plug-in for Eclipse can be downloaded from exadel.org.
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.
Exadel released new JavaFX Plug-in for Eclipse version 1.3.5. The two major features are:
- Setting VM parameters for JavaFX application
- Option to specify custom JNLP arguments
To download the latest version or install via Eclipse update, go to http://exadel.org/javafxplugin.
There are also a number of bug fixes and more improvements to the application launcher. You can see what else changed in the Release Notes (make sure to read changes about launch configuration).
To see what features and bug fixes or even suggest your own are making it into the next version, click here. Don’t forget the forum for any other questions/comments.
Exadel has released Exadel JavaFX Plug-in for Eclipse version 1.3.4. The biggest feature in this release is Organize Imports (just like in Java editor).
The class for Text node is missing, pressing Ctrl+Shift+O, will display the dialog where the correct class can be selected:
You can also invoke Organize Imports from the editor context menu (right-click anywhere in the editor and select Organize Imports).
Exadel JavaFX Plug-in for Eclipse version 1.3.3 introduced a handy feature which lets you quickly navigate to any part of JavaFX script. It works like an Outline view in a popup. The feature is invoked when in JavaFX editor by pressing Ctrl-O.
Pressing Ctrl-O and navigating through the outline using up and down arrows:
Pressing Ctrl-O and typing the name of a variable:
Another small update to Exadel JavaFX Plug-in for Eclipse.
As always, let us know what features you would like to see added. You can post them on the forum or add directly to Jira.