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

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.




Consider applying for YC's Fall 2025 batch! Applications are open till Aug 4

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

Search: