Less is Exponentially More (2012)
Rob Pike&#x27;s confusion about why C++ programmers didn&#x27;t want to move to go is partially explained by his focus on a particular problem domain at the time Go was being developed. Google in those days was primarily concerned with writing highly concurrent request processing software, and at that time the vast majority of that software was written in C++. Writing highly concurrent C++ in the days before the language had things like lambdas, std::function, std::future, etc was definitely gross. In practice, a lot of the concurrent C++ code from that time period took on the callback-hell flavor of node.js code, but without the concise nature of JS. It was gross.<p>Go is <i>obviously</i> a superior language to C++ for writing concurrent programs in every way except possibly when you need to achieve maximum possible throughput (as in google&#x27;s search clusters) or minimum possible latency (are HFT shops switching to go? I honestly don&#x27;t know). However, outside of a few companies that have huge capacity problems, people weren&#x27;t writing concurrent request serving programs in C++. They were using Python, Java, etc., and later, Node.js. So its no surprise that people flocked to Go from those languages and not C++, because there wasn&#x27;t a huge population of C++ programmers in this problem domain looking for a better language in the first place.<p>The other C++ programmers were down the hall, working on Chrome and Android (which has a ton of C&#x2F;C++, despite Java being the primary app development language). The reason they didn&#x27;t, can&#x27;t, and won&#x27;t switch is that managed languages like Go are not well suited to highly resource constrained environments like phones, or browsers that are supposed to run on win XP machines. (To say nothing of games).<p>The advantage of C++ is not, as Pike pompously suggests, that C++ programmers have too much fun playing around with templates and other navel-gazing pursuits. The advantage is that it is a high-level language that lets you do what you need to do with very, very close to the minimum possible resource usage. And there are programming environments where that really matters, and those environments are never going away.