Hacker News new | past | comments | ask | show | jobs | submit login

Very curious about what that Java program is.

GWS (Google Web Server). Powers websearch, responsible for rendering everything you see when you run a search. It used to have a Wikipedia page but basically everything on the Wikipedia page was wrong so the admins eventually deleted it (edit: apparently it's back. Basically everything on the wiki page is still wrong, but at least it doesn't claim GWS is an Apache derivative now). It's the oldest continually-pushed binary at Google (originally written 1999 by Craig Silverstein; at least when I left it still had code in it from Craig, Marissa Mayer, and Sergey Brin). It's changed programming languages twice (from C to C++ around 2005, and from C++ to Java etc. around 2010), and when I left was a frankenmonster of C++, Java, and two proprietary DSLs. My understanding is that it still exists, though most of my friends at Google have since moved on to other teams.

Thank you. Can you talk about the reasons that necessitated the rewrite from c++ to java? I didn’t realize Brin wrote any code that wasn’t python either.

I personally wasn't a big fan, I liked C++ (and Python - there was an embedded Python interpreter in 09-10 that was a casualty of the rewrite, and IMHO Python was a lot more productive than Java for experimentation).

There were some pragmatic reasons though. It's very difficult to multithread C++ correctly, while Java at least has a proper memory model and thread support (note that this was before C++11; at the time C++ had no standardized memory model at all). Debugging core dumps in production sucked. Most of the newer parts of the company (GMail, Docs, Google+, etc.) were written in Java, and the rewrite let us share code with them. Compile times sucked, and Java let us pluginize the architecture, load code at runtime, and build & push each component team's codebase independently (as well as shut them off independently if they started crashing).

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact