Roman Elizarov
1 min readNov 4, 2018

Coroutines are not about multi-threading at all. The main benefit of coroutines is that you can write asynchronous code without callbacks. Avoiding concurrency is another reason we recommend launching coroutines in the main thread. This way your code behaves just at it used to behave with callbacks — no additional threads, no additional concurrency beyond you callback-based code.

All in all, writing responsive UI applications or scalable backend systems is not an easy task to start with, whether you use coroutines or not. In both cases differentiating between CPU-bound and IO-bound is important if you care about responsiveness and scalability. Coroutines, by themselves, do not add anything new to that picture. All these tools were in developers’ toolbox for many years. Coroutines just make this kind of code more pleasant to write from syntax and readability standpoint, making responsive and scalable apps a little bit closer to the reach for less experienced developers.

Sign up to discover human stories that deepen your understanding of the world.

Free

Distraction-free reading. No ads.

Organize your knowledge with lists and highlights.

Tell your story. Find your audience.

Membership

Read member-only stories

Support writers you read most

Earn money for your writing

Listen to audio narrations

Read offline with the Medium app

Roman Elizarov
Roman Elizarov

Written by Roman Elizarov

Project Lead for the Kotlin Programming Language @JetBrains

Responses (1)

What are your thoughts?

I completely disagree that differentiating between IO and CPU bound tasks is either sufficient or even necessary for either scalable or responsive systems.
You don’t need to care about that in backends that don’t reach a particularly high traffic or…