Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

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.


My question is more general: what are some relative pros/cons of Go vs Erlang/Elixir when it comes to their approach to concurrency?


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 :)


This is great, really appreciate your insight as you seem to have good experience with both.


I 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.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: