7 ms·
What a wild generalization. I skimmed the article, and I see his point in "Go was designed by people working at Google to make it easier to write Google-relevan
by REALiSTiC 6y ago
What a wild generalization. I skimmed the article, and I see his point in "Go was designed by people working at Google to make it easier to write Google-relevant software, in particular network-resident servers", but that doesn't mean Docker and Kubernetes (and other tools that enable communicating with/usage of cloud infrastructure) being written in Go made it become the de-facto standard, and especially not "the language of cloud infrastructure". What about ALL the other components NOT written in Go?
- throwaway894345 6y agoI feel like "Go has become the language of cloud infrastructure" is a bit of an inflammatory headline for this forum--I'm sure there are many cloud infrastructure components which aren't written in Go. The ones I think of tend to be AWS services that are written in Java or a handful of odds-and-ends things in Rust like AWS's Firecracker or some of CloudFlare's high performance networking systems. But especially in the open source world, there seems to be a lot of cloud infrastructure written in Go, and it seems to be accelerating. So in a sense I can understand saying "Go is the language of cloud infrastructure", but that framing seems unlikely to yield any interesting conversation. > What about ALL the other components NOT written in Go? Out of curiosity, which components are you thinking about?
- msla 6y ago> Out of curiosity, which components are you thinking about? I could start listing off OS kernels, and then I'll move on to device drivers and hypervisors. "The Cloud" is enabled by the fact we can efficiently separate applications and users running on the same hardware. The software which ultimately enables this is not written in Go... or Rust... or C++... or any other "hyped" language, but it is still an essential part of any cloud service.
- jrockway 6y agoGo certainly has a lot of mindshare in this space, and that can't be ignored. Some components of my production infrastructure I've used over the last year: cert-manager, concourse-ci, docker-registry, cilium, coredns, loki, grafana, prometheus, jaeger, influxdb, kubernetes, open-policy-agent; all those are Go. It's at the point where if you're in the business of writing software to run software, you're kind of surprised if you show up at some Github repo and it's not written in Go. But, the joy of 2020-era design is that nothing is forcing you to use Go. Everything is coupled with network APIs these days, so you can generate your protocol buffers for whatever language you want and write your chunk in that. You don't have to look at the success of Go in this space, think "but I don't like it", and leave the field. You can do whatever you want. But, I do think it's accurate to say that Go has a lot of mindshare in this sphere of the Universe. It is what it is.
- lostmsu 6y agoHuh? I am sure 80%+ of AWS is Java and probably 90%+ of Azure is C#. I doubt it is going to change any time soon. Kubernetes is but one successful cloud product out of Google, and it just happened to be written in Go. There are even rumors in that thread about it starting as Java.
- wikibob 6y agoWord on the street is that AWS is writing more and more Rust
- khuey 6y agoGo is reasonably big on the open source side of the cloud space.
- lostmsu 6y agoNot sure what you mean by "open source side" of the cloud space. PostgreSQL is still C, and Mongo is still C++ + Node.js.
- tapirl 6y agoThe two don't belong to "cloud infrastructure".
- lostmsu 6y agoThe conversation is about "cloud space". Also, by restricting to open source you dropped 2 biggest and successful players.
- zeroc8 6y agoSure, but Go has enabled a lot of great software in a very short amount of time. If you are in the cloud business, you'd better take a serious look at Go if you don't want to be out competed. It hits a sweet spot between performance and ease of use - feels almost like Python, performs almost like C++.
- linuxftw 6y ago> What about ALL the other components NOT written in Go? Those components are either being rewritten in go, or packaged as containers to run on infrastructure that is written in Go.
- msla 6y agoCan you name an OS kernel being rewritten in Go?