<@U2E974ELT> and everybody here: Do you think ther...
# coroutines
k
@elizarov and everybody here: Do you think there is value in educating devs about the difference between - async as in OS-level async IO and - async as in doing a blocking call on a thread pool ? Both approaches unblock the calling (main) thread but I think the scaling characteristics are way different. Maybe it's not that important on a client but on the server you should be able to get way more concurrency using true OS-level asynchronicity which requires the proper libraries.
đź‘Ť 4
g
I think it's very important (and not so obvious) knowledge for a developer, especially for a backend develper
c
i think if you say non blocking its clear that you mean the first definition
k
I agree
d
not really, most of the people I talked to (including myself) thought that non blocking call is done via offloading it to some kind of thread pool
k
The reason I'm asking is because at KotlinConf even some of the speakers didn't seem to address (not to say understand) the difference
d
I think it would be valuable
k
It would be useful to have some benchmarks to demonstrate the difference
s
The way
suspend
and
async
is handled was quite nicely explained by Roman during the workshop on Wednesday. But it sure could receive some more prominence to explain the differences.
k
I'm not talking about the
async
builder function specifically. I'm talking about async programming in general.
s
Sorry, i should not have put the suspend and async in back-quotes.. I also was talking about general suspending/async programming.
c
ok if non blocking is not clear, what about “evented io”?
g
The way
suspend
and
async
is handled was quite nicely explained by Roman during the workshop on Wednesday.
both of those approaches actually not related directly to real non-blocking code or just to offloading blocking code to another thread (I mean both of them can handle both types of async code)
i think if you say non blocking its clear that you mean the first definition
It’s actually wrong assumption. especially for highload development sorry, misread the message of Christoph, I thought that he talking about option 2
c
why?
g
because has very different level of scalability. There are real non-blocking api and just blocking API wrapped to threads/pools
sorry, misunderstood your message
of course, I agree that non-blocking is only 1st option and second usually just called “async”, but I still think that a lot of people don’t understand this difference
c
yeah i just wanted to say while you can call both async you can only call the first variant non blocking or evented