Beyond Loom

Ron Pressler ron.pressler at oracle.com
Thu Feb 15 17:14:31 UTC 2024


Unlike some other languages, Java is not a research language, and this means that we’re not typically looking for cool solutions or even for interesting problems to solve. Rather, we have many millions of developers, and we try to identify the problems that cause the most pain when integrated over all our users, and then we look for a solution.

So when we identify a painful problem that could be solved by the technology contributed by Project Loom (maybe the difficulty of writing “dynamic" iterators/stream which is perhaps best addressed by generators), then we’ll know what the next use of the technology is. BTW, I’ve been following effect systems for over a decade and, AFAIK, to date no one has identified a big problem that is best solved by them.


— Ron

> On 15 Feb 2024, at 05:31, Eric Kolotyluk <eric at kolotyluk.net> wrote:
> 
> Years ago I tried playing with 'Delimited Continuations' in Scala.
> I seriously hurt my brain. 😱
> Eventually, some yahoos implemented Delimited Continuations in Loom, and life was better. 🥳
> I really enjoy Virtual Threads and Structured Concurrency, but now I wonder what is next. 🤔
> I can program in Scala and Kotlin just fine, but there is a high cognitive load sometimes... I am always looking to Java where my brain can relax, where it's Five O'Clock Somewhere. 😎
> I have been looking at 'Effects Systems' a lot, but there is still a lot to learn. 😳
> Probably one of the best videos I have seen is Effect Systems in Scala: An introduction.
> While I have been playing with FS2, I really want to wrap my brain around Algebraic Effects, and I am wonder where Caprese is going? Cats Effect and Zio look interesting, and necessary for FS2, but neither seem to be based on Algebraic Effect as explained in DIRECT STYLE SCALA.
> I am not telling the Loomers what to do, I and just speculating on where they go after Loom. 🧐
> I also found Haskell'23] The Evolution of Effects very satisfying, as a way to update my dormancy in Computing Science in recent years.
> Java Streams are a big disappointment, in that we should be able to hang those methods off the collections directly, so they are not lazy... the way Scala separates Collections from Views. Sometimes you don't want the overhead of a Stream, as I discovered play with Loom. Not a biggie, just a gotcha. Maybe with Effects and Resources, we cannot do that?
> But, those Java Architects, they sure seem good at paying attention to future proofing Java, and on a six month release cycle, it is really entertaining, and useful to see what they come up with next...
> Cheers, Eric



More information about the loom-dev mailing list