HackerTube
HomeLongsLikedHistoryWatch laterCategoriesPlaylistsSettings

Coroutines and Loom behind the scenes by Roman Elizarov

Kotlin by JetBrains1 HN recommender · recommended in 1 month, 2023-2023
YouTube
41K views · 3 years ago · talk · dated

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.

Pointed to in Java 21 and Loom discussions as the Kotlin lead's authoritative view on coroutines versus virtual threads.

Python, Ruby & scripting languagesProgramming language designSoftware architecture & design#kotlin#coroutines#projectloom#virtualthreads#jvm

5 comments from Hacker News

@simon_void2023 · in “Kotlin Coroutines vs. Threads Performance Benchmark”

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.

CitesView on HN
@jillesvangurp2023 · in “Features of Project Loom incorporated in JDK 21”

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

CitesView on HN
@dangets2023 · in “Java 21: First Release Candidate”

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.

RecommendsView on HN
@soulbadguy2023 · in “The compact overview of JDK 21’s “frozen” feature list”

> 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 )

CitesView on HN
@gavinray2023 · in “The compact overview of JDK 21’s “frozen” feature list”

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

CitesView on HN
Rust's Journey to Async/Await48:46

Rust's Journey to Async/Await

InfoQ
90K views • 7 years ago
Breaking Down Programming Paradigms: APL's Surprising Learning Curve // Aaron Hsu // Dyalog '1759:03

Breaking Down Programming Paradigms: APL's Surprising Learning Curve // Aaron Hsu // Dyalog '17

Dyalog User Meetings
7K views • 9 years ago
Parallelism, Concurrency, and Asynchrony in Perl 6 / Jonathan Worthington58:08

Parallelism, Concurrency, and Asynchrony in Perl 6 / Jonathan Worthington

yapcasia
6K views • 11 years ago
Edward Kmett - Type Classes vs. the World1:42:53

Edward Kmett - Type Classes vs. the World

Boston Haskell
36K views • 11 years ago
"Stop Writing Dead Programs" by Jack Rusher (Strange Loop 2022)43:04

"Stop Writing Dead Programs" by Jack Rusher (Strange Loop 2022)

Strange Loop Conference
468K views • 4 years ago
CppCon 2018: G. Nishanov “Nano-coroutines to the Rescue! (Using Coroutines TS, of Course)”1:04:26

CppCon 2018: G. Nishanov “Nano-coroutines to the Rescue! (Using Coroutines TS, of Course)”

CppCon
40K views • 8 years ago
Brian Goetz - Stewardship: the Sobering Parts1:03:31

Brian Goetz - Stewardship: the Sobering Parts

ClojureTV
39K views • 11 years ago
Ideas about a new programming language for games.1:55:24

Ideas about a new programming language for games.

Jonathan Blow
530K views • 12 years ago
"Type-Driven Program Synthesis" by Nadia Polikarpova39:40

"Type-Driven Program Synthesis" by Nadia Polikarpova

Strange Loop Conference
15K views • 8 years ago
The Next Five Years of ClojureScript - David Nolen1:00:58

The Next Five Years of ClojureScript - David Nolen

Metosin
19K views • 10 years ago
MountainWest RubyConf 2014 - But Really, You Should Learn Smalltalk28:06

MountainWest RubyConf 2014 - But Really, You Should Learn Smalltalk

Confreaks
27K views • 12 years ago
Co-dfns Live Stream: Compiler Design and Architecture2:03:12

Co-dfns Live Stream: Compiler Design and Architecture

Aaron Hsu (arcfide)
21K views • 9 years ago
Solving Problems the Clojure Way - Rafal Dittwald1:02:26

Solving Problems the Clojure Way - Rafal Dittwald

Clojure/north
87K views • 7 years ago
How To Design A Good API and Why it Matters1:00:19

How To Design A Good API and Why it Matters

Google TechTalks
453K views • 19 years ago
Dynamic Languages Wizards Series - Panel on Language Design1:58:46

Dynamic Languages Wizards Series - Panel on Language Design

Eduardo Cavazos
16K views • 14 years ago
Design Patterns vs  Anti pattern in APL by Aaron W Hsu at FnConf1754:10

Design Patterns vs Anti pattern in APL by Aaron W Hsu at FnConf17

ConfEngine
8K views • 8 years ago
Mojo Lang - Tomorrow's High Performance Python? (with Chris Lattner)1:24:39

Mojo Lang - Tomorrow's High Performance Python? (with Chris Lattner)

Developer Voices
64K views • 2 years ago
Google I/O 2011: Java Puzzlers - Scraping the Bottom of the Barrel54:15

Google I/O 2011: Java Puzzlers - Scraping the Bottom of the Barrel

Google for Developers
60K views • 15 years ago
"Clojure in Unity 3D: Functional Video Game Development" by Ramsey Nasser and Tims Gardner46:22

"Clojure in Unity 3D: Functional Video Game Development" by Ramsey Nasser and Tims Gardner

Strange Loop Conference
24K views • 12 years ago
GopherCon 2014 Inside the Gophers Studio with Blake Mizerany48:19

GopherCon 2014 Inside the Gophers Studio with Blake Mizerany

Confreaks
8K views • 12 years ago