I think the illusion of competition mostly comes from how Go was touted when it first came out. To quote the google announcement:<p>"For that reason, Some smart Google engineers decided that it’s time to address the limitations of C and C++ by designing a new programming language: Go.
[...]
Go is based on the C programming family, one of the most widely used programming language trees in the world
[...]
Go attempts to combine the development speed of working in a dynamic language like Python with the performance and safety of a compiled language like C or C++.We’re hoping Go turns out to be a great language for systems programming with support for multi-processing and object-oriented design, with some cool features like true closures and reflection.”<p>I was there when it happened, so regardless of the way go is being used and what it's being touted for <i>now</i>, in 2009-2011 it was all about Google's new systems programming language, set to replace both C and C++. And it was very clear that by "systems programming" Pike et. al meant any kind of job that was traditionally relegated to C/C++:
<a href="http://www.informit.com/articles/article.aspx?p=1623555" rel="nofollow">http://www.informit.com/articles/article.aspx?p=1623555</a><p>Rust came out only slightly later and was also touted as a system programming language. From the the rivalry sprang out.<p>It turns out that Go's trade-offs and focuses (implementation simplicity, relative familiarity, static compilation, solid tooling, solid stdlib and easy concurrency) fit well for its eventual target demographics of web servers, networking and command line tools. These are all places where C/C++ had some foothold, but more often than not Go was replacing (or competing with) Ruby, Python or Node.<p>Rust, on the other hand, took over most of C++'s trade-offs and focuses (Zero-cost abstraction, expressive power and full control over memory management) while relatively neglecting I/O, tooling, ergonomics and the stdlib in the beginning. This attracted a very different crowd that looked to solve very different problems.