Originally posted by Ironmask
View Post
Announcement
Collapse
No announcement yet.
Java 21 / JDK 21 Reaches GA With Virtual Threads, Generational ZGC
Collapse
X
-
- Likes 4
-
Originally posted by bug77 View Post
Please stop this "mutually-incompatible versions" nonsense. There was exactly one major "removal" of APIs from Java and it was related to internal classes that were never meant to be used outside of the JDK (they always came with a disclaimer): https://openjdk.org/jeps/403
Everything else was a few method calls here and there, related to ancient stuff: https://docs.oracle.com/en/java/java...oved-apis.html
Whatever programs are still stuck on Java8 are stuck because they depend on ancient libraries that aren't updated (probably full of CVEs by now) or because their developers don't care anymore.
Irl I have only found one instance where it was hard to move off Java 8 and that was because it ran on embedded (I know, I know) and further JDKs regressed in performance too much. Not because anything was incompatible.
Comment
-
Originally posted by bug77 View Post
Haven't run into that one yet. But if you happen across something that was spun off into a separate module... just pull the module?
Comment
-
Originally posted by mcloud View Post
Not only that, sure, these are real problems, but not only them. In my case, I got bitten by the removal of the jaxb and jaxws apis and the only way I can run a program on a newer JVM is to bundle them with my app. But that makes it totally incompatible with the existing jdk8 install and I have no automated way to upgrade everything on all installs
- Likes 2
Comment
-
To all people complaining about Java apps not being upgraded - keep in mind that you can run almost any version of java on modern os. If you have to use jre8 today - you can. Not everything have to be upgraded and let's be honest it won't be if it works and maintainer don't have time to do that.
And what is best in most cases you can download jdk as a User and just run it - no root needed. This alone makes it perfect for enterprise environments. That's why java IDEs are (or were) so popular.
Try that with python or rust or go.
Regarding java8 to 9 switch - yes it was painful but had to be done and I think it was done well.
Same problem was with decommission of JavaEE and moving to Jakarta. At the end of the day it waa done and world moved forward.
Python 2 to Python3 upgrade was much worse.
Next big thing for java will be GraalVM, they do amazing job maintaining the compatibility and one day I bet apps will work seamlessly as java program and AOT binary.
Saying all this above - java is designed for business applications, service oriented most of the time and not for small programs. There are better languages to write simple terminal programs in most of the cases
- Likes 3
Comment
-
Originally posted by mcloud View Post
Not only that, sure, these are real problems, but not only them. In my case, I got bitten by the removal of the jaxb and jaxws apis and the only way I can run a program on a newer JVM is to bundle them with my app. But that makes it totally incompatible with the existing jdk8 install and I have no automated way to upgrade everything on all installs
If you worry about deployment, you have jlink.
- Likes 1
Comment
-
Originally posted by archkde View Post
Yes, but the problem was (note the past tense, also in my original post) that some build tools simply didn't know how to "just pull the module".
Comment
-
Originally posted by bug77 View Post
The module system spent the better part of a decade in the making, if the tools weren't able to deal with that, that's hardly a Java issue. But yes, the issue would have affected Java as a whole.
Comment
-
Not sure what world some people live in, but there were plenty of big libraries that took a LONG time to be Java17-compatible (example: Flink https://issues.apache.org/jira/browse/FLINK-15736), so yes, compatibility IS a big issue in Java world.
- Likes 1
Comment
Comment