JavaFX 11 under the microscope: “There’s a lot more going on with JavaFX than anyone gives it credit for”
Now that JavaFX 11 is here and a new era has begun, it’s time to take a look back and a leap forward. In the last part of the interview series, our interviewees reveal if (and why) they would choose JavaFX instead of other UI technologies and if there’s a place for JavaFX on desktop, mobile and embedded.
“I’m excited about JavaFX!”
It’s time to meet the standalone JavaFX 11 release. You can download it by going to the openjfx.io site or by accessing javafx modules from maven central at openjfx:javafx-COMPONENT:11 (where COMPONENT is one of base, graphics, controls, and so forth), according to the message announcing the release.
Note: JavaFX 11 requires either JDK 10 (which must be an OpenJDK build) or JDK 11. JDK 11 is recommended. You can find the release notes for JavaFX 11 here.
You can develop JavaFX applications in two ways:
- Download and install the JavaFX SDK
- Use a build system (e.g. maven/gradle) to download the required modules from Maven Central.
A recent early access version of the Java 11 SDK is required for both options.
Now that JavaFX 11 is here and a new era has begun, it’s time to have a look at what’s changed and what’s stayed the same. In the first part of this interview series, we invited Johan Vos, Jonathan Giles, Dirk Lemmermann and Donald Smith to weigh in on the latest release, the difference between a JavaFX that’s been decoupled from the JDK and the old one under Oracle’s stewardship, how the process has changed and how the community should adjust to the latest developments.
In the second part, our interviewees weigh in on the differences (if any!) between the “new” JavaFX and the “old” one. Just to give you an idea of what was included in the second part, here is what Donald Smith told us:
The difference should be that now you simply treat JavaFX as you would any library that doesn’t ship with the JDK.
In the last part of the interview series, our interviewees weigh in on the fact that JavaFX has been decoupled from the JDK, they reveal if (and why) they would choose JavaFX instead of other UI technologies and if there’s a place for JavaFX on desktop, mobile and embedded.
Don’t miss the first two parts of the JavaFX 11 interview series:
4 answers: Are you thinking of switching to another UI technology now that JavaFX has been decoupled from the JDK?
Meet the interviewees
Johan Vos: No, on the contrary.
Jonathan Giles: No, of course not! JavaFX is an excellent choice for cross-platform user interface development. Not only does it run across Windows, MacOS, and Linux, it also runs on iOS, Android, and Raspberry Pi. That’s a single programming language and UI toolkit, hitting pretty much all users. That’s really cool and super useful.
The fact that it is not being bundled with the JDK anymore actually makes it so much more attractive to me.
Dirk Lemmermann: Definitely not. I love working with JavaFX and the fact that it is not being bundled with the JDK anymore does not change that at all, it actually makes it so much more attractive to me as this holds the promise of accelerated development and growth.
Donald Smith: Oracle has no plans to change any of its existing uses of UI technology, this is all very much business as usual.
Why would you use JavaFX instead of other UI technologies?
Johan Vos: Mainly because it is Java. As one of the 12 million Java developers, I want to leverage my existing skills for using UI applications rather than learning a new language. Also, Java has a very strong security model, and especially for end-user applications, privacy and security are getting more and more important.
The maturity and stability of Java make it a better choice for applications that require privacy, security, maintainability
Dirk Lemmermann: I guess we are talking about HTML as its main competitor here? The big advantage of HTML is the simplicity when it comes to deployment. An updated application becomes available to all users immediately. No need to download or install anything locally.
However, the deployment is also its biggest disadvantage. An HTML application does not come with its runtime environment bundled into it as is the case for JavaFX applications. HTML applications require a browser and there are many different browsers out there and for each one many different versions. The publisher of a web application has to support all of them and the list of browsers and their versions is constantly growing. My customers and I choose JavaFX because it allows us to create an application bundle that can stay unchanged for many years and will execute just fine. I never get a customer call asking me to update anything because they have decided to move from browser X to browser Y or from browser X version 1 to browser X version 2.
But there are also other reasons for using JavaFX, one of them being that it is so much fun. The API has been beautifully designed and is a pleasure to work with. Property bindings, CSS styling, and hardware acceleration ensure that any developer can produce commercial grade applications.
Donald Smith: JavaFX provides a full-featured Graphical User Interface that allows applications to easily create rich applications that run across a variety of platforms.
SEE ALSO: JavaFX 11 is here!
Do you see a place for JavaFX on desktop, mobile, embedded?
Johan Vos: Absolutely. People want to access data and functionality, regardless if they are on desktop, mobile and embedded. In the end, most client applications need to connect to enterprise/cloud applications. Using Java is a great choice for a platform-independent solution, saving lots of time over a solution where each platform requires a different technology.
Jonathan Giles: Yes. I think JavaFX enables Java developers to build a good-looking, highly styleable, and highly performant user interface in the language that they are already familiar with. It doesn’t force the user to familiarise themselves with different programming languages and idioms simply to get their software onto multiple platforms.
I’m excited about JavaFX, and based on my experience dealing with users of JavaFX all around the world, I think there is a lot more going on with JavaFX than anyone gives it credit for.
When you use JavaFX you save a lot of time and money because you can deploy the exact same application everywhere.
Dirk Lemmermann: The fact that JavaFX runs on all three of these platforms (and even the web when you use JPRO) is the reason why I see a place for it on all of them. When you use JavaFX you save a lot of time and money because you can deploy the exact same application everywhere. No need for code changes.
Obviously, certain layout aspects need to be considered because of space constraints on mobile and usually also on embedded devices, but the level of reuse is almost 100%. Similar things can be said about HTML but the past has shown that users do not want HTML on their phones. They want apps and JavaFX in combination with Gluon allows you to do just that.
Donald Smith: We open sourced JavaFX many years ago at openjfx in OpenJDK and have been encouraged by the many ways it’s being used.
If you’d like to learn more about JavaFX, including how to program JavaFX applications and how to bring your Java apps to mobile platforms such as iOS or Android with Gluon, don’t miss JavaFX Days Zurich in the first week of December.