Go was written to solve an internal problem at Google.  Google needed efficient server side applications.  Python was too slow, and C++ was too hard to write, too buggy, and a pain for string work.  Google then developed good-quality libraries for all the things one needs for such applications. That made it an excellent language for server side work.<p>As a language in general, Go is practical and mediocre. This may be a strength.  Go lacks generics, and thus has to over-use introspection.  In practice, while &quot;interface{}&quot; implies extra run-time work, it tends not to end up in compute bound code.  (Two notable exceptions: sorting and database access.)  So that turned out to be less of a hassle than expected.  Also, from Google&#x27;s internal perspective, they&#x27;re mostly using their own data structures, and type-specific code may not be a big problem.<p>Go&#x27;s approach to concurrency hand-waves too much on the data sharing issue, and has soundness problems, but at least the language talks about concurrency and has some reasonable primitives.  C and C++ don&#x27;t even provide syntax for talking about concurrency.