<div dir="ltr">Hi Bruce,<div><br></div><div>I hear you. While there are non-technical issues involved as well, I started looking for a technical approach where we can build OpenJFX using the OpenJDK build system. While this does not imply that the JavaFX modules are bundled with a JDK distribution, it is a major improvement and simplification for those who want to. There is a discussion about this on the openjfx-dev mailing list [1] and I have a github repository that explains it [2]</div><div><br></div><div>Apart from the technical issue (which I believe is not that hard to address, given my recent experimental work), I fully agree with the major issue you mention: it is currently way too hard to have students quickly opening an IDE with the latest JDK and run a quick Java application that does some basic JavaFX rendering. We have docs for this at [3], but the fact itself that these docs need to exist, plus the number of options you see in the left menu (differences if you run standalone, using maven, using gradle, using IntelliJ, NetBeans, Eclipe, VS Code) are an indication that the operational effort is way too high.</div><div><br></div><div>With the current strong focus on AI, I am a bit surprised that there is no more discussion about this. If you want to show to students that Java is great for AI, I believe it is helpful to be able to create a simple application using the most recent additions to the JDK, and then do some basic visualization  of an </div><div><br></div><div>- Johan</div><div><br></div><div>[1] <a href="https://mail.openjdk.org/pipermail/openjfx-dev/2025-September/056477.html">https://mail.openjdk.org/pipermail/openjfx-dev/2025-September/056477.html</a></div><div>[2] <a href="https://github.com/openjdk-mobile/openjfx-build">https://github.com/openjdk-mobile/openjfx-build</a></div><div>[3] <a href="https://openjfx.io/openjfx-docs/">https://openjfx.io/openjfx-docs/</a></div><div><br></div><div>- Johan</div><div><br></div></div><br><div class="gmail_quote gmail_quote_container"><div dir="ltr" class="gmail_attr">Op wo 29 okt 2025 om 22:38 schreef Bruce K Haddon <<a href="mailto:haddon.brucek@gmail.com">haddon.brucek@gmail.com</a>>:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div class="msg-5674896455111978428"><div lang="EN-US" style="overflow-wrap: break-word;"><div class="m_-5674896455111978428WordSection1"><p class="MsoNormal"><span style="font-size:11pt">Java Friends, <u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11pt"><u></u> <u></u></span></p><p class="MsoNormal"><span style="font-size:11pt">Once upon a time, JavaFX was included in the JDK, from Java 8 up to Java 10. JavaFX <u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11pt">(in Java 11) then became a separate library, download, and install. As I understood it <u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11pt">at the time, there were three basic reasons for this: <u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11pt"><u></u> <u></u></span></p><p class="m_-5674896455111978428MsoListParagraph" style="margin-left:54pt"><u></u><span style="font-size:11pt"><span>1.<span style="font:7pt "Times New Roman"">                  </span></span></span><u></u><span style="font-size:11pt">JavaFX contributed greatly to bloat in the size of the JDK <u></u><u></u></span></p><p class="m_-5674896455111978428MsoListParagraph" style="margin-left:54pt"><u></u><span style="font-size:11pt"><span>2.<span style="font:7pt "Times New Roman"">                  </span></span></span><u></u><span style="font-size:11pt">The separation allowed the JDK and the JavaFX SDK to evolve separately <u></u><u></u></span></p><p class="m_-5674896455111978428MsoListParagraph" style="margin-left:54pt"><span style="font-size:11pt">and at different paces and was to encourage more community involvement <u></u><u></u></span></p><p class="m_-5674896455111978428MsoListParagraph" style="margin-left:54pt"><span style="font-size:11pt">in the development of both the JDK and JavaFX.<span>  </span><u></u><u></u></span></p><p class="m_-5674896455111978428MsoListParagraph" style="margin-left:54pt"><u></u><span style="font-size:11pt"><span>3.<span style="font:7pt "Times New Roman"">                  </span></span></span><u></u><span style="font-size:11pt">The development and maintenance moved from Oracle to Gluon, in 2018, <u></u><u></u></span></p><p class="MsoNormal" style="margin-left:18pt;text-indent:36pt"><span style="font-size:11pt">relieving Oracle of responsibility for JavaFX (The original JavaFX Script (F3 <u></u><u></u></span></p><p class="MsoNormal" style="margin-left:18pt;text-indent:36pt"><span style="font-size:11pt">started in 2005) language was revealed at the 2007 JavaOne convention, <u></u><u></u></span></p><p class="MsoNormal" style="margin-left:18pt;text-indent:36pt"><span style="font-size:11pt">supported by Sun Microsystems at that time).<u></u><u></u></span></p><p class="MsoNormal" style="text-indent:36pt"><span style="font-size:11pt"><u></u> <u></u></span></p><p class="MsoNormal"><span style="font-size:11pt">Has not the time come to re-integrate JavaFX with the JDK? The above considerations <u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11pt">are very much less applicable now: <u></u><u></u></span></p><p class="m_-5674896455111978428MsoListParagraph" style="margin-left:54pt"><span style="font-size:11pt"><u></u> <u></u></span></p><p class="m_-5674896455111978428MsoListParagraph" style="margin-left:54pt"><u></u><span style="font-size:11pt"><span>1.<span style="font:7pt "Times New Roman"">                  </span></span></span><u></u><span style="font-size:11pt">The “bloat” question has been long addressed by the modularization of the <span> </span><u></u><u></u></span></p><p class="m_-5674896455111978428MsoListParagraph" style="margin-left:54pt"><span style="font-size:11pt">JDK. It is no longer necessary to ship the entire JDK with an application, just<u></u><u></u></span></p><p class="m_-5674896455111978428MsoListParagraph" style="margin-left:54pt"><span style="font-size:11pt">the relevant modules. If JavaFX is not a requirement, then for distributed <u></u><u></u></span></p><p class="m_-5674896455111978428MsoListParagraph" style="margin-left:54pt"><span style="font-size:11pt">applications, the JavaFX modules (JavaFX is similarly modularized as the<u></u><u></u></span></p><p class="m_-5674896455111978428MsoListParagraph" style="margin-left:54pt"><span style="font-size:11pt">JDK) need not be included (as well as many other modules of the JDK for <u></u><u></u></span></p><p class="m_-5674896455111978428MsoListParagraph" style="margin-left:54pt"><span style="font-size:11pt">the average application). <u></u><u></u></span></p><p class="m_-5674896455111978428MsoListParagraph" style="margin-left:54pt"><u></u><span style="font-size:11pt"><span>2.<span style="font:7pt "Times New Roman"">                  </span></span></span><u></u><span style="font-size:11pt">The JDK and the JavaFX releases have kept in lockstep for some time <u></u><u></u></span></p><p class="m_-5674896455111978428MsoListParagraph" style="margin-left:54pt"><span style="font-size:11pt">now. The numbering is the same, the release dates are mostly with days <u></u><u></u></span></p><p class="m_-5674896455111978428MsoListParagraph" style="margin-left:54pt"><span style="font-size:11pt">if not hours the same. In particular, the releases of even security <u></u><u></u></span></p><p class="m_-5674896455111978428MsoListParagraph" style="margin-left:54pt"><span style="font-size:11pt">updates (third-digit of the release numbering) are coordinated. <u></u><u></u></span></p><p class="m_-5674896455111978428MsoListParagraph" style="margin-left:54pt"><u></u><span style="font-size:11pt"><span>3.<span style="font:7pt "Times New Roman"">                  </span></span></span><u></u><span style="font-size:11pt">Both JavaSE and JavaFX developments are available in open source <u></u><u></u></span></p><p class="m_-5674896455111978428MsoListParagraph" style="margin-left:54pt"><span style="font-size:11pt">(OpenJDK and <span> </span>OpenJFX), although both Oracle and Gluon offer <u></u><u></u></span></p><p class="m_-5674896455111978428MsoListParagraph" style="margin-left:54pt"><span style="font-size:11pt">supported versions, with additional tools, <span> </span>that are subject to licensing. <u></u><u></u></span></p><p class="m_-5674896455111978428MsoListParagraph" style="margin-left:54pt"><span style="font-size:11pt">Integrating the releases still permits community involvement and <span> </span><u></u><u></u></span></p><p class="m_-5674896455111978428MsoListParagraph" style="margin-left:54pt"><span style="font-size:11pt">innovation is either case. <u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11pt"><u></u> <u></u></span></p><p class="MsoNormal"><span style="font-size:11pt">It appears that there is close co-operation between the open development of the JDK <u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11pt">and of the JavaFX SDK, and the releases of both libraries could quite usefully be <span> </span><u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11pt">under one administration. <u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11pt"><u></u> <u></u></span></p><p class="MsoNormal"><span style="font-size:11pt">Further, it would be of great convenience to developers not to have to make two <u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11pt">installations and then configure their IDEs to access both libraries (not really easy in <u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11pt">almost all IDEs, requiring understanding of many otherwise ignorable options of each <u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11pt">IDE). In particular (my prime interest) is that it would simplify life for early students of <u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11pt">Java and also provide the realization that the JDK and the JavaFX features are on an<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11pt"> equal footing in terms of use, access, and support, rather than JavaFX being an <u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11pt">optional and difficult added learning issue. <u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11pt"><u></u> <u></u></span></p><p class="MsoNormal"><span style="font-size:11pt">The relationship between OpenJDK and Oracle shows that commercial interest and <u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11pt">open-source interest can co-exist, as does the relationship between Gluon and <u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11pt">OpenJFX. There appears to be no reason that if the JavaFX modules were included <u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11pt">in the one (modularized) download with the JDK modules that that either Oracle’s or <u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11pt">Gluon’s commercial interests would be affected. <u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11pt"><u></u> <u></u></span></p><p class="MsoNormal"><span style="font-size:11pt">It is both my belief and my recommendation that the time has come for the re-<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11pt">integration of JavaFX (as the preferred GUI feature) with the rest of the JDK. <u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11pt"><u></u> <u></u></span></p><p class="MsoNormal"><span style="font-size:11pt">With the hope that your development proceeds smoothly,<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11pt"><u></u> <u></u></span></p><p class="MsoNormal"><span style="font-size:11pt">Bruce K. Haddon <u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11pt"><u></u> <u></u></span></p><table border="0" cellpadding="0" width="520" style="width:390pt"><tbody><tr><td colspan="2" style="padding:0cm"><div class="MsoNormal" align="center" style="text-align:center"><span><hr size="2" width="100%" align="center"></span></div><p class="MsoNormal"><span>Dr. Bruce K. Haddon<u></u><u></u></span></p></td></tr><tr><td style="padding:0cm"><p class="MsoNormal"><span>1506 Chambers Drive<u></u><u></u></span></p></td><td style="padding:0cm"><p class="MsoNormal" align="right" style="text-align:right"><span>+1 303/499 6240<u></u><u></u></span></p></td></tr><tr><td style="padding:0cm"><p class="MsoNormal"><span>Boulder, CO 80305-7002<u></u><u></u></span></p></td><td style="padding:0cm"><p class="MsoNormal" align="right" style="text-align:right"><span><a href="mailto:Bruce.Haddon@colorado.edu" target="_blank"><span style="color:rgb(5,99,193)">Haddon,BruceK@gmail.com</span></a><u></u><u></u></span></p></td></tr><tr><td colspan="2" style="padding:0cm"><p class="MsoNormal" align="right" style="text-align:right"><span><br>"Science is facts; just as houses are made of stones, so is science made of facts; but a pile of stones is not a house and a collection of facts is not necessarily science."—Henri Poincare <u></u><u></u></span></p></td></tr></tbody></table><p class="MsoNormal"><span style="font-family:Calibri,sans-serif"><u></u> <u></u></span></p><p class="MsoNormal"><u></u> <u></u></p></div></div></div></blockquote></div>