It’s actually not that hard to use async libraries in sync context. I rarely need that but if I do, I just pull in an executor and write a little extension trait for futures that lets me call .block() instead of .await.
In the large yearly stack overflow survey it has been the “most loved programming language” for the past 8 years in a row and at the moment its admiration is only growing. I don’t see anything stop this streak anytime soon. For good reasons.
It’s actually not that hard to use async libraries in sync context. I rarely need that but if I do, I just pull in an executor and write a little extension trait for futures that lets me call .block() instead of .await.