3 ms·
A major reason, in my opinion, is that Go addressed an actual need. And that is providing an imperative, GCed language with native compilation. We've seen some
by rbehrends 9y ago
A major reason, in my opinion, is that Go addressed an actual need. And that is providing an imperative, GCed language with native compilation.
We've seen some more languages that cover this particular niche in recent years, but they aren't yet mature and/or lack backing.
The biggest problem here is garbage collection. Garbage collection (or other forms of automatic memory management) has traditionally been necessary for functional languages and (as a matter of practicality) popular for interpreters and JIT-compiled languages, but has often encountered hostility and rejection among users of imperative, natively compiled languages. Go was simply one of the first languages to hit that niche and reach a sufficient level of maturity.
Putting up with Go's idiosyncrasies then became simply a tradeoff.
- kerkeslager 9y agoD was fairly mature before Go was invented, so I'd credit Go's success to Google hype rather than the reasons you mentioned.
- rbehrends 9y agoSorry, D's garbage collector is too limited to qualify. It is a stop-the-world, conservative collector with a history of performance problems [1]. And the fact that D development appears to be focusing on @nogc rather than fixing the GC issues also doesn't help. [1] Such as https://pointersgonewild.com/2014/09/09/ds-garbage-collector-problem/ https://pointersgonewild.com/2014/09/09/ds-garbage-collector...