← Back to context

Comment by stouset

21 hours ago

With all due respect, there are many languages in popular use that can do this, in many cases better than golang.

I believe it’s the only system you know. But it’s far from the only one.

> there are many languages in popular use that can do this, in many cases better than golang

I'd love to see a list of these, with any references you can provide.

  • Erlang, Elixir, Ada, plenty of others. Erlang and Ada predate Go by several decades, too.

    You wanted sources, here's the chapter on tasks and synchronization in the Ada LRM: http://www.ada-auth.org/standards/22rm/html/RM-9.html

    For Erlang and Elixir, concurrent programming is pretty much their thing so grab any book or tutorial on them and you'll be introduced to how they handle it.

  • Haskell would be one of them. It features transactional memory, which frees the programmer from having to think about explicitly locking.

There's not that many. C/C++ and Rust all map to OS threads and don't have CSP type concurrency built in.

In Go's category, there's Java, Haskell, OCaml, Julia, Nim, Crystal, Pony...

Dynamic languages are more likely to have green threads but aren't Go replacements.

  • > There's not that many.

    You list three that don't, and then you go on to list seven languages that do.

    Yes, not many languages support concurrency like Go does...

    • And of those seven, how many are mainstream? A single one...

      So it's really Go vs. Java, or you can take a performance hit and use Erlang (valid choice for some tasks but not all), or take a chance on a novel paradigm/unsupported language.

      2 replies →

  • Erlang (or Elixir) are absolutely Go replacements for the types of software where CSP is likely important.

    Source: spent the last few weeks at work replacing a Go program with an Elixir one instead.

    I'd use Go again (without question) but it is not a panacea. It should be the default choice for CLI utilities and many servers, but the notion that it is the only usable language with something approximating CSP is idiotic.