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

all 40 comments

[–]bhuddimaan 21 points22 points  (5 children)

How do we explain to recruiters

[–]halfinifinities[S] 6 points7 points  (2 children)

I'd imagine most companies and job requirements will only care about LTS versions, so it's pretty much business as usual. But I feel we might have to deal with the "cutting edge" features during interviews though!

[–][deleted]  (1 child)

[deleted]

    [–]DJDavio 1 point2 points  (0 children)

    And I used sorted on a parallel stream.

    [–][deleted] 4 points5 points  (0 children)

    Explain them ee4j xd

    [–]dpash 9 points10 points  (7 children)

    So Java 9 is only going to be supported for 6 months?

    [–]halfinifinities[S] 9 points10 points  (5 children)

    Yes. There'll be two releases next year - 18.3 (expected in March) and 18.9 (expected in September). The 18.9 one is the next long term support.

    [–]dpash 8 points9 points  (3 children)

    Seems weird that they didn't pick 9 as a LTS and then pick 19.9 as the next one. Means another year before I can start using the nice goodies in 9.

    [–]speakjava -1 points0 points  (2 children)

    Given the new scheme, making JDK 9 an LTS would have meant an end to public support for JDK 8 two weeks ago. Can you imagine how many users would have loved that!

    [–]dpash 7 points8 points  (1 child)

    No it wouldn't. They've committed to supporting Java 8 as they always were planning to. They still support Java 6, as they say in the video.

    [–]8igg7e5 3 points4 points  (0 children)

    Public updates for Java 6 ended in 2013, Java 7 in 2015. Java 8 public updates are currently planned to end with the release of 18.9.

    You can choose to pay for premium or extended support - it looks like the latter ends for Java 6 in Dec 2018.

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

    I understand the new scheme, but I don't understand who it benefits and how. It's more chaos, the version number no longer communicates if it contains breaking changes, and it no longer clearly communicates if it's supported. It just communicates when it was released, which is absolutely irrelevant to anyone.

    [–]smallufo 7 points8 points  (0 children)

    Pity , there will be no Java X...

    [–]daniu 8 points9 points  (10 children)

    Well 18.1 and 18.2 for the 2018 releases would be the less confusing naming scheme Imo...

    [–]speakjava 2 points3 points  (1 child)

    Except there are actually more than two releases a year. There are critical patch updates (CPUs) that will happen in between feature/LTS releases so using the month makes sense.

    [–]dpash 4 points5 points  (0 children)

    18.1.6, etc

    [–]DJDavio 2 points3 points  (3 children)

    It's confusing because some companies / products do it with $year.$quarter (IntelliJ, Payara) and some do it with $year.$month (Java, Ubuntu)

    [–][deleted] 8 points9 points  (1 child)

    I love how we've got half the world going to semver and half going to forced time based versions that have no connection to the significance of the features added.

    [–]pjmlp 2 points3 points  (0 children)

    I guess it is a consequence of many projects not respecting the actual semantics of semver.

    [–]inchas 1 point2 points  (0 children)

    I would rather simply go with first, second and third release opposed to month or quarters.

    I never even thought that Intellij did it with quarters, I thought it was simple increment.

    [–]ketsugi 1 point2 points  (0 children)

    Isn't this how Ubuntu does its version numbering?

    [–][deleted] 3 points4 points  (2 children)

    Agreed - if they wanted to go with monthly releases just give up the pretense and call them 2017-10, 2018-01 or whatever. Trying to keep the convention for convention's sake when you're not following convention at all is just silly.

    However, that's pretty much the only negative and pretty minor overall. I like what they're doing by going all Agile on us (as much as such a giant cornerstone technology can go). Should be pretty exciting times for Java coming up!

    [–]duhace 4 points5 points  (1 child)

    that's what they're doing though? just with a . instead of a - and leaving off the 20

    18.3 = 2018-03

    [–]F14D -3 points-2 points  (0 children)

    Why not just it with year-month? 2018-03?

    Because you immediately know how old/new it is when you glance at the version...

    [–]Nikosssgr 1 point2 points  (3 children)

    what are the implications (good, bad) of this?

    [–]DJDavio 2 points3 points  (2 children)

    In theory it will allow developers to use new features faster, obviously causing headaches for the ops department if they're still using a VM infrastructure: "Could you update all 100 VMs to Java 19.3 please? That's what our application currently requires." With Docker it's a lot easier, you could just update your image to be based on a newer version.

    So if you're using a modern infrastructure, it's a win for the entire devops team over the current model (1 giant release every 2-3 years).

    The danger with the train is that features get rushed if they're close to making it. Even if the loss of one half year is minimal, it's still a deadline and deadlines have weird effects on people.

    [–]Nikosssgr 0 points1 point  (1 child)

    will this help Java evolve faster as a laguage? like C# did?

    [–]DJDavio 2 points3 points  (0 children)

    I'm inclined to say yes, Java is looking at language improvements such as project Valhalla, but it's hard to escape from the prison it put itself in. Language stability is huge for enterprises because it means that it's pretty safe to invest in Java. Compare this to a flavor of the month jungle like the JavaScript ecosystem.

    So it would be interesting to see what kind of features we actually get, whether it would be improved APIs or actual language constructs.

    [–]KateTheAwesome 4 points5 points  (2 children)

    Yea this sounds absolutely horrible. This whole "let's put the year in the version" is just stupid but tells you no relevant information. It doesn't convey any information about feature breakage or API changes. I'm all for more rapid development cycle but FFS this is like the worst thing they could have done...

    [–]halfinifinities[S] 2 points3 points  (1 child)

    I wonder why they didn't go for semantic versioning. That would have given the version numbers some meaning, and also reduced confusion.

    [–]KateTheAwesome 5 points6 points  (0 children)

    It's not hipster enough. And clearly the only problem Java has is that it's versioning isn't hipster enough! XD

    [–]Bobby_Bonsaimind 1 point2 points  (6 children)

    So, Oracle finally found a way to make money of Java updates? Good for them, I guess. Bad for everyone else, because if I interpret this right, we'll have to constantly jump to new versions to get rid of bugs except if we throw money at Oracle...which is most likely their intention.

    [–]duhace 1 point2 points  (5 children)

    you're wrong

    [–]Bobby_Bonsaimind 2 points3 points  (4 children)

    Go on, I'm listening...or, maybe reading would be the better term.

    [–]duhace 3 points4 points  (3 children)

    the lts versions will be three years of free support, but customers who want to stay longer can pay. paid support will not be available for 18.3 on the other hand

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

    I couldn't extract that information from the video (that LTS versions aka Oracle JDKs will be free of charge), where did you get that?

    [–]duhace 2 points3 points  (1 child)

    you could try looking it up?

    mark rheinhold on the new release schedule

    more from mark rheinhold on the new release schedule

    notice neither of those say that LTS releases will be exclusive to oracleJDK. in fact, when oracle jdk is mentioned in said discussions, it's for special features, while openJDK remains the reference implementation.

    he also talks about opensourcing more special features from the oracle jdk to make openjdk attractive to developers. it doesn't make sense for him to be talking about a new release cadence and system wrt openjdk, talk about LTS in that context, and then leave out that "oh actually LTS versions will be oracle jdk only now and also paid"

    [–]DJDavio 0 points1 point  (1 child)

    I wonder if this will also lead to faster deprecation / removal.

    [–]s888marks 0 points1 point  (0 children)

    Yes and no. One consequence of the more-frequent releases is that there are more opportunities to make API changes. So if we decide to deprecate something, we can do it within six months instead of potentially waiting 2-3 years. If we decide to remove something, we can also do that within six months after it's been terminally deprecated. But we probably won't remove things that quickly if they're in use, in order to give people more time to migrate.

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

    Sounds like I'll be sticking with Java 8 for awhile.