this post was submitted on 23 Jan 2024
0 points (NaN% liked)

Rust

5938 readers
1 users here now

Welcome to the Rust community! This is a place to discuss about the Rust programming language.

Wormhole

!performance@programming.dev

Credits

  • The icon is a modified version of the official rust logo (changing the colors to a gradient and black background)

founded 1 year ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
[–] huntrss@feddit.de 0 points 9 months ago (2 children)

I think the article is ok, and yes I read it ;)

I think the title is unnecessary click-baity, because there are some relevant truths to it.

Most relevant truth us, that a lot of applications won't need async since they are not large enough, not IO bound etc..

I think one of the misconceptions in this article is, that the author arguments that you need to be an Amazon or google to benefit from async. This is not completely wrong but, as a software developer in the embedded system industry that I am, I must say it is also very relevant for embedded systems.

If someone read the article and is unsure about async, I can recommend these two articles that provide insights "from the other side" these means devs that actually find async relevant and beneficial:

https://notgull.net/why-you-want-async/

https://without.boats/blog/why-async-rust/ The article from boats is absolutely worth it. Even if you are an async sceptic.

Finally regarding the introduction of async APIs and abstractions into any code base:

Creating an async application or sync application is an architectural decision. And since architecture is the sum of all decisions that are hard to change (I think this is from Martin Fowler) thus decision - async or sync - is hard to change and one must live with it.

Yes, there are languages like Go or Erlang that resolve this async vs. sync problem, they come at a cost (having a runtime, at least Go has one afaik, I no nothing about Erlang). And choosing a particular language is also an architectural decision and hence hard to change.

[–] taladar@sh.itjust.works 0 points 9 months ago (1 children)

Creating an async application or sync application is an architectural decision. And since architecture is the sum of all decisions that are hard to change (I think this is from Martin Fowler) thus decision - async or sync - is hard to change and one must live with it.

For applications that is true but for libraries it often is not. You can e.g. design REST API libraries quite well with most of the code ignoring sync vs. async completely and only the part that actually performs requests in a general way has to handle the distinction which is why many of them include both versions.

[–] huntrss@feddit.de 0 points 9 months ago

Thanks for the clarification. This is especially true for libraries that can benefit from async.