More generally, Van Roy sees a layered language design with four core layers, a structure which has been independently discovered across multiple projects:
The common language has a layered structure with four layers: a strict functional core, followed by declarative concurrency, then asynchronous message passing, and finally global named state. This layered structure naturally supports four paradigms.
Van Roy draws four conclusions from his analysis here:
- Declarative programming is at the very core of programming languages.
- Declarative programming will stay at the core for the foreseeable future, because distributed, secure, and fault-tolerant programming are essential topics that need support from the programming language
- Deterministic concurrency is an important form of concurrency that should not be ignored. It is an excellent way to exploit the parallelism of multi-core processors.
- Message-passing concurrency is the correct default for general-purpose concurrency instead of shared-state concurrency. Declarative interfaces are also composable
Programming paradigms for dummies: what every programmer should know
from Adrian Colyer
- A bay is a noun only if water is dead. When bay is a noun, it is de...from Robin Wall Kimmerer
- Among our Potawatomi people, there are public names and true names....from Robin Wall Kimmerer
- Dependencies (coupling) is an important concern to address, but it&...from kbouck
- Deep and shallow modules: The best modules are deep: they allow a ...from John Ousterhout
- By replacing integration tests with unit tests, we're losing al...from Computer Things
- Words matter, and the words you say about yourself and other people...from Josh Beckman
- I propose that there is one problem chief among them, an impetus fo...from George Hosu
- When software -- or idea-ware for that matter -- fails to be access...from gist.github.com