and it is one of few developed-in-house things that became the productivity booster in my toolbox.
The interesting thing about it is that thanks to the expressive power of Tcl I was able to port not only the semantics but also almost completely mimic Go syntax.
> You can do concurrency on a single thread. This is the message I find it hard to get across when explaining CSP concurrency libraries.
Heck, there's an entire language built around single-threaded concurrency! Compiles to C, coincidentally - it targets embedded platforms. It's not quite CSP style though, it takes after Esterel and uses synchronous reactive concurrency:
However, as soon as you have multiple Céu programs communicating (for example, multiple Arduino's) the program-to-program communication is fairly CSP-like.
You can do concurrency on a single thread. This is the message I find it hard to get across when explaining CSP concurrency libraries.
Some people argue about usefulness of such libraries as being not native and leaky abstraction. I developed Go-style concurrency "port" to Tcl:
https://github.com/securitykiss-com/csp
and it is one of few developed-in-house things that became the productivity booster in my toolbox.
The interesting thing about it is that thanks to the expressive power of Tcl I was able to port not only the semantics but also almost completely mimic Go syntax.