Erlang, however, is much better at distributed concurrency. There are few who suits this use case better.
As in all cases. Use the best tool for the job.
Erlang is great though, especially Elixir, but for some use cases Go is better.
Point is that they all have their strengths, but one is not necessarily better than the other. As with all things digital, it depends.
I commented before your edit. The question I responded to was something like "What can you do in Go that you can't do in C++ or Java?"
> 99% of projects don't need green threads.
Perhaps not need, but many of those projects are paying a large opportunity cost in today's no-free-lunch, multicore, I/O-bound world.
> But for those that do, I'd much rather use a language better suited to the purpose, like Haskell or Erlang.
I dispute that Haskell or Erlang are better suited for the purpose. And good luck finding Haskell and Erlang developers.
> This isn't a very convincing argument for Go.
I disagree.
Unless you need a massive number of developers, or you're located out in the middle of nowhere, it really shouldn't be too difficult.
99% of projects don't need green threads. But for those that do, I'd much rather use a language better suited to the purpose, like Haskell or Erlang. This isn't a very convincing argument for Go.