3 ms·
I think Go is made for writing a certain kind of software that is important for Google, and for a certain kind of developer Google wants to have writing this so
by tempodox 3y ago
I think Go is made for writing a certain kind of software that is important for Google, and for a certain kind of developer Google wants to have writing this software. That the result is not the kind of language I would want to use is immaterial. I'm quite sure Go is masterfully targeted for the purposes Google wants it for.
- pjmlp 3y agoGo was designed by a couple of well known UNIX folks that dislike C++. With exception of Kubernetes, most of Google's software keeps being written in Java, C++, Kotlin, and nowadays Rust. Its use is much more widespread outside Mountain View walls than inside them.
- seabrookmx 3y agoAnd remember that unlike Amazon does with AWS, Google doesn't use GCP/Kubernetes to run it's infrastructure. Google's software runs on Borg, which is _not_ written in GoLang. Google's three OS projects all eschew GoLang as well.
- slinkyavenger 3y agoBoth criticisms are pointless - 1. Borg precedes K8s and likely is tightly coupled with Google's backend infra - that's to say, Borg gets architected around Google's existing workflow and new backend development is written around Borg's workflow. 2. GoLang was never intended to be an OS-level programming language. It was created to enable more robust, efficient, and rapid development in a particular space. It would be just as silly to argue that Google's three OS projects all eschew Dart.
- vips7L 3y agoIsn’t Fuchsia designed to use Dart for the front end?
- seabrookmx 3y agoI'm not actually criticizing GoLang, just pointing out some facts. 1. is fair. 2. I'd argue is false, given Fuschia and Dart are tightly integrated (as another commenter noted) and that GoLang was originally designed as a C++ replacement born from the Plan9/Inferno tool chains (certainly "OS-level"). Also there's a ton of non-kernel code in an OS so this is a really blurry distinction. containerd does some pretty low level stuff with Linux and GoLang is perfectly capable of this.. if Fuschia wanted to use it they could.
- pjmlp 3y agoIn fact, Fuchsia's original TCP/IP stack and volume manager were written in Go. They were however rewritten in Rust, after the author left Google and they wanted to clean Fuchsia from Go code.
- pjmlp 3y agoFlutter/Dart is Fuchsia's UI framework. Go was created by three folks that got fed up waiting on C++ compile times, and from their point of view Go is designed for people unable to take feature rich languages, on Rob Pike's own words. "The key point here is our programmers are Googlers, they’re not researchers. They’re typically, fairly young, fresh out of school, probably learned Java, maybe learned C or C++, probably learned Python. They’re not capable of understanding a brilliant language but we want to use them to build good software. So, the language that we give them has to be easy for them to understand and easy to adopt." Or alternatively, "It must be familiar, roughly C-like. Programmers working at Google are early in their careers and are most familiar with procedural languages, particularly from the C family. The need to get programmers productive quickly in a new language means that the language cannot be too radical."