Talks to Watch

Coroutines and Loom behind the scenes by Roman Elizarov

41K views · May 4, 2023 · 45:22 · 1 HN recommender · 5 mentions · discussed 2023

Roman Elizarov compares Kotlin Coroutines with OpenJDK Project Loom virtual threads, looking at their design goals and how those translate into different implementations and tradeoffs. He addresses how the two can coexist.

Why Hacker News points people here: Pointed to in Java 21 and Loom discussions as the Kotlin lead's authoritative view on coroutines versus virtual threads.

“it is an interesting talk regardless.”HN comment, 2023

What Hacker News said 5

RecommendsdangetsAug 2023

“it is an interesting talk regardless.”

Kotlin lead's perspective on Loom.

Full comment

Here's a take from Roman Elizarov (Kotlin bias) - this video I imagine a lot of the missing structured concurrency will get built up over time on the Java side, but it is an interesting talk regardless.

in “Java 21: First Release Candidate” · view on HN
Cites itgavinrayJun 2023

“in a recent video Roman Elizarov talked about how the default”

Elizarov on using virtual threads with Kotlin dispatchers.

Full comment

Yeah, Kotlin does have the colored-function problem, in the same way that Node/JS has. Loom and Virtual Threads are one area I'm not as familiar with. What I do know is that you can configure virtual threads as the coroutine dispatcher for Kotlin coroutines, and in a recent video Roman Elizarov talked about how the default "Dispatchers.IO" could theoretically leverage VT's in some future JDK. this video

in “The compact overview of JDK 21’s “frozen” feature list” · view on HN
Cites itsoulbadguyJun 2023

Shows coroutines and virtual threads can be used together.

Full comment

> 5. Java with virtual threads now has far better support for async programming than Kotlin or Scala. It is now competitive with Golang in async ease-of-use green thread/stackfull coroutine such as in go/java and stackfless coroutine as in kotlin are well know solutions for introducing async programming in a way that feel natural to dev. They both have strength and limitation, i don't think one offer "far better support for async programming", and even more importantly they are not mutually exclusive and can be used together depending on one needs (see this video )

in “The compact overview of JDK 21’s “frozen” feature list” · view on HN
Cites itjillesvangurpAug 2023

“Roman Elizarov addressed a few things regarding Loom at the last KConf”

Elizarov addresses Loom at KotlinConf.

Full comment

It's pretty hard to use Kotlin without co-routines these days. Most modern Kotlin frameworks tend to use them. And they work outside the JVM as well. Mostly we're talking about Java projects focusing on doing things the Java way that may or may not be using Kotlin for that. Kotlin mobile is unaffected; it won't get Loom any time soon (as far as I know) and things just don't work the same way there. Kotlin (and coroutines) are the go to solution there. I don't see that changing. And from having used coroutines with Spring extensively, I kind of like it. Works great. Makes everything easier. Especially the unholy mess that is web flux. There aren't a lot of things that loom does that Kotlin doesn't do already. Green threads. Check. Structured concurrency. Check. At best it will do them a little faster with loom in place, which isn't a bad thing of course. But it doesn't really fix a problem I have. Being able to use threaded and blocking IO things in a non blocking way with no threads is going to be nice. Great if you are stuck with a lot of legacy stuff. Roman Elizarov addressed a few things regarding Loom at the last KConf: this video

in “Features of Project Loom incorporated in JDK 21” · view on HN
Cites itsimon_voidOct 2023

“both were optimized for different things, so there is a place for both of them.”

Coroutines and virtual threads are optimized for different things.

Full comment

here is the talk by Roman Elizarov, the Kotlin project lead, at KotlinConf 2023 about Coroutines vs VThreads: this video short version: both were optimized for different things, so there is a place for both of them.

in “Kotlin Coroutines vs. Threads Performance Benchmark” · view on HN