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

Uh... Really?

The example at hand was netflix... The bulk of the platform seems pretty stable to me. If they are rewriting their best code every 2-3 years that'd be a red-flag to me.

I worked on Google Search for 5 years. You would probably say Google Search is pretty stable - at least, when was the last time you noticed it go down? The half-life of code I worked on was about 1 year. Over a 2-3 year period, 75-90% of it would be gone.

We did things like incrementally rewrite a million-line binary from C++ into Java while it was running, or completely change the indexing system from batch processing to continuous updating, or grow the number of documents indexed from about 80B to 1T. There's a huge iceberg of development that you don't see, much of which has to do with scalability (you generally have to rewrite every time a key metric grows by a factor of 10) and much of which is experimental, trying out new features to see what resonates with the userbase.

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).

Registration is open for Startup School 2019. Classes start July 22nd.

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