Proposal: Bump minimum JDK version for JavaFX 20 to JDK 17
John Hendrikx
john.hendrikx at gmail.com
Tue Jul 19 20:15:35 UTC 2022
I'm split on this myself :)
As JavaFX is more of a library now, and not part of the JDK, allowing
broader compatibility could be beneficial: people can get new JavaFX
features without having to upgrade the JDK (each time) as well. For me
personally, that is moot since I tend to just track the latest JDK
release that has features I want, but this might not be the case for
other (corporate?) JavaFX users. Some small inconveniences in the JavaFX
code base to appeal to a broader audience could be good.
From a developer perspective, the new features are compelling, records
and cast-free instanceof will be nice, but it is not the end of the
world to live without them for a bit longer.
For something like JavaFX, a middle ground might be good, where it
tracks the latest LTS (11, 17, 21, etc...)
My 2 cents,
--John
On 19/07/2022 15:44, Kevin Rushforth wrote:
> Even though we build JavaFX binaries with JDK 18 as the boot JDK, the
> latest version of JavaFX still runs with JDK 11 (and is capable of
> being built using JDK 12 or later, and with some limitations, using
> JDK 11), although it isn't tested with older JDK versions. In order
> for JavaFX to be able to use newer JDK features, such as records,
> switch expressions, text blocks, and so forth, we need to increase the
> minimum version of the JDK that can run the latest JavaFX.
> Additionally, there is an ongoing cost to keeping JavaFX buildable and
> runnable on older versions of Java, and very little reason to continue
> to do so.
>
> To this end, I propose to bump the minimum version of the JDK needed
> to run JavaFX 20 to JDK 17. I filed JDK-8290530 [1] to track this.
> This will not affect update releases of earlier versions of JavaFX
> (e.g., JavaFX 17.0.NN), which will continue to run with the same
> minimum JDK that they run on today.
>
> As a reminder, we only assure that JavaFX NN will run with JDK NN-1 or
> later, although in practice, we haven't bumped the minimum required
> JDK version in several releases. So, while JavaFX 19 is built using
> JDK 18 as the boot JDK, it produces class files that will run with JDK
> 11, using "--source 11 --target 11". The proposed change discussed
> here would update that in JavaFX 20 to "--source 17 --target 17".
>
> NOTE: this will not be an invitation to do wholesale refactoring of
> existing classes or methods to use newer language features (e.g., a PR
> that turns a bunch of existing data classes into records would not be
> welcome). Rather, this can be seen as enabling judicious use of new
> features in new code, much as we did when we started allowing the use
> of "var".
>
> Absent a compelling reason to remain stuck in the past, I plan to send
> out a pull request for this change next week.
>
> Comments are welcome.
>
> -- Kevin
>
> [1] https://bugs.openjdk.org/browse/JDK-8290530
>
More information about the openjfx-dev
mailing list