Of all the actor systems my personal view is that there really are only 2 - erlang and akka for the JVM that really matter. The rest are experimental or really niche. I don’t know much about akka .NET but its probably a really really small number 3.
Yes there is there is an opportunity for OCaml to have a good actor system here. But:
- OCaml ecosystem is still in a huge flux or rather will be in a flux. Multicore will take some time to get merged and libraries will take a year or two after that to get settled. Even though a few people would argue that multicore is not necessary for a Actor like system in OCaml (as most of the time Actors tend to be IO bound and not CPU bound mostly) but in 2021 if you’re building a brand new actor system your chosen language runtime should be capable of true parallelism (a personal opinion). Also monadic concurrency is not a very user friendly. Here OCaml effects should help but that again will come with an unknown delay after Multicore is finally merged
- I don’t know the history of Akka but today it is a professional effort run by a company (lightbend). An OCaml effort is unlikely to get corporate backing due to the smaller size of the OCaml ecosystem. A passionate band of contributors could come up with something in a couple of years that becomes a phenomenon (corporate backing be dammed). That is always possible.
OCaml’s small contributor pool currently is another limiting factor. However, though I may sound pessimistic I think that OCaml actually has an extremely bright future ahead of it. Its technical foundations are actually quite strong and in some respects better than its often compared cousin Haskell (strict by default, simpler runtime, simpler language, no bottom in every type, generally a more nimble runtime, less type jugglery, fast compile times and the list goes on) but it is still remains very principled. It hits the right spot for me at least.
TL; DR - OCaml is the right language for all kinds of systems of the future but first the language needs to get to the future – fast! (multicore and effects specifically speaking).