5 ms·
100% agree re: readability (as I've mentioned elsewhere). I've actually been very surprised at the near-ubiquity of Go in the modern infrastructure/tools space
by rpercy 10y ago
100% agree re: readability (as I've mentioned elsewhere).
I've actually been very surprised at the near-ubiquity of Go in the modern infrastructure/tools space though. Seems like each new OSS product I evaluate is written in Go. See companies like Cloudflare, Hashicorp, InfluxData, CoreOS, and, obviously, big projects like Kubernetes.
- user5994461 10y agoGo is meant for distributed systems. All these companies, and generally speaking a lot of infrastructure thing is in that domain. They use the right tool for the job.
- IshKebab 10y agoI think that's mostly because Go trivially generates static binaries, and cross-compiling is also trivial (as long as you don't use CGo). I can't actually think of a single other language that matches that. Rust might get there one day but cross-compiling still requires a C cross-compiler (ugh) and C dependencies (e.g. OpenSSL) are often dynamically linked.
- steveklabnik 10y agoCross compiling shouldn't require a C compiler unless you have a dependency on C code. Most wrappers should at least provide an option to statically link the C; I know the OpenSSL ones do.
- IshKebab 10y agoNot a C compiler, but you need a C linker, which is just as much hassle. Apparently there is work going on to use LLVM's lld linker, which I guess might support cross-compiling in a sane way but I haven't checked. And yeah most wrappers provide a static linking option but there's not much consistency which is rather annoying.