I enoyed this [unexpectedly] informative read right up until the conclusion:<p><pre><code> Even if we are using a language that manages memory itself
like Erlang, nothing prevents us from understanding how memory
is allocated and deallocated. Unlike Go Language Memory Model
Documentation Page that advices "If you must read the rest of
this document to understand the behavior of your program, you
are being too clever. Don't be clever.", I believe that we must
be clever enough to make our system faster and safer, and
sometimes it doesn't happen unless we dig deeper into what is
going on.
</code></pre>
The potshot at Go in the conclusion seems counter-productive. The author is certainly taking the quote in a different spirit than it was intended..<p>Erlang and Go have functional overlap, sure. However the trade-offs between both the guarantees and operational realities of the two languages leaves each one best suited to a different domain. Thus it is a pointless waste of time to argue and criticize one or the other in this manner.<p>While I may personally appreciate Go's opinionated-ness, it seems to lead to excessive amounts of conflict and drama. I wonder if it's an overall win or loss. On one hand, the controversy sparks interest which helps spread Go. On the other hand, it alienates many folks who may otherwise be open to getting involved.<p>Food for thought.<p>TLDR: It looks rather silly to compare languages with very different design goals.