The bare essence of successful component-based software is:

  1. concurrency
  2. isolation.

Concurrency

Concurrency is often conflated with parallelism.

Concurrency is a paradigm.

Parallelism is just a problem-to-be-solved.

All parallel programs are concurrent.

Not all concurrent programs are parallel.

I found that Rob Pike’s talk gave me words to describe this split (concurrency vs. parallelism).

Isolation

We want isolation.

Synchronous Language Plus a Thread Library

A synchronous language plus a thread library is not the same as starting out with an asynchronous language.

The thought patterns are quite different.

I have never seen a successful drawing language which started out life synchronously, nor have I ever seen LEGO-like snap-together blocks done with synchronous thinking. (API’s don’t even come close).

See Also

Isolation II
Isolation III
Isolation IV
Asynchronous Thinking

Blog
References