This article reminds me that I want to play with Coconut (http://coconut-lang.org/) some more.
Great article. The “functional runtime” mentioned towards the end reminds me of Gary Bernhardt’s “functional core, imperitive shell” concept. He talks about it some in this talk: https://www.destroyallsoftware.com/talks/boundaries
Gonna need to re-read a bit to get my head around the “actions as objects” idea, but good stuff overall.
There is also a talk by @pushcx which explores a similar direction: https://www.youtube.com/watch?v=uFpXKLSREQo
I found it very interesting.
To give credit where it’s due, Bernhardt’s Boundaries talk directly inspired the experimentation that became that talk.
(F#) Fable: http://fable.io
(Ocaml) Reason + bucklescript: https://facebook.github.io/reason/
(Clojure) Clojurescript: https://github.com/clojure/clojurescript