4 ms·
Without more details, you're just going to get people's favorite language recommended or about how neither are suited to high-frequency trading applications.
by bmitc 3y ago
Without more details, you're just going to get people's favorite language recommended or about how neither are suited to high-frequency trading applications.
- ak_111 3y agoMy 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.