3 ms·
My question is more general: what are some relative pros/cons of Go vs Erlang/Elixir when it comes to their approach to concurrency?
by ak_111 3y ago
My question is more general: what are some relative pros/cons of Go vs Erlang/Elixir when it comes to their approach to concurrency?
- bmitc 3y agoI don't really know about Go. I favor functional languages, and so I am drawn to Erlang and Elixir. I recommend watching Sasa Juric's talks on YouTube to best understand Erlang and Elixir's concurrency features. One of his talks is posted elsewhere in this thread already.
- ramchip 3y agoI replied more in details elsewhere in the comments, but in a nutshell Erlang/Elixir processes are a tool to contain errors, and they make some opinionated design choices to achieve that. Goroutines are a pure concurrency primitive, they don't contain errors. A goroutine crashing will take down the entire program. Elixir would be absolutely beautiful for a trading program - you could run each strategy (trading algorithm instance) in a separate process, so that a bug in one of them can't take down the whole system, and use monitors to guarantee orders are cancelled if a strategy crashes. I actually started learning it because I worked on such a system, and it was hard to sleep at night when any small coding error in the giant C++ codebase could send the whole thing crashing. It would definitely be too slow for HFT though :)
- ak_111 3y agoThis is great, really appreciate your insight as you seem to have good experience with both.