▲ | koito17 11 hours ago | ||||||||||||||||||||||
As the other commenter pointed out, this isn't restricted to strongly-typed functional languages. Clojure has core.async, which implements "goroutines" without any special support from the language. In fact, the `go` macro[1] is a compiler in disguise: transforming code into SSA form then constructing a state machine to deal with the "yield" points of async code. [2] core.async runs on both Clojure and ClojureScript (i.e. both JVM and JavaScript). So in some sense, ClojureScript had something like Golang's concurrency well before ES6 was published. [1] https://github.com/clojure/core.async/blob/master/src/main/c... [2] https://github.com/clojure/core.async/blob/master/src/main/c... | |||||||||||||||||||||||
▲ | Blackthorn 10 hours ago | parent [-] | ||||||||||||||||||||||
> something like Golang's concurrency That's wildly overselling it. Closure core async was completely incapable of doing the one extremely important innovation that made goroutines powerful: blocking. | |||||||||||||||||||||||
|