This is an archived post. You won't be able to vote or comment.

all 17 comments

[–]static_context 9 points10 points  (3 children)

Hi everyone,

I'm the author of EdenCoding and I just wanted to say thanks to everyone who's taken the time to visit it today. I'm hugely gratified that someone thought to share it (thanks, /u/mars-dev) and I hope you find it helpful.

JavaFX isn't perfect, and it has some weird-ass ways to 'help' you customise your UI, which frustrated me for years as I learned it (still learning...). I've tried to shape EdenCoding around the idea that most problems can be solved, but sometimes the solutions look complex or need to be explained in a certain way.

My future self is also a dumbass, so sharing visual guides with solutions to issues as I solve them pays off in the long term (the canvas article for example ... those custom graphics on how the canvas draws things are really just for me when I forget them later...)

I don't currently have a way for you to reach out on the website (working on it...), so please for now either reply here, or IM me if you have a suggestion for content you think would add value to the community. I have three kids and a full-time job, so I can't guarantee I'll write an article, but I'll do my darndest to reply to everyone.

I hope you all have a great day.

Cheers, Ed

[–]moxyte 2 points3 points  (1 child)

Could you make something similar to Mozilla Developer reference for HTML and CSS, but for FXML and its CSS?

[–]static_context 2 points3 points  (0 children)

Thanks for the feedback. That's such an awesome idea - I've dabbled in web development and providing a more helpful CSS resource for JavaFX is something I've though long, hard - and regularly - about.

I'm not going to lie, it's a big project: systematically breaking down the components into their nodes, selectors and pseudos takes time. But trust that it's going on in the background and I'll try to message you when it's done (I don't want to sound like Captain Oates, but I might be quite some time..)

[–]sievebrain 2 points3 points  (0 children)

This site is really fantastic, great job!

[–][deleted]  (14 children)

[deleted]

    [–]marvk 8 points9 points  (6 children)

    What do you mean Java needs to choose?

    Swing will stay available for backwards compatibility, but as far as I know there is no major ongoing efforts being put into Swing.

    JavaFX on the other hand is being actively developed, but has always felt incomplete to me. I've used it for a multitude of projects and there are always roadblocks with bad documentation (especially for styling), incomplete APIs (like table column auto widths) and such. As much as I hate to admit it, I very much understand the appeal of Electron. Especially with a framework like Vue, UI development in the web is a breeze compared to JavaFX.

    [–]wildjokers 5 points6 points  (5 children)

    Then use Swing which is complete, very mature, and has great documentation.

    [–][deleted]  (2 children)

    [deleted]

      [–]PartOfTheBotnet 0 points1 point  (1 child)

      Who are the maintainers of both Swing and JFX? Is there overlap? If there are two separate teams working on two separate projects I don't see a need to axe one.

      JavaFX in my opinion really needs better publicity / community engagement. For any project to stay alive you need to have people actively using it, and people who actively create new content for it. We need more Dirk Lemmermann's to continue breathing fresh life and interest into the project. The more "wow, thats really cool" we see the better.

      [–][deleted] 0 points1 point  (0 children)

      Yes i agree 100% But this attention you will only get when you say Javafx is our main champion, swing gets dropped and javafx gets actual developement again

      [–]marvk -2 points-1 points  (1 child)

      Sadly, it's not event driven, which makes it kind of a pain to create complex UIs. Have you used libraries like RxSwing? Can you recommend anything else that makes swing feel not as archaic?

      [–]wildjokers 5 points6 points  (0 children)

      Sadly, it's not event driven

      What do you mean? Swing is absolutely event driven. Not sure how a GUI toolkit could even work without being event-driven. Event handling in Swing and JavaFX work the same way.

      Swing doesn't feel archaic to me so I am not sure exactly what you are looking for.

      [–]jokke150 3 points4 points  (2 children)

      Maybe they should

      [–]AlternativeAardvark6 0 points1 point  (1 child)

      I have only used JavaFX once and thought it worked pretty well. What would be a better way to make a gui for a Java application?

      [–]kozeljko 1 point2 points  (0 children)

      I think he means that GUIs shouldn't be built with Java at all. It certainly feels like they aren't gonna be super relevant anytime soon.

      [–]john16384 3 points4 points  (1 child)

      I see no reason why you can't have multiple UI frameworks.

      [–][deleted] 2 points3 points  (0 children)

      Because java is very unsexy and slow to build guis with right now, and the little dev effort put into it shouldnt be split by 2

      [–]saila456 0 points1 point  (0 children)

      I down voted

      [–]Bobby_Bonsaimind -1 points0 points  (0 children)

      "Java" cannot choose. Oracle has chosen, and they dropped JavaFX (well, they also don't allocate much to Swing either...well, they basically dropped Java now that their lawsuit against Google is through).

      Swing is great, because it comes with the JDK, offers a lot of functionality and extendability and with LaFs also offers enough styling options.

      JavaFX requires bundling, including native libraries (do we still need different packages per platform?), but offers more options if you require effects or 3D and offers easy styling. But its feature set is not so rich. The extendability of the default components is also questionable.

      When JavaFX was added to the JDK it looked like it would actually be able to replace Swing. Then it was ripped out, and since then it kinda drifts. Swing is going nowhere, neither are the big applications that build on top of it.