3 ms·
if you want true concurrency, why not use goroutines? It provides single binary deployment and static types?
by faangguyindia 5mo ago
if you want true concurrency, why not use goroutines?
It provides single binary deployment and static types?
- relistan 5mo agoI am a Go dev, too. I consider Go my main language. The BEAM has a very, very similar architecture to the M:N scheduler in Go. Goroutines are not dissimilar to BEAM processes. You can similarly run thousands of processes on the BEAM. But Go does not have a real Phoenix equivalent and there are reasons to use Elixir and BEAM, especially on the web side, including some of what I already mentioned above.
- out_of_protocol 5mo agoElixir is very ergonomic when it comes to concurrency, e.g. parallel-map example: 1..10 |> Task.async_stream(fn x -> x*2 end, max_concurrency: 2, timeout: 7000, on_timeout: :kill_task) |> Enum.to_list() Equivalent Go code would be very long and very ugly. Golang has its positives but you also lose a lot. Whole ecosystem is not comparable, like "debug live production cluster" is one-command away for Elixir vs "fuck you" for Golang