Ask HN: Is Go used at Google? What do they use it for?
I recently spoke with a Googler friend (not an engineer) who told me that Go adoption within Google itself is quite limited.
Is that actually the case? Beside the very team that maintains the language, what other teams/products do use Go as their main programming language? It's used pretty extensively. Standard language for log analysis (across all products), plus a bunch of newer microservices are written in it. It tends to be more internal tools & services, because... Google has the disadvantage of history: a lot of the primary products were written before Go came out, and a lot of the newer products are spin-outs from existing codebases. It's very difficult to switch the language of a large existing codebase, and particularly difficult to switch the language to Go (because its runtime is incompatible with C++ and the JVM). You pretty much need a clean-sheet project, which occurs when there's a new microservice that talks via RPC, but almost never occurs in a primary consumer-facing product. Do you think I'd be limiting my career at Google if I despise C++? I am in a java oriented team but anytime I have to touch C++ I feel sad. Would you say overall it’s easier to have impact there as a Java, C++, or Go focused Dev? Among the core languages - C++ > Java > Go > Python. Also possible to have a lot of impact with JS (client) > Java/Kotlin (Android) > ObjC/Swift (iOS). Most good devs - and basically all devs who make it to L5+ (Senior SWE) - will end up working in multiple languages, though. There are a bunch of proprietary ones as well, some of which are open-source (like Protobufs and Bazel) and a few I'm not at liberty to discuss. L6+ your soft skills (communication, EQ, management, prioritization) become more important than your technical skills. Thanks for the thoughts! I’m curious about the split between where C++ is often found and where Java is used. Is it more like less latency critical (or compute cost) services are in Java, and things like Search core are C++? Are there legacy reasons for one over the other? If you were going to spend time gaining experience in Java or C++, with a long term plan of working on something really interesting and high impact there, which would it be? https://go.dev/solutions/google/ lists three Google projects