Which programming languages does Google use internally?

As David Petrou mentions, C++, Java, and Python are the most prevalent.

C++ generally powers compute-intensive back-end services, Java (and a wealth of libraries including servlets, Guice, and Guava) is often used for application logic, and many scripts are written in Python. Parts of YouTube are written in Python as well as some App Engine applications.

JavaScript is heavily used for client-side code, sometimes translated from Java with GWT (formerly Google Web Toolkit), and other times written by hand with the suite of Closure tools. Closure templates are written in a simple language called Soy.

Some less dominant languages include:

  • Sawzall, for processing log files.
  • Go (programming language), for highly concurrent systems. Nowhere near as popular as C++ but that may very well change in a few years.
  • Several small DSLs used for monitoring, builds, and deployment.

Perl, PHP, and Ruby are occasionally used for small scripts and web pages but not so much for production sites. Also see Neil Kandalgaonkar's answer to When will Google permit languages other than Python, C++, Java and Go to be used for internal projects?. He brings up some interesting points like readability reviews and how they affect language choice.

2 Replies to “Which programming languages does Google use internally?”

  1. Google is a very big company, and it also gives its engineers a large degree of freedom in choosing their tools.

    Most (but not all) low level server-side software is written in C++. Performance is of crucial importance when you operate hundreds of thousands of servers – 10% code optimization can result in saving millions of dollars. In extremely rare cases, some critical parts of the code are even written in assembly.

    Java is used extensively for higher level server-side code: consumer-facing UI, for example. As anywhere, if you're working on UI at Google, JavaScript is a must.

    Python is the de facto language of internal infrastructure tools. It's very flexible, and makes it easy to create data files which are themselves Python code. For example, Google's build system is written in Python. Mondrian (code review system) is, too. Python has been becoming more and more popular for writing Web-servers, as well, although I'm pretty sure all the big stuff (GMail, Maps, Google+ etc.) is in Java.

    These are the main 3. I'm sure you'll find almost any language used by some team in some experiment at some point, but these three are the ones that accumulated very large codebases that Google maintains and re-uses.

  2. There is no single programming language.  Google has a very open development environment with many different service APIs. 

    Java, Javascript, C++, Python, Go, Sawzal (a custom logging language), and probably a few other languages are supported.

    Search is mostly based on C++ and some Python.

    Ads is a Java/SQL stack.

    Google Apps is a Javascript/Java/C++ stack.

Leave a Reply

Your email address will not be published. Required fields are marked *