While teaching INGI1131, my concurrent programming course, I have become even more impressed by a concurrent paradigm, namely functional programming extended with threads and ports, which I call multi-agent dataflow programming.
This paradigm has many good properties:
- The declarative concurrent subset (no ports) has no race conditions and can be programmed like a functional language.
The basic concept is dataflow synchronization of single-assignment variables.