Concurrency in Go (or, Erlang done right)
docs.google.com
docs.google.com
Sometimes selective receive with erlang's pattern matching is really useful. How about erlang's supervision hierarchies and recovering from errors? Erlang's hot code upgrades on long-running systems to avoid any downtime?
Since go has/needs mutexes, it's laughable to say it's "erlang done right". It's nothing like erlang in that sense.
> Since go has/needs mutexes
I'm not sure it's really fair to say Go needs mutexes, just that they are available for you if you need the performance.
As an Erlang programmer that smacks of Erlang done wrong to me. I don't want shared access. With no shared access I can 'let it crash' and know that I have process isolation. This also means that OTP and my restart libraries will 'just work' Erlang For The Win! Go For The Gone!
Only if you're implementing higher-level concurrency primitives and want to maximize performance.
Did you completely ignore the context in which mutexes were mentioned in those slides?
Totally true - the Erlang too-dumb-to-be-a-cheap-shot was unwarranted. There are responses already posted in this thread along the lines of "This doesn't have anything to do with erlang at all" and they're completely justified.
The comment I responded to was calling out specific details out of context and making silly comparisons from there. That's all.
Also, I am not sure there is one solution that fits all problems. It depends on your problem what is easiest to use. I mostly program Erlang, but I am following along on the Go-path since it is an interesting language - a modern C is my view of the language.
Turn on the incognito mode of your browser or clear the cookies and try again, it should not prompt you to log in.