• Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other Pie Elite all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Jeanne Boyarsky
  • Ron McLeod
  • Paul Clapham
  • Liutauras Vilda
Sheriffs:
  • paul wheaton
  • Rob Spoor
  • Devaka Cooray
Saloon Keepers:
  • Stephan van Hulst
  • Tim Holloway
  • Carey Brown
  • Frits Walraven
  • Tim Moores
Bartenders:
  • Mikalai Zaikin

Is JavaFX Dead?

 
Greenhorn
Posts: 17
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Hello to everybody....
For the past year i have being working with JavaFX for diploma thesis and it played a more than substantial part in the final outcome...
Naturally i was planning to get a even more familiar for my future plans and learn it even more ....
BUT....
i read a lot of posts around the Net that JavaFX is rather dead and probably it would get abandoned in the coming releases of Java...
So i am asking ...should i continue to work with JavaFX or abandon it in favor of another (Swing ?)
 
Bartender
Posts: 1210
25
Android Python PHP C++ Java Linux
  • Likes 1
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Calling it dead would be extreme. Oracle has not pulled the plug nor has it said officially that it'll do so.
It's true that Oracle has laid off some JavaFX evangelists, discontinued Scenebuilder official binaries and perhaps other negative actions I'm not aware of.

But the open source master which Oracle too packages in its official JRE is still under active development.
So, literally speaking, no it's not dead. I'd say it's in a similar limbo as Swing, JMF and many other frameworks, where efforts of 3rd parties, users and maintainers outweigh Oracle's own.

IMO, if you are able to build great products with it, continue using it.
All desktop toolkits - regardless of language - have turned into niche software due to web and mobile, and JavaFX is no different.

But if you are asking about it from an employment skills point of view, I feel you should not specialize in it.
 
John Tsioumpris
Greenhorn
Posts: 17
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Given the fact that i got a single answer and the number of threads/answers compared to other Java technologies i think is more than safe to consider JavaFX dead for sure and move on.....too bad i wasted so much time getting into this technology...
 
Ranch Hand
Posts: 115
11
IntelliJ IDE Clojure Java
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
I can't imagine them killing JavaFX any time soon, not after integrating it into the JDK for Java 8. There's a lot about FX that's an improvement over Swing, so it wouldn't make sense for them to abandon the better GUI toolkit. It's possible that Oracle might scale back their involvement in evangelizing or on building tools like Scene Builder, but I suppose third parties could pick up the slack on that.

Maybe I haven't been looking in the right places, but I can't recall any big hype about Swing for a long, long time, and that's been chugging along just fine (until JavaFX was declared the shiny new thing).

Don't forget that Java 8 is still relatively new, and IMO, JavaFX isn't worth migrating to until you have Java 8. Big companies will definitely need time to migrate if they choose to do that, and third parties need time to build up the surrounding ecosystem.
 
John Tsioumpris
Greenhorn
Posts: 17
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Jason Bullers wrote: Java 8 is still relatively new, and IMO, JavaFX isn't worth migrating to until you have Java 8.


Well you are right but a winner is getting the first place right from the start...to me i see very limited threads,few books and somewhat indifference from the Oracle's side...
The abandonment of Scene Builder was a clear indication that JavaFX is not getting the attention it should...
well HTML5/CSS can handle most of the current UI demands and its universal so i guess we can kiss desktop GUIs goodbye....i know i must do so...
Too bad that JavaFX/Scene Bulder was a clean and easy solution for great desktop apps....
 
Karthik Shiraly
Bartender
Posts: 1210
25
Android Python PHP C++ Java Linux
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Too bad that JavaFX/Scene Bulder was a clean and easy solution for great desktop apps....


What exactly about Oracle's dithering makes you hesitant to use JavaFX? Is it the possible lack of support or bug fixing in future?
I might have agreed if JavaFX was closed source, but it's completely open source with a GPL license.
Even if Oracle pulls out completely and stops all development, they can't retroactively revoke the license already granted upto that version.
Anybody who likes it can pick it up and continue developing.
As I see it, it's a good framework, it's completely open source (even the native graphics layer), and it has an active, if small, development community. Honestly, I fail to see the problem here.
Of course, if you have already made up your mind, that's ok too.
 
Ranch Hand
Posts: 165
12
  • Likes 1
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
I'd be disappointed if JavaFX went away because I felt the v8 release was a big improvement over v2. The removal of Scenebuilder binaries is hard to fathom because I thought that was a significant part of FX's advance and its a strange signal to put out there whilst trying to persuade people to jump on board.
 
John Tsioumpris
Greenhorn
Posts: 17
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Karthik Shiraly wrote: if you have already made up your mind, that's ok too.


I can't say that i have made my mind but i am in the middle of a crossroad and i have a decision to make ....
either stick to Java/FX or turn to NodeJs/Js ...i am afraid i am rather old and i don't have room for a 2nd chance
 
Karthik Shiraly
Bartender
Posts: 1210
25
Android Python PHP C++ Java Linux
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

John Tsioumpris wrote:I can't say that i have made my mind but i am in the middle of a crossroad and i have a decision to make ....
either stick to Java/FX or turn to NodeJs/Js ...i am afraid i am rather old and i don't have room for a 2nd chance


From an employability / relevance point of view, my personal opinion is to look towards JS / NodeJS and other web technologies in general.
I suggest you also put up a post in our Jobs Discussion forum regarding what web technologies to specialize in.
One good news is, if you personally like desktop apps (like me), you can combine your already acquired JavaFX skills with your new JS skills in the WebView control, and write hybrid apps.
 
John Tsioumpris
Greenhorn
Posts: 17
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Well another bad sign
http://www.oracle.com/webfolder/technetwork/jet/index.html
 
Saloon Keeper
Posts: 7585
176
  • Likes 1
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
I don't think the open source nature of it makes any difference at this point. Client-side Java is dead in general, irrespective of the framework it runs. Security concerns of the JVM have finished it off. Some companies may continue to use it internally on carefully controlled and updated machines, but not for anything that's meant for the general public.
 
Karthik Shiraly
Bartender
Posts: 1210
25
Android Python PHP C++ Java Linux
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
I don't feel JVM security was ever an issue for the general public. It was Flash that provided the rich web experience for most of the last decade. Applets never became popular. When JVM vulnerabilities became a notorious issue, all 3 major browsers decided improving JVM security was just not worth the effort and simply downgraded their support for embedded JVM, making applets history.

I can't remember even a single java desktop or applet application that became popular with the general public, even in the heydays of Java and desktops.
It appears to me as if JavaFX is being held up to a mythical standard that Swing never reached - not even close - despite nearly a decade of popularity in the enterprise space.

My data is purely anecdotal, but I feel java and Swing became popular in the enterprise due to the prevailing development environment then. The period around 95-2007 was when Microsoft Windows desktop was king. The choice was between their desktop frameworks such as C++ based MFC or VB based VB / VB.NET
. C++/MFC was powerful but complex. VB was disliked by enterprises as a "toy". C#, .NET and Windows forms only took off somewhat around 2006-2007. Whatever the choice, MS dev tools cost a lot of licensing $$$.

The alternative was Sun's free JDK, JVM and the much easier Swing framework. It was also cross-platform, which was nice though mostly useless since desktop was dominated by Windows. Swing was a no-brainer decision for enterprises.

Then around 2007-2010, Apple and Android smartphones took off and neither supported Swing or JVM.
Google came up with standards-compliant Chrome and as IE's share increasingly declined, it was no longer a pain to develop massive web applications and reach a substantial user base.
Ajax and CSS enabled webapps to become single page apps with a desktop like experience.
Resource heavy java applets or flash were no longer necessary for a rich web experience.

So out with Java and Swing from the average Joe's desktop. When Swing itself didn't take off, no point investing in JavaFX taking off.

One place where client side java is still going strong on the desktop is with us developers who still use our Java based (Eclipse | Netbeans | IntelliJ | Android Studio), ironically for developing all those non-java applications.

The other place where it remains popular is enterprise (again anecdotal experience; data on internal applications probably doesn't even exist anywhere).
But they are not migrating to JavaFX because their developers are taught Swing, not JavaFX, and Swing is usually "good enough".
 
Bartender
Posts: 1464
32
Netbeans IDE C++ Java Windows
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Tim Moores wrote:Client-side Java is dead in general...


Wow, that's quite a statement, Tim. What makes you think so?
 
Sheriff
Posts: 67746
173
Mac Mac OS X IntelliJ IDE jQuery TypeScript Java iOS
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Stevens Miller wrote:

Tim Moores wrote:Client-side Java is dead in general...


Wow, that's quite a statement, Tim. What makes you think so?



If by that he's referring to Applets, then I agree with him.

They were (in my opinion) a bad idea to begin with, and today, with most browsers disabling them by default, are now stuck in the tar pits with the mastodons and smilodons.

General end users aren't going to jump through hoops to enable Java on their browsers, especially when accompanied by scary security messages that they don't fully understand, in order to enable applets in their browsers.

If he means desktop applications, that's more debatable, but has always been a much smaller market than the server-side Java powering the web.
 
Stevens Miller
Bartender
Posts: 1464
32
Netbeans IDE C++ Java Windows
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Bear Bibeault wrote:

Stevens Miller wrote:

Tim Moores wrote:Client-side Java is dead in general...


Wow, that's quite a statement, Tim. What makes you think so?


If by that he's referring to Applets, then I agree with him.


Oh my, yes. If that's what he means, he's right. I was taking his usage of "client-side" as "other than server-side." Perhaps I'm mistaken.

If he means desktop applications, that's more debatable, but has always been a much smaller market than the server-side Java powering the web.


Yeah, also agreed. What I'm wondering about is how popular Java is today as a language for creating desktop applications, compared with other programming languages.
 
Karthik Shiraly
Bartender
Posts: 1210
25
Android Python PHP C++ Java Linux
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

What I'm wondering about is how popular Java is today as a language for creating desktop applications, compared with other programming languages.



Not very...atleast among CodeRanch members. https://coderanch.com/t/658288/md/Poll-develop-maintain-desktop-applications
 
Bear Bibeault
Sheriff
Posts: 67746
173
Mac Mac OS X IntelliJ IDE jQuery TypeScript Java iOS
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Stevens Miller wrote:
Yeah, also agreed. What I'm wondering about is how successful Java is doing today as a language for creating desktop applications, compared with other programming languages.


Good question, and from a developer standpoint, I'm certainly not sure of the answer as my sphere has been the web for the past two decades.

But from the end user view, certainly most desktop apps seem to be written in whatever language and framework is native to the target platform; e.g. ObjectiveC/Swift for OS X and so on, even if they have a version that runs on multiple operating systems. I don't see a lot of applications that are written in Java as cross platform applications.

I do know of a small handful of cross-platform tools written in Java, but they seem to be in the vast minority.
 
Ranch Hand
Posts: 270
15
Android Angular Framework Spring AngularJS Java
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Hello, all,
I thought I would weigh in, here. First, it's great to see all this input.

Where I work, we have a Java desktop (Swing standalone) application that has evolved through multiple iterations, over a span of about 15 years. Our application needed a framework, and this one was open source, so we adapted it from one graphical, large data application to another. It is run mainly behind the firewall, deals with a lot of large image files that need 3D rendering, plus internal database storage. There are alternative applications which originated elsewhere, but those are...guess what...usually based on C/C++. The WORA and some of the productivity advantages make a definite advantage (although there are decidedly leaks in the WORA abstraction). We have been able to get most of our features working on Windows, Linux and Mac OSes, as well as something called EnginFrame. Recently, we have had to reconsider supporting all those, because this is a resource-hungry application, and we have users who have adopted only certain platforms. In keeping with the discussion, however, we have not adopted any plans to move this to JavaFX. However, JavaFX's spreading umbrella now includes Swing for the forseeable future.

Another app in a similar vein is NCBI's FIJI/ImageJ. Also image processing. Also Java/Swing/standalone. Still another is the CLC Workbench app. That one has (had--it has been a few years since I worked on that one) its own proprietary plugin architecture.

I have an application I developed in 2005, that utilized Java3D. That, IMO, is a dead technology. But what has killed it, has been a migration to JavaFX. JavaFX has support for 3D built into it. Earlier, I had begun the process of porting my app to JavaFX, but have gotten busy with other things. I have also ported the app to Android/OpenGL. Since it is already in JOGL/OpenGL ES, I sometimes question whether it is worth doing the FX port. I had hoped it would be a more direct change. JOGL was not originally object-oriented. My biggest problems with standalone for this one, is that the whole Java3D thing makes it 10x more difficult for end users to download and use it (it is open source, at SourceForge).

Bottom Line: I like to be able to use 3D and accelerators from a Java code standpoint. I know 3D is possible from JavaScript/HTML5, but so far, I have not seen it as powerful as I have from the desktop apps.
 
Ranch Hand
Posts: 53
2
  • Likes 2
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
"Dead" is such a relative term. Some developers, often being passionate people, are often fond of proclaiming on a blog post "[put technology here] is dead". People have been saying Java is dead for over a decade.

That being said, I am professionally a Swing/JavaFX developer for my company. We are not a vendor and we build a lot of in-house applications for our employees in Swing, and we already migrated to JavaFX. We have used Kotlin, RxJava and any other resourceful library we can get our hands on. We've made millions of dollars for our company with these software "tools" to support our business operations.

When you make a software that is only used by 20 employees in your own company, it hardly makes sense to distribute it as a web application. Such complexity and overhead is overkill. Putting a JAR file out on a network drive is so much simpler. You have to consider also companies like mine do not report using JavaFX or Swing, much less the fact we are building in-house applications.

Vendors have every financial incentive to move businesses to the cloud. I think this is why Oracle laid off many of its JavaFX evangelicals. They're chasing a new cash cow in cloud and want businesses to hand over the reigns to vendors. I hardly see that happening with how complicated, fragmented, and niche technology is becoming. People are always going to use what works, and the vendor's "Vanilla Flavor Cloud Solution" is not going to fulfill every single niche business need. That is why shadow IT development is becoming rampant.

I am embarking on learning Play web development but that is only for my personal growth and as a backup just in case the cloud becomes inevitable. Cloud may have overtaken desktop to some degree, but it hasn't stomped it out. That will only happen when vendors and IT departments are able to fulfill every one of our niche computing needs, and currently that is FAR from happening.
 
Bear Bibeault
Sheriff
Posts: 67746
173
Mac Mac OS X IntelliJ IDE jQuery TypeScript Java iOS
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
While I agree with much of what you posted, I disagree with:

Tom Nielson wrote:When you make a software that is only used by 20 employees in your own company, it hardly makes sense to distribute it as a web application.



I can bang out a complex web application a lot easier and quicker than I can learn JavaFX. Your statement is only true for companies that have resources that already know JavaFX and can whip a desktop application faster than a web app. Companies that already have web application expertise are a different matter.

Our small company, where the users of any internal app likely number two dozen or less, finds it far more efficient to use web apps over desktop apps.

There's also the whole discussion regarding versioning and deployment points, but that's been discussed to death elsewhere and I won't repeat here.


 
Tom Nielson
Ranch Hand
Posts: 53
2
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Bear Bibeault wrote:While I agree with much of what you posted, I disagree with:

Tom Nielson wrote:When you make a software that is only used by 20 employees in your own company, it hardly makes sense to distribute it as a web application.



I can bang out a complex web application a lot easier and quicker than I can learn JavaFX. Your statement is only true for companies that have resources that already know JavaFX and can whip a desktop application faster than a web app. Companies that already have web application expertise are a different matter.

But our small company, where the users of any internal app likely number two dozen or less, finds it far more efficient to use web apps over desktop apps.

There's also the whole discussion regarding versioning and deployment points, but that's been discussed to death elsewhere and I won't repeat here.





That makes sense, and that's impressive and surprising to me. What does your web stack look like?
 
Stevens Miller
Bartender
Posts: 1464
32
Netbeans IDE C++ Java Windows
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Bear Bibeault wrote:I can bang out a complex web application a lot easier and quicker than I can learn JavaFX.



Does choosing not to use JavaFX imply a Web app? Swing works fine on desktop apps. I think we're mixing up some of the issues here. Applets are dead outside of a controlled environment, for security reasons. In a corporate context, some people still say they make sense because it is easy to deploy and upgrade applets, and one can (or should) be able to trust the corporation's own applets.

I took Tom's point about using jar files instead of Web apps in a small corporate setting as not a choice between Web apps and JavaFX, but a choice between Web apps and desktop apps.

 
Tom Nielson
Ranch Hand
Posts: 53
2
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Stevens Miller wrote:

Bear Bibeault wrote:I can bang out a complex web application a lot easier and quicker than I can learn JavaFX.



Does choosing not to use JavaFX imply a Web app? Swing works fine on desktop apps. I think we're mixing up some of the issues here. Applets are dead outside of a controlled environment, for security reasons. In a corporate context, some people still say they make sense because it is easy to deploy and upgrade applets, and one can (or should) be able to trust the corporation's own applets.

I took Tom's point about using jar files instead of Web apps in a small corporate setting as not a choice between Web apps and JavaFX, but a choice between Web apps and desktop apps.



Yeah I think you are right we are confusing contexts. I am not talking about JavaFX for web apps. I think JavaFX is definitely dead on that front. But for simple "Here is your playable JAR file" which runs desktop applications, it works great. So maybe we should clarify if the debate is "Is JavaFX as a desktop application dead?" vs "Is JavaFX as a web technology dead?"
 
Bear Bibeault
Sheriff
Posts: 67746
173
Mac Mac OS X IntelliJ IDE jQuery TypeScript Java iOS
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Tom Nielson wrote:That makes sense, and that's impressive and surprising to me. What does your web stack look like?


For which project? Varies pretty widely.

I'll pick one of the more complex ones as an example:
RESTful API on server: Play 1.2 with Java. (So Hibernate et al).
Client: SPA with AngularJS, jQuery, Bootstrap, et al
 
Bear Bibeault
Sheriff
Posts: 67746
173
Mac Mac OS X IntelliJ IDE jQuery TypeScript Java iOS
  • Likes 1
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Stevens Miller wrote:

Bear Bibeault wrote:I can bang out a complex web application a lot easier and quicker than I can learn JavaFX.


Does choosing not to use JavaFX imply a Web app?


No, but I was addressing his specific point about web apps "no making sense" for a small audience.

Stevens Miller wrote:I took Tom's point about using jar files instead of Web apps in a small corporate setting as not a choice between Web apps and JavaFX, but a choice between Web apps and desktop apps.



Could be. But it doesn't change my reply at all. I don't think desktop apps vs web apps is a factor of audience size.
 
Bartender
Posts: 1971
17
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

John Tsioumpris wrote:Hello to everybody....
For the past year i have being working with JavaFX for diploma thesis and it played a more than substantial part in the final outcome...
Naturally i was planning to get a even more familiar for my future plans and learn it even more ....
BUT....
i read a lot of posts around the Net that JavaFX is rather dead and probably it would get abandoned in the coming releases of Java...
So i am asking ...should i continue to work with JavaFX or abandon it in favor of another (Swing ?)



Crap I just bought a Java FX book to try to write a desktop search program. But, after reading and studying the book, it seems like the threading is really complicated with the UI thread and related. Difficult to just jump in and get started.

Based on this depressing thread (the whole set of responses), I think I'll send the book back to Amazon while I can and start learning Node.

I haven't written anything in Swing for 15 years. I'm now not sure if FX will change that.



- mike
 
Stevens Miller
Bartender
Posts: 1464
32
Netbeans IDE C++ Java Windows
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
I wouldn't give it up on JavaFX or Swing just yet, Mike. You can easily find articles declaring each dead for almost their entire lifetimes, yet both are still here.

I'm curious, though: if you haven't been using Swing for that long, what have you been using? Or, maybe, your programs don't have UIs?
 
Mike London
Bartender
Posts: 1971
17
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Stevens Miller wrote:I wouldn't give it up on JavaFX or Swing just yet, Mike. You can easily find articles declaring each dead for almost their entire lifetimes, yet both are still here.

I'm curious, though: if you haven't been using Swing for that long, what have you been using? Or, maybe, your programs don't have UIs?



Good question!

I've been doing regular Java and Java Web apps since 2002. I did write one Java Applet and also a single Swing app once. But  the whole Swing Table control and the MVC overhead you had to set up (as I recall, anyway) just to use it left me totally cold. Seemed totally over-engineered for 99% of the uses I would ever have. Heck! I just want to display data in a table. In any case, I really disliked Swing so I'm not sure FX is for me then, either.

Appreciate your reply.

Thanks,

- mike
 
Stevens Miller
Bartender
Posts: 1464
32
Netbeans IDE C++ Java Windows
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
The JTable is a pretty complex beast. For someone new to Swing, I could easily see how it might put them off of it. For some work I'm doing, I was forced to embrace it which, as it turned out, actually became the way I learned most of what I know about MVC now. But it wasn't a pleasant experience.

I know very little about JavaFX. Mostly, that's because I find it as impenetrable as the JTable once was, and no one has given me sufficient reason to believe learning yet another GUI toolkit is worth it.

Regardless of which toolkit one uses, I would hazard to say that if you use enough of the MVC structure to keep your model(s) separate from your view(s) (I am of the opinion that controller(s) are really artifacts of some features of Smalltalk that Java doesn't suffer from), and don't use overly tricky methods in how you code your view(s), then it probably doesn't much matter which toolkit you use. If, for some reason, you need to abandon your choice for a new one, loose coupling between your model(s) and view(s) should make it fairly easy to port straightforward code from one toolkit to another.

Of course, that's always easy to say when one is not the person who is going to have to do it...
 
Mike London
Bartender
Posts: 1971
17
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Well put!

Yes, I totally agree with what you said.

Moreover, what I believe Microsoft does absolutely right (as a Mac user, I'm certainly no MS fan) is that their development tools are "by default" easier to use; yet, they still have power to do things like JTable makes you do "by default". So, IMHO, Swing and, from looking through the JavaFX book, Oracle seems to have it just backwards (difficult by default, simple not at all).

KISS Principle, Oracle! Somebody seems to have forgotten the 80/20 rule.

And I agree that the amount of effort to learn FX (the "learn" book is over 1,200 pages!!!) can't really be justified given other more approachable technologies like Node.js.

Regarding MVC, the DAO method is widely used in web apps and used by Java web frameworks like Spring, Struts. JSF, and others.

Thanks for helping confirm my apprehensions with FX.

-- mike
 
Marshal
Posts: 79180
377
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
There is a difference between dead, hard to use, and poorly documented.
 
Mike London
Bartender
Posts: 1971
17
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Campbell Ritchie wrote:There is a difference between dead, hard to use, and poorly documented.



Agreed, but I would argue that maybe in practice these options are distinctions without much of a difference.

For the developer who has to get code out quickly, I doubt the reasons he can't matter much.

- mike
 
Campbell Ritchie
Marshal
Posts: 79180
377
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
And if you develop a library and document it badly, then you only have yourself to blame if nobody uses it.
 
Stevens Miller
Bartender
Posts: 1464
32
Netbeans IDE C++ Java Windows
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Mike London wrote:...the amount of effort to learn FX (the "learn" book is over 1,200 pages!!!) can't really be justified given other more approachable technologies like Node.js.


Forgive me for putting on my lawyer's wig for a moment, but I feel I must point out that the Node.js documentation, when I copy and paste it to a LibreOffice Writer document, is over 600 pages long. And that is without a single screenshot or other illustration. If the 1,200-page book you are referring to is Learn JavaFX 8, by Kishori Sharan, much of that is whitespace, diagrams, screenshots and code. In terms of plain text, they appear to be about the same. Moreover, Node.js isn't Java: it's JavaScript. So, in terms of approachability, even if Node.js is no more daunting than JavaFX, it requires you to learn a second language (don't anyone tell Bear I haven't read his book yet    ).

Now, looking at the Kindle Edition preview of Sharan's book, and never having written a JavaFX program before, I was able to compile and run this simple snippet:


That really wasn't too much to grasp for anyone who knows how event-driven code works (and, if you write any kind of GUI, that's pretty much all of us, I expect).

Now, admittedly, I don't see anything in that snippet that shows advantages over the equivalent Swing code, but that's not my point. My point is that getting a simple JavaFX dialog box up and running was about as easy as I would ever expect it to be in any programming environment. I'm sure the full 1,200-page treatment would offer both advantages and greater complexity, but I will stick my neck out and say that it looks to me like my earlier claim is still good: if you decouple your model from your GUI, and keep your GUI implementation straightforward, porting it from one toolkit to another won't be a big deal (assuming you ever have to port it at all).

As for the OP's question, "Is JavaFX Dead?" I did some more Googling on that and, very broadly, the consensus seems to be that both Swing and JavaFX are like Schrödinger's cat: each of them is both dead and alive simultaneously until someone looks at them more closely. Which state they observe appears to be certain, but random. That is, you can find as many people as you want to who will tell you that Swing and/or JavaFX are stone-cold deceased, and you can also find as many people as you want to who will tell you that both are still here and are going to remain here for years to come. The levelest heads out there, imho, tend say that obsessing over which, if either, to use, is a waste of time. They say a programmer should just pick one and get on with it. I find that fairly persuasive. fwiw.
 
Mike London
Bartender
Posts: 1971
17
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Thanks...your reply is appreciated.

I guess it's still the bad taste in my mouth from Swing all those years ago, but I really dislike all the layout manager nonsense. Well, I know it's not nonsense since layout managers let you build stuff in code, but I just want an "IDE" where I can drag fields to where I want and be done with it. Even the Scene Builder requires you use layout managers.. Yuck.

(The 1200 page Learn Java FX book doesn't cover Scene Builder I don't believe except maybe to ... mention it.)

There has to be a more straightforward, less frustrating, and fast way to build user interfaces than "Layout Managers".

-- mike
 
Bear Bibeault
Sheriff
Posts: 67746
173
Mac Mac OS X IntelliJ IDE jQuery TypeScript Java iOS
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Stevens Miller wrote:(don't anyone tell Bear I haven't read his book yet    ).



 
Stevens Miller
Bartender
Posts: 1464
32
Netbeans IDE C++ Java Windows
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Mike London wrote:There has to be a more straightforward, less frustrating, and fast way to build user interfaces than "Layout Managers".



Ah, now that is a fish of a different color. Yes, LMs can be a pain. Personally, I think too much time is spent on them in most of the general "here's Java" books. The reason I feel that way is that I use NetBeans for most of my work, and the integrated Matisse GUI editor lets me ignore the LM almost entirely. In the IDE, the initial setting is "Free Design," which is really hiding the fact that it constructs and uses a GroupLayout object as its LM. For the most part, that just lets me drag and drop the Swing controls I want from the toolbox onto a JPanel and they just stay where I put them. There are some cute things you can do with "glue" and "struts" and so forth (really just Box.Filler objects), but I rarely use those.

Last I looked, Oracle no longer supported SceneBuilder, their only GUI editor for JavaFX. Many of the reports of JavaFX's death seem to rely on this fact, as it does seem silly to tout a GUI toolkit as the most up-to-date choice while not only lacking a an interactive editor for its use, but after actually abandoning the only such editor they had. Meanwhile, the Matisse editor that is integral to NetBeans (and also to Eclipse, I think) does a fine job of letting me build Swing GUIs quickly and easily, and I never think about the LM when doing so.
 
Bear Bibeault
Sheriff
Posts: 67746
173
Mac Mac OS X IntelliJ IDE jQuery TypeScript Java iOS
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Devil's advocate: as you are already familiar with web technologies, why bother with desktop apps at all? Any app that doesn't need to directly interface to resources on the local machine (vast majority) can be delivered as a web-faced app if that's tech that you are more comfortable with.
 
Stevens Miller
Bartender
Posts: 1464
32
Netbeans IDE C++ Java Windows
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Bear Bibeault wrote:Devil's advocate: as you are already familiar with web technologies, why bother with desktop apps at all? Any app that doesn't need to directly interface to resources on the local machine (vast majority) can be delivered as a web-faced app if that's tech that you are more comfortable with.


My inference is that's what he's been doing, and it make a lot of sense. After all, by doing it that way, you've pretty much made your desktop app a Web app at the same time.
 
Mike London
Bartender
Posts: 1971
17
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Stevens Miller wrote:

Mike London wrote:There has to be a more straightforward, less frustrating, and fast way to build user interfaces than "Layout Managers".



Ah, now that is a fish of a different color. Yes, LMs can be a pain. Personally, I think too much time is spent on them in most of the general "here's Java" books. The reason I feel that way is that I use NetBeans for most of my work, and the integrated Matisse GUI editor lets me ignore the LM almost entirely. In the IDE, the initial setting is "Free Design," which is really hiding the fact that it constructs and uses a GroupLayout object as its LM. For the most part, that just lets me drag and drop the Swing controls I want from the toolbox onto a JPanel and they just stay where I put them. There are some cute things you can do with "glue" and "struts" and so forth (really just Box.Filler objects), but I rarely use those.

Last I looked, Oracle no longer supported SceneBuilder, their only GUI editor for JavaFX. Many of the reports of JavaFX's death seem to rely on this fact, as it does seem silly to tout a GUI toolkit as the most up-to-date choice while not only lacking a an interactive editor for its use, but after actually abandoning the only such editor they had. Meanwhile, the Matisse editor that is integral to NetBeans (and also to Eclipse, I think) does a fine job of letting me build Swing GUIs quickly and easily, and I never think about the LM when doing so.




Interesting discussion...

Seems Oracle isn't really committed to FX given, as you said, it's a graphical environment and they're not supporting the only tool they offer to create GUIs (out of code).

Yes, MyEclipse and Intellij also feature the Matisse editor.

https://plugins.jetbrains.com/plugin/?id=274


----

Thanks!

- mike
 
Consider Paul's rocket mass heater.
reply
    Bookmark Topic Watch Topic
  • New Topic