4 ms·
Rob Pike has a great blog post in which he addresses this: https://commandcenter.blogspot.com/2012/06/less-is-exponentially-more.html https://commandcenter.blog
by dguo 7y ago
Rob Pike has a great blog post in which he addresses this: https://commandcenter.blogspot.com/2012/06/less-is-exponentially-more.html https://commandcenter.blogspot.com/2012/06/less-is-exponenti...
"I was asked a few weeks ago, "What was the biggest surprise you encountered rolling out Go?" I knew the answer instantly: Although we expected C++ programmers to see Go as an alternative, instead most Go programmers come from languages like Python and Ruby. Very few come from C++."
He later writes:
"Python and Ruby programmers come to Go because they don't have to surrender much expressiveness, but gain performance and get to play with concurrency.
C++ programmers don't come to Go because they have fought hard to gain exquisite control of their programming domain, and don't want to surrender any of it. To them, software isn't just about getting the job done, it's about doing it a certain way.
The issue, then, is that Go's success would contradict their world view.
And we should have realized that from the beginning. People who are excited about C++11's new features are not going to care about a language that has so much less. Even if, in the end, it offers so much more."
- ChrisSD 7y agoI like Rob Pike but wow that sounds like a bad argument, at least based on the parts you quote. Saying, effectively, "you just don't understand how great it is" and then insulting the intelligence of C++ programmers isn't going to win many people over.
- pjmlp 7y agoWell, he also has another talk given at Microsoft, where he states that Java is too advanced for young Googlers thus something like Go is needed. In a company with funny interview games that even some Phd aren't able to tackle.
- dragonwriter 7y agoI think Pike actually missed a real reason for the effect he saw: Python and Ruby were at the time (and Python perhaps still is, Ruby less so) languages that were hot as on-ramp languages (Ruby especially in webdev, Python in a wider number of areas) where you had lots of people whose entire experience with programming was in that language, maybe one or two broadly similar dynamic languages (JavaScript especially), and maybe some static experience in C and/or Java (the latter often as the prior hot language for webdev for programmers who had run from there to Ruby.) For that kind of programmer, “more speed and easier deployment than Python/Ruby, less type-system incantation than Java, and more type-system value than C, with a decent concurrency system that seamlessly exploits available parallelism is a pretty compelling story, at least for some uses. But each of those features (and most combinations of them) are less surprising with broader experience, because they aren't all that uncommon, and Go is far from the best example of any of them, or even many useful combinations (not sure it's even the best example of all of them in combination.)