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.
Kotlin Coroutines: From Stackless to Full-Stack Implementation - Challenges and Solutions