JavaFX: The Good and The Bad
What Should Oracle Do With JavaFX?
JavaFX has been the subject of much debate this week, and following up on Kirill Grouchnikov's controversial blog post on why JavaFX is a “train wreck,” Max Katz has posted a summary of not only where JavaFX has gone wrong, but also where JavaFX has got it right.
First up, the good stuff. In Katz's opinion, JavaFX is powerful and easy to use, once you get the hang of it, and the JavaFX binding feature is useful for simplifying UI development. “I have been working with JSF (JavaServer Faces) since its inception and I can tell you that using JavaFX Script to build the UI is probably simpler than using JSF,” he says. In order to switch to JavaFX, you may be required to learn a new language, but Katz is optimistic about the time it takes to get to grips with JavaFX, putting a two day time limit on navigating the learning curve. Also, he makes a valid point that the other languages for the JVM – Ruby, Scala, JSF – all require you to learn something new, so JavaFX is not alone here.
JavaFX may also have limited tooling support, but there is some evidence that this is changing: NetBeans 6.9 has the JavaFX Composer; the Exadel JavaFX Plugin for Eclipse is now at version 1.3.3; and IntelliJ have a plugin that supports development of JavaFX applications with IntelliJ IDE.
Then, there's the bad stuff – and there's plenty of it. In Katz's opinion, JavaFX's big failing is deployment. The deployment of JavaFX is too similar to Java, circa 1995. He cites numerous problems with JavaFX deployment: browser freezes; animated GIFs during loading that give you no indication of how the actual logging process is progressing; and a complete lack of error messages if the JavaFX app gets into difficulties during loading. Finding out why an app failed to load, isn't very friendly to the non-developer community, and involves launching the Java plugin console and then going on a exception/error hunt.
He has some advice for Oracle: “if Oracle needs to know how deployment should work, it’s very easy. Just look at Flash. Make it as simple and transparent as running a Flash application. That’s it.”
He concludes by advising Oracle to fix the deployment issue with JavaFX and issue a clear statement of intent on the future of JavaFX; or open source it and allow the community to take charge of the programming language. This last suggestion is a timely one - an online petition to open source JavaFX was posted earlier this week.