Roman Elizarov
1 min readOct 20, 2018

--

Thanks for the article. We definitely need to talk more about the perils of unstructured concurrency. Let me add a note about Kotlin’s “grey area” here. Even though Kotlin does not have await keyword, all the points in code where context can switch (suspension points) are clearly marked in Kotlin by IDE. The reason to omit await keyword was both syntactical (we can naturally support more language constructs, e.g. we don’t have to a special await for loop, etc) and philosophical. In Kotlin you cannot omit await and get a task started concurrently. All concurrency in Kotlin is explicit and requires you to write more code, not less. It is covered in more details in “Introduction to Coroutines” talk for KotlinConf 2017: https://www.youtube.com/watch?v=_hfBv0a09Jc

--

--

Roman Elizarov
Roman Elizarov

Written by Roman Elizarov

Project Lead for the Kotlin Programming Language @JetBrains

Responses (1)