Johan Vos started to work with Java in 1995. He worked on the Java Linux port with the Blackdown team. He has been doing Java consulting and development for a number of customers in completely different areas. Over the years, he has been active in a number of Java-based community projects, e.g. OSGi, the Glassfish project and Johan is a DZone MVB and is not an employee of DZone and has posted 22 posts at DZone. You can read more from them at their website. View Full User Profile

My opinion about JavaFX 2.0

  • submit to reddit

It's been a few weeks since Oracle announced the plans with JavaFX. The JavaFX 2010-2011 roadmap is described at the JavaFX website. As I expected, there were many discussions and opinions in the blogosphere after the announcement. I took some time to read opinions, and to make my own impact estimations.


In general, I always applaud the move towards more Java. I am a Java developer, so the more Java the better for me. There are many reasons why I like JavaFX to be an integral part of the Java runtime. Every developer probably has his own list, here is mine:

  • Access the latest and greatest JDK features
  • Generics and Annotations can be used in JavaFX
  • Less confusion in concepts (should I make this a Java or JavaFX class?)
  • Less confusion in grammar (Foo foo = new Foo() or Foo {})
  • Existing tools for Java work for JavaFX (i.e. format, auto-complete,...)
  • No separate download for end-users
Apart from the move to Java, one of the major things is Prism. We heard a lot about Prism already, and my personal summary is that Prism is "THE graphical engine for applications in 2010+", where AWT was the graphical engine in Java in the late nineties.


For the projects I am working on, the new roadmap is a positive thing. The major drawback of the roadmap is the timeline. Developing in JavaFX 1.3.1 is still encouraged, and Oracle will probably provide some script or guidelines to migrate JavaFX 1.3.1 code to JavaFX 2.0.
But if Oracle wants to be a winner in the RIA market, things should happen faster. I understand quality matters, and I fully agree. One of the critics I heard about "good old Sun" is that Sun often over-promised and couldn't deliver. I partly agree with that. A number of in-house, closed door projects were not as good as promised. But, and here I go again with my comparison, look at the Glassfish project.

Lessons learned from the Glassfish project

From the very beginning, the Glassfish team created and communicated a roadmap. The goals were clear from day 1, but also the architectural documents, discussions and code was made available.
Having the goals clear creates high expectations from users and customers. Having the code and discussions open, allows developers to help, and it generates early feedback. When Glassfish x.y is released, there won't be negative surprises, since it is something that was already available in the community during development. Developers clearly know what is going on. If they need things faster, they are free to help and contribute. Of course, the quality assurance is still in internal hands. Not everyone is allowed to commit patches to the core functionality. But that is not needed. The developer community is allowed to help, and it is up to Oracle to decide what do with the code.

I strongly encourage the same concept for JavaFX development. The JavaFX team at Oracle is great, lots of clever people. I was glad I could talk with some of the core JavaFX developers (e.g. Richard Bair, Jasper Potts, Jonathan Giles and Amy Fowler) during JavaOne. Those are excellent people doing a great job. Add the power of the development community to this team, and JavaFX 2.0 will be a success.

JavaFX script and Visage

The JavaFX community has mixed feelings on the fact that Oracle won't continue the investment in JavaFX script. That means that Oracle won't continue to develop the JavaFX Script Compiler. Some people like this decision, others are extremely disappointed.
That sounds very reasonable. JavaFX script is a DSL with some specific characteristics. I don't believe there is a single language that is "best" for all developers. The way developers think, the way they see (or don't see) concepts and structures makes one or another language the most suitable to them. Some people see feature X of Scala as an advantage, others see it as a disadvantage. There is no "best" answer.

At JavaOne, Stephen Chin announced Visage, a "new" DSL that is actually the continuation of JavaFX script with modifications. The great thing about this is that it is a DSL that is developed in the Open Source, with input from the community.
I am convinced that Visage is a great language for at least a number of developers. One of the good things about JavaFX 2.0 (and Java in general) is the increasing support for DSL's that can leverage the Java platform. Developers use the language of their own choose (Java, Visage, Scala,...) and their code runs on the Java platform. That is an incredible strong point of the Java Platform.

Overall, I am happy with the JavaFX 2.0 plans. But I am convinced the developer community should be involved, in order to increase the chances on success.



Published at DZone with permission of Johan Vos, author and DZone MVB.

(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)


Nicolas Bousquet replied on Wed, 2011/08/03 - 2:24pm

Honestly Java Fx is very, very late. The adventage Java has on the server isn't on the desktop because you then begin to configure, install and update the JVM. And it is not that easy to deploy and maintain on many machine. Include the app that still isn't support the latest JRE and the one that require it to work.

 Yes last Java Fx will support HTML5/CSS rendering but there again, it's late. GWT have done it for years, and brilliantly.

Java Fx is nice if you really view it as the next swing, and consider it for the same kind of usage.


Mike P(Okidoky) replied on Thu, 2011/08/04 - 9:02am

Nicolas, JavaFx might be very late and it finally containing a Webkit based html renderer (thanks to KDE/KHTML - which went almost completely unrewarded/unrecognized, then Apple), and deploying as Applet might be unstable and unpredictable, there is the option of using WebStart, which works pretty decent and is very suitable for intranet or private solutions for companies. GWT is not walk in the park either. My experiences with GWT have been so so, with endless and I mean endless strange unexpected errors, bizarre learning curves, *slow* development, and anomalies and rogue strange surprises so bad that I haven't seen for over 10 years at least. For a private company solution, if WebStart + JavaFx is an option, it wins hands down over GWT IMO.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.