3 ms·
Given Golang popularity, it probably managed to solve more than Google's internal issues. It most likely ticked quite few boxes right: * easy syntax * fairly
by kakwa_ 3y ago
Given Golang popularity, it probably managed to solve more than Google's internal issues.
It most likely ticked quite few boxes right:
* easy syntax
* fairly extensive std lib
* easy memory management & mostly painless GC
* easy shipping of dependencies (everything in one file, including runtime)
* order of magnitude less tricky parallelism.
In a world where Golang doesn't exist, quite a few recent software would probably look really different:
* Etcd but in Java (hello Zookeeper)
* Terraform but in Python
* Docker but in C/C++ or Python
* Kubernetes, but in Java and/or Python and/or C++ (hello Mesos)
* Prometheus, but in Java and/or C/C++
And honestly, for most of these, either because alternatives in such languages do exist and mostly failed, or from performance/stability concerns, I think we would not have been better of.
- kaba0 3y agoC++ and Java are still eons bigger within Google, and plenty new software is started with those over Go.
- kakwa_ 3y agoGolang is not a complete replacement for Python and/or Java and/or C++. For example, if you were to create a complex native application (browser, game, cad software, etc), C++ is still probably the best choice. For data manipulation/transformation or glue scripting, Python is still a more convenient choice. If you want to structure an extremely large codebase and depend on tons of "Enterprisy" stuff, Java is most likely a good choice. (note: I'm caricaturally oversimplifying) Also software is rarely created in a vacuum: 1) software teams have certain skills and habits 2) new software is often created in a preexisting context 3) In fairness, language choice is often not that critical 4) Developers can be extremely vocal about technology choices, often way beyond the reasonable For all these reasons, even if we fall right in the Golang niche (small to medium size web api/app, "devops" tools/infra management and partially, some DB use cases), choosing Java/C++ over Golang could actually be the right choice.