Proposal for Concurrency in Swift

Hello! I suspect many of you may be interested in seeing or even weighing in on this concurrency proposal for the Swift programming language. If so, check out the below gist and contribute comments there if they will help Lattner and others evolve Swift.

We propose the introduction of a first-class actor model, which provides a way to define and reason about independent tasks who communicate between themselves with asynchronous message sending. The actor model has a deep history of strong academic work and was adopted and proven in Erlang and Akka, which successfully power a large number of highly scalable and reliable systems.


Good luck to the Swift team, I’m not sure how they’re going to go about it but I’ve read Joe Armstrong criticise approaches like Akka a fair bit:

Why do Erlang and Elixir have the same “semantics”? The reason has to do with the underlying machine. The garbage collection behavior, the non-shared concurrency model, the underlying error handling and code loading mechanism are identical. They must be identical: they run on the same VM. This is also why things like Scala and Akka will never be like Erlang. Scala and Akka run on the JVM so under the covers, things like garbage collection and code loading are fundamentally different.

Maybe point them to that? (Not sure if it will be helpful or not tho.)


Speak of the devil: