In November 2015 Dirk Lemmermann (Freelancer) and I (Alexander Casall) had a JavaOne session about JavaFX Real World Applications. The article “20 JavaFX real-world applications” summarizes the talk by showing the applications that we’ve talked about. In addition, I asked the contributors some questions regarding JavaFX: Here is the interview with Dirk Lemmermann.
Can you tell us about the highlights when you used JavaFX?
The CSS support, the property bindings, and the nice separation of controls and skins are my personnel highlights when using JavaFX. CSS and property bindings are a fantastic boost for productivity and the usage of skins makes sure there is a nice separation of concerns and you end up with clean code.
What is your general opinion about JavaFX?
I know that JavaFX had a really tough start with versions 1 and 2. When I was first asked by a customer of mine to migrate my FlexGantt framework from Swing to JavaFX I hesitated. The only reason I eventually did code in JavaFX was the fact that my customer was willing to pay for the work (as opposed to just the license). Luckily version 8 became available at that time (in 2013) and my initial resistance quickly faded away. Version 8 was a pleasure to work with and has steadily improved over time. I know that there are still many aspects in JavaFX that could be and must be improved but for me, with the desktop as the target platform, JavaFX is a big step forward compared to Swing and switching from Swing to JavaFX must be a no-brainer for most development teams.
JavaFX, Swing, SWT, HTML5 – Who wins – or better, when to use what?
I believe that SWT and Swing are excellent and very mature frameworks but that they have reached their end of life cycle. This does not mean that people will stop using them from one day to another. There will still be a lot of work for years to come that will be based on them. Existing Swing and SWT projects need to be maintained. Maintenance might mean bug fixing or adding new features. I still sell framework licenses for Swing every once in a while. So the remaining competitors for new projects are JavaFX and HTML5 and they both have their pros and cons, always relative to the project for which they are being evaluated. There are too many criteria to mention here, but if your application is an intranet client / server solution with a lot of data, limited number of users (in the hundreds), complex logic, and high interaction then JavaFX is the perfect choice as it allows you to implement the entire solution with a single language / technology that is also independent of any browser. JavaFX was not invented to replace Websites but to provide a high quality platform to support complex processes in medium and large enterprises.
How satisfied are you with the work of Oracle on JavaFX ?
In general I am very satisfied but there are sometimes areas where you think that the solution is only 90% complete. The TableView is probably the most dominant example for this. There is even internal code and comments in the TableView skin that hint that the missing 10% were very well on the radar of the Oracle engineers but that they just didn’t have enough time and / or resources to implement them all (e.g. fixed columns / rows).
What do you miss in the work with JavaFX?
Sometimes I have to work too much with skins to implement a feature that I would expect to be exposed on the controls themselves.