Tech News
← Back to articles

Asynchrony is not concurrency

read original related products more articles

Yes I know about that one talk from Rob Pike.

The title of this blog post is not something you hear people say often, if ever. What you do hear people say is “concurrency is not parallelism”, but that’s not as useful, in my opinion.

Let’s see how Wikipedia defines those terms:

Concurrency refers to the ability of a system to execute multiple tasks through simultaneous execution or time-sharing (context switching)

Parallel computing is a type of computation in which many calculations or processes are carried out simultaneously.

What if I told you we’re missing a term to describe another aspect of concurrent programming and, because of it, we’re all collectively missing a key piece of understanding that has shaped our software ecosystems for the worse?

Well, I spoiled it in the title: the missing term is ‘asynchrony’, but why?

Two files

Say that you have to save two files and order does not matter:

io . async ( saveFileA , . { io } ) ; io . async ( saveFileB , . { io } ) ;

... continue reading