6 comments
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...
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.
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.
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.
Shai Almog reading that makes the Swing Lover in me more active and also the CN1 lover but....JavaFX has a few capabilities which are really attractive. And also in another view I have another Idea. Running out use Kolin and Compose as a Team can also lead to a monopolistic company world. Yes open Source but nobody can clutter this Job when Jetbrains one time will run out of Business. And we had a good chance with Ukraine war that this will be happened. There is also the same game with the Google Stuff. It'll die when Google decides to kill it. This is a high risk. Look on Twit. What a bright range of chances it had and what a wonderful world it was opening. And what is now the rest? Nothing left of this spirit.
Even Cn1 has this problem. It could be the one and only solution but for this it would have to grow much more. it does not and so there is a never getting tired team to support it. That is wonderful. But at the end: it has the same problems like others have. Too less movement in coding.
This platforms like Kolin can spend. At the moment while in hard skilled development of a group of thousands of Jetbrains Devs. Moved from Moscow and St. Petersburg to whole Europe, America and Asia. That was luck that it could be done in that moment while the company by self wasn't running in Moscow or St. Petersburg. if that would be so: it would be dead now.
Recognizing that shows me:only real open Source technology can survive long time and that also only when somebody maintains the code over the time. Why this is not happened in all projects all of us know: nobody can work for free all time. Even me. I have partially 40% of the work Open Source and the rest closed Source. Even I have to earn money with my Job. Without getting money my company will die fast.
JavaFX is maintained by Gluon which is let me say in my opinion not the best Idea and we can always say: we are thinking in the same way in this moment. But it is also maintained by Oracles few rest guys maintaining JavaFX and Bugfixes, by JproOne (especially here Mr. Kirmayer) and also I am doing much stuffs. But that will not help to survive the next ten years and also in this moment we have a comparable view on it. But is it better or worse than CN1?
The problem is that the only alternative running from scratch in java is Swing. Was that decision the best Idea? O god beware no. But we are in that situation which made using of JavaFX extremely complex for every programmer and at the end also for the end user. At least the Idea: sending a fat Jar and it will run on all platforms is dead for JavaFX while too many dependencies having to be installed and to to be seated up.
In my hope it is so that we may come back to the work concept. Send a fat jar and double click it. And please if then also on all platforms which would be possible even on IOS, Android and Co. But there is a big bunch of interests not to allow that for example on IOS. A Jailbreaked Version of IOS, an X11 Server and JavaSE compiled for the platform runs every Swing Application on a mobile Device. Makes it sense? We can discuss later.
But we come close to the problem with this thinking: Java has one problem. It can't be ruined on all platforms seamlessly. So Google runs on Dalvik but not SE. IOS has no VM allowed for the JVM. It is a complicated world. In that world JavaFX has even a more hard standing.
The UI System of CN1 could replace JavaFX in the first times but Oracle / Sun got too tired developing it until the end, until they would have a complete UI written entirely in Java and having not all the issues JavaFX brings but all the chances for using the environment on all platforms. That was and still is a great Idea. But there has to be much more Java inside. Too many libs can't be used, the Ecosystem is gutted of. could be a GraalVM solution a good way even for CN1? I guess yes. We gave it it a try and it was wonderful. Why? While we got out of the need of running only the Libs CN1 has implemented in parser VM. There are chances but also needs of money to get into a direction like this as far as I can see.
So what ever we do we have never a "best Solution" in one try. It is complex. Like standing at Allenby drive and asking your self: a beer or a fruit shake? But at the end you have to make a decision. I hope we will get into the right way of decisions and we will have at the end a world free of this limitations.
JavaFX has goods and bads like Swing has, like CN1 has, like all stuffs have. And it is not so popular as Swing is, I am for sure thinking you are right. But it is the same way popular as CN1 is. and exactly there is the problem. We have niche solutions which are in a good way usable for stuffs. And everybody has to find out which niche is for him the best.
From my perspective JavaFX was finished the second they moved it out of the JRE. It isn't cross platform (you need a different dependency for each platform) and so trying to use it feels extremely anti java