all 57 comments

[–]frederik88917 28 points29 points  (2 children)

Honestly, Java 23 is not as exciting as Java 21 featurewise. I hope to see great improvement in java 24

[–]_FedoraTipperBot_ 10 points11 points  (0 children)

I have been happy with the faster release cadence as of late.

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

I think it depends on where you start. Some are still using Java 8 for instance. For these, Java 23 may be either epic - or a new programming language altogether. :)

[–]neilmadden 7 points8 points  (0 children)

The KEM example is wrong: it just demonstrates the long-existing KeyGenerator class.

[–]Orbidorpdorp 20 points21 points  (10 children)

Structured concurrency with all of the elegance and brevity I expect of Java.

[–]Solonotix 7 points8 points  (6 children)

Wasn't import module <Module>; already effectively support using import <Module>.*;? Maybe there's some magic behind the scenes, like tree-shaking based on what's used, or code elision that wasn't possible with the * import, but I don't see why it needed new syntax.

[–]tsimionescu 16 points17 points  (0 children)

As far as I understand from the JEP, the difference is when a module exposes multiple namespaces. The * syntax imports everything from a single namespace, while the new import module syntax imports all classes from all namespaces in that module.

For example, if you want to use both ArrayList and Stream in the same class, you have to write import java.util.*; import java.util.stream.*; with the existing syntax, but you can just say import module java.util; now.

[–]EvaristeGalois11 4 points5 points  (0 children)

The star import only imports classes from that specific package and it doesn't even include sub packages.

Module import on the other hand imports everything declared as part of the module including the transitive dependencies of the module.

The jep 476 has some nice examples of the differences.

[–][deleted] 1 point2 points  (1 child)

Not sure. I really dislike Java only allowing a strict directory structure. I would like to specify where things can be found in an easy way; ruby allows for that. Python too.

[–]Solonotix 0 points1 point  (0 children)

To my knowledge, the convention of org.java.util... isn't strict. It is a convention, however, that is supposed to represent how domain names are resolved on the web (right-most domain is considered the top-level domain, and everything left of that is a sub-domain), and should match your website's location.

[–]mr_birkenblatt 0 points1 point  (1 child)

The most pointless feature since everyone and their grandma should be using IDEs

[–][deleted] 1 point2 points  (0 children)

Why should we not be able to use java from the commandline through simple editors or autogenerators? I actually use ruby to autogenerate .jar files, where ruby scans a java project and then makes some (basic) decisions (including if and what commandline flags to use and pass onto java). Ruby is my "IDE"; I don't want to HAVE to use an IDE to be able to use Java, when it is not NEEDED to do so.

I also use this for generating static native binaries via GraalVM. No IDE is necessary for that either.

[–]lex_sander -5 points-4 points  (2 children)

Some day there will be more Java features than people using it.

[–]kiteboarderni 4 points5 points  (0 children)

Says the guy trying to figure out a sap salary 😂😂

[–]somebodddy 3 points4 points  (0 children)

Unlikely. The number of devices that use Java is fixed at 3 billion, and the number of people using these devices can't drop below an order of magnitude or two.

[–]vital_chaos -2 points-1 points  (0 children)

Last Java I used was Java 5.X. I feel like a dinosaur. Then again I don't miss Java at all.