The Bare Essence
The bare essence of successful component-based software is:
- concurrency
- 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