views:

770

answers:

7

What is Google's language of choice for backend development on their webapps? For the longest time I have thought it was Python. Is there a definitive source on this?

+1  A: 

They did introduce the app engine, which is powered by a modified Django framework. However, being the massive company that they are, it's possible that they are building on several technologies at the same time. Check out GWT. This is in addition to their JavaScript/SVG/VML work with Google Maps, etc.

Dimitry Z
A: 

Java is the no 1 language at google, followed by python. http://java.sun.com/developer/technicalArticles/J2SE/google/limoore.html

pdeva
That page doesn't claim anything about Java being the "no 1 language at Google" nor does it mention Python. I'm not going to start talking about how much of each language we use, but I would be skeptical of pretty much any claims beyond: "Google uses Java, C++, Python and JavaScript."
Jon Skeet
+13  A: 

From Steve Yegge's blog:

Q: Is it allowed at Google to use Lisp and other languages?

No. No, it's not OK. At Google you can use C++, Java, Python, JavaScript... I actually found a legal loophole and used server-side JavaScript for a project. Or some of our proprietary internal languages.

That's for production stuff. That's for stuff that armies of people are going to have to maintain. It has to be high-availability, etc. I actually wrote a long blog about this that I'll point you to that actually... Like, I actually came around to their way of seeing it. I did. Painful as it was. But they're right

Gabriel Isenberg
What's creepy is that I was reading Yegge's blog not three hours ago, and came upon this exact segment.
Edward Z. Yang
+2  A: 

Guido van Rossum, the creator of Python works there and spends half his time working on Python, so they have a vested interest in that.

John Sheehan
+4  A: 

There is a set of acceptable-for-production languages we use that Steve mentions a subset of above.

Some infrastructure is better supported in one language than another, so that can influence what you use, as can (arguably) performance.

Much of your choice of language is of course based on what the rest of your project uses! But the big 4 are the ones Steve mentions above, with applicability pretty much where you'd think: C++ & Java for server code, Python for scripting, and Javascript for front-end.

Moishe
And of course for non-production stuff, all bets are off. My 20% project is in C#, I'm happy to say :)
Jon Skeet
+1  A: 

The Google App Engine (GAE) is programable in Python. In fact the developer of Python works for them. They may support other languages but not yet. Among the libraries they provide on GAE they include many standard libraries and some non-standard. They also provide the Django Template Language. This is not the same as the "app engine is powered by Django". In fact the Django ORM does not work on GAE and, therefore the Django Database administrative interface does not work there either. Django applications do not work on GAE without major modifications and vice versa. (for the average reader, this is not a critique of Django which is an excellent framework, just a clarification of a common misconception).

You can upload other Python modules on GAE and therefore you can upload many other template languages but you still have to use the GAE API to talk to the Google datastore.

web2py is the only Python framework that runs on GAE integrally because the the web2py Database Abstraction Layer has been ported to the GAE (it also works with MySQL, PostgreSQL, MSSQL, FireBird, Oracle and SQLite). This means you code once and you can run on your PC, on Google, on the iPhone, etc.

massimo
A: 

http://highscalability.com/google-architecture has some interesting information, although more focused on the architecture. They don't mention what the primary language is but they do say:

Python, Java, C++

cole