Sign in
Log inSign up
Jeannot Muller

70 reads

4 comments

Shai Almog
Shai Almog
Apr 19, 2023

Java FX isn't popular now. It never was. I wrote this in 2015 and nothing really changed since then: dzone.com/articles/should-oracle-spring-cl…

If anything, things got worse for FX...

1
·
·3 replies
Jeannot Muller
Jeannot Muller
Author
·Apr 19, 2023

Unfortunately, you are correct, particularly regarding your statement: "I have spent several days attempting to find a potential alternative to JavaFX for desktop applications, but sadly, there are no serious contenders at this moment."

Outside the Java ecosystem, there are only a very few alternatives for developing cross-platform desktop applications. In my opinion, Xojo, LiveCode, Flutter, and other alternatives are flawed in many aspects, so your best bet might be using wrappers for HTML/CSS/JS. Tauri, as mentioned, is promising but can be limiting if you don't fully embrace the "HTML everywhere" approach. You were also correct in predicting that JavaScript-based solutions would gain traction, as they have and they continue to do so.

QT isn't an option for me either, and while Swing isn't dead, it's certainly stagnating and meanwhile outdated. The UI frameworks for Rust or Go show promise and are useful for smaller tools, but I can't envision them coming close to Swing or JavaFX anytime soon.

Nevertheless, although it may seem cynical, I appreciate that there are at least signs of life in the JavaFX realm. Is this sufficient to revive your hope "[...] Maybe it will prompt someone at Oracle to finally allocate the necessary resources to transform JavaFX into a viable tool [...]"? Well, sadly I'm not convinced about that either.

My point is simply that if you develop with JavaFX in 2023, you will at least get something usable. Is it perfect? Unfortunately not. Does it feel good? Usually not, especially because you get the feeling that the community doesn't care anymore. In this respect, I consider every sign of life to be a blessing, even if there is a clear statement in the video that, for example, a full-blown rich text editor is not within the scope. Although I don't need a rich text editor, such statements should dampen our hopes. Sadly, none of this helps if you need desktop development and native development with multiple languages is not an option and especially if you want to develop with ONE programming language.

At least with JavaFX, I have the advantage of maintaining stable code beneath the UI, which, in my humble opinion, is quite distinct from many other UI alternatives. This is particularly true when libraries are abandoned more quickly than they were initially hyped.

In any case, thanks for your contribution, maybe miracles will still happen and we will be surprised. At the moment I would be satisfied if they managed to switch from OpenGL to macOS promptly.

·
Shai Almog
Shai Almog
Apr 19, 2023

Jeannot Muller Unfortunately this is going in the opposite direction. Oracle removed FX from the JDK after I wrote that.

JetBrains removed the small amount of usage of JavaFX from their IDE and replaced it with JCEF. We followed suite for Codename One. The trend is pretty bleak and there are no signs of it changing.

When I wrote that Flutter didn't exit. I don't like Flutter at all, but its growth proved that there's a desire for a mobile/desktop native solution. That makes the failure of JavaFX even more pronounced.

I'm more positive about solutions like desktop compose. It is lead by a company that knows how to build user interfaces and developer friendly tooling. It's time to let go of FX as a failed experiment.

1
·
Jeannot Muller
Jeannot Muller
Author
·Apr 19, 2023

Shai Almog

Thank you very much for the hint. I really didn't have Compose on my screen for desktop. I'll definitely take a look at it, especially since I work with IntelliJ anyway.

We definitely agree on Flutter 🥲, maybe I'm being unfair, but it really didn't impress me but I had anyways more the desktop part in mind, for sole mobile dev, it might very well be an option but that's not my focus.

1
·