Hacker News new | ask | show | jobs
by nostrademons 1918 days ago
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.

2 comments

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?