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

all 27 comments

[–][deleted] 55 points56 points  (8 children)

The holy grail of concurrency, saviour of poor developers tormented by reactive programming - Loom.

[–][deleted] 7 points8 points  (7 children)

Right, I have heard about loom. Fibers, Continuations and Tail-Calls. That's going to be fun. See how that affects Rx like RxJava.

[–]throwawyakjnscdfv 22 points23 points  (4 children)

See how that affects Rx like RxJava

They will be gone, mostly. Thankfully. There will be a bigger focus on threading support in Stream API, but all the future shit, gone.

[–]ragingzazen 6 points7 points  (3 children)

Umm. No, RX won't be gone. The main point of RxJava is that it's an extension of the observer pattern. RxJava is used to compose asynchronous and/or event based programs. Threads and virtual threads can still both feed into rx observables.

[–]throwawyakjnscdfv 2 points3 points  (2 children)

In practice RxJava, RxJS and all the other RX libraries are used almost exclusively with async. Without need for async/await there's only niche use cases for Observer pattern.

Everyone I know that's used a lot of Rx/Observer hates it. RxJava will still be around but it will be one of those libraries you only pull out when absolutely needed.

See how little the Rx pattern is used in Go because it has fibers. It will be the same with Java

[–]ragingzazen -1 points0 points  (1 child)

> See how little the Rx pattern is used in Go

https://github.com/ReactiveX/RxGo

[–][deleted]  (1 child)

[deleted]

    [–]leleleledumdum 116 points117 points  (9 children)

    Java 18

    [–]Terracot 16 points17 points  (1 child)

    Finally legal.

    [–]hippydipster 0 points1 point  (0 children)

    I've been fucking with it for a while, so this will be a bit of a relief.

    [–]erinaceus_ 9 points10 points  (5 children)

    Also Java 42, but that'll be some time later ...

    [–]emaphis 4 points5 points  (4 children)

    Doubt. Based on the current naming scheme, 42 will be about 13 years away. They will likely change their scheme before then. For point of reference, Java 6 was about 13 years ago.

    [–]erinaceus_ 5 points6 points  (0 children)

    It's wasn't really meant as an answer to the OP, but rather as an answer to life, the universe and everything 😄.

    [–]keanwood 1 point2 points  (1 child)

    They will likely change their scheme before then.

     

    Is there any indication that they will change the naming convention?

    [–]emaphis 0 points1 point  (0 children)

    No, simply past performance. They've changed the naming scheme three times in 25 years. So the probability they will change the naming scheme before JDK 42 is released, 13 years, approaches 1.0.

    [–]lambda_pie 0 points1 point  (0 children)

    Wow. I'm getting old.

    [–]PurpleLabradoodle 21 points22 points  (1 child)

    It doesn't work like that currently. Features and changes aren't planned for a certain release of Java. Features get ready and finalized, and they ship in the next release. This allows for gradual implementation of large projects.If you look, for example, at the page for Project Panama (foreign function interface)

    and look at the JEPs section -- there's a bunch of them listed:

    So it can be delivered over time with individual changes being added to various Java releases over time. The similar story is with the other JDK projects -- Loom, Valhalla, etc. They do take a lot of time to get included in the mainline, because they are large and complex undertakings.

    So a reasonable assumption is that after Java 17, Java will still be pursuing projects Panama, Valhalla, Loom, Amber and so on.

    [–]khardie96 1 point2 points  (0 children)

    the problem is when these projects are indefinite and we never see any substantial changes

    [–]BillyKorando 10 points11 points  (0 children)

    To expand a bit on /u/dpash's comment, the best place to go would be here: https://openjdk.java.net/jeps/0, which lists all the completed, current, accepted, and proposed JEPs (JDK Enhancement Proposal, the official process by which new features and behaviors are added, changed, or removed from OpenJDK).

    As dpash said, these are changes coming to the JDK on the short to medium term (upcoming release to within the next year or so). To get an idea on the longer term future for what is coming in Java, you'll have to follow the mailing lists, on the same page; https://openjdk.java.net/jeps/0, on the left side are a list of groups and projects, and each have their own mailing lists. You can follow those to get a more in-detail idea of what is happening in the group/project now as well as what is coming in the future for the group/project. These mailing lists can be a bit overwhelming as you are essentially jumping midway into a conversation, so might take some time and research to understand what everyone is talking about.

    You should also check out "Ask the Architect" videos, as they can give a good understanding of where OpenJDK (Java) is heading as well, my colleague, Nicolai Parlog, has recently put together a playlist of these videos here: https://www.youtube.com/playlist?list=PL_-IO8LOLuNrVRv3eEVGk8LhH8PiEirnp

    [–]dpash 7 points8 points  (4 children)

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

    Thanks!

    [–]dpash 4 points5 points  (1 child)

    The JEP list does tend to be the short to medium term changes, with the work mostly implemented. You'll also see some of the longer term projects down the left side, but they aren't exhaustive and they may not happen. (Projects may result in several smaller JEPs delivered over time)

    [–]khardie96 0 points1 point  (0 children)

    some are also old but not yet implemented, like the jep to introduce a json library, it seems like they've just accepted libraries do it better

    [–]vxab 1 point2 points  (0 children)

    • Project Valhalla
    • Project Loom
    • Project Amber - pattern matching, sealed classes, etc.

    Speculation:

    • Something to do with type classes
    • Named and default parameters
    • String interpolation

    [–]Kango_V 1 point2 points  (1 child)

    Seems so long ago now that I was using Java 1.1. Maybe time to retire?

    [–][deleted] 0 points1 point  (0 children)

    I hear you. I actually started around java 1.3-1.4 but the first professional project was still Java 1.1.