YoVDO

Kotlin Coroutines: From Stackless to Full-Stack Implementation - Challenges and Solutions

Offered By: Java via YouTube

Tags

Kotlin Courses Asynchronous Programming Courses Coroutines Courses

Course Description

Overview

Save Big on Coursera Plus. 7,000+ courses at $160 off. Limited Time Only!
Explore the evolution and implementation challenges of Kotlin coroutines in this 47-minute Java conference talk. Delve into the redesigned coroutine support shipped in Kotlin 1.1, examining the shift from stackless to full-stack coroutines capable of suspending execution at any depth. Learn about the semantic issues encountered during implementation, the solutions developed to address these challenges, and how Kotlin achieved support for Go-like channels and CSP programming style. Gain insights into practical JVM implementation issues, trade-offs made by the Kotlin team, and the resulting impact on coroutine functionality. Discover key concepts such as suspending functions, coroutine builders, thread confinement, stack trace handling in exceptions, and library evolution. Understand the experimental status of coroutines and their potential for future development in Kotlin programming.

Syllabus

Intro
Async the Kotlin way (prototype)
Suspending functions: use
Suspending functions: declare (prototype)
Suspending functions: implement (prototype)
A problematic example
stack unwind convention
A solution (0)
Call/declaration fidelity
A solution (1)
Tail suspension
A solution (2)
Abstraction
A solution (4)
Recap steps to solution
The final touch: await extension
Coroutine builders (prototype)
Arbitrary suspending calls
Stackless vs Stackful coroutines
The problem with async
Composability: evolved
asyncul (prototype)
The actual Continuation interface
Thread confinement vs coroutines
Stack traces in exceptions
Library evolution: already there
Library evolution: WIP
A closing note on terminology
Experimental status of coroutines


Taught by

Java

Related Courses

JavaScript Promises
Google via Udacity
Grand Central Dispatch (GCD)
Udacity
Asynchronous Programming in C# and .NET Core
Microsoft via edX
JavaScript, часть 2: прототипы и асинхронность
Moscow Institute of Physics and Technology via Coursera
Разработка веб-сервисов на Go - основы языка
Moscow Institute of Physics and Technology via Coursera