2 ms·
I 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 desi
by ramchip 3y ago
I 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.