Asked By – Ron Chan
Google’s heavy usage of Python, is it just a matter of taste or does it give them a competitive advantage?
Now we will see solution for issue: Heavy usage of Python at Google [closed]
I can’t really give a definitive answer, because by the time I interviewed at Google in 2004 Python was already prominent at Google.
Indeed, there’s one apparently attractive explanation that I can definitely deny: it’s not that Google uses Python because it employs so many prominent Pythonistas — rather, most “prominent Pythonista” googlers joined Google, at least in part, because we knew about Python’s prominence there (possible exceptions include Peter Norvig and Jeremy Hylton, but historically Google’s choice of Python predated even them).
That’s definitely why I first got interested (my publisher let me know about the large amount of copies of my book that Google was purchasing — at first, I thought of it as a good opportunity to sell my freelance consulting service…;-), how I was later able to convince Guido to join us, and, I believe, part of the motivation for such Pythonistas as Greg Stein, Wesley Chun, Fredrik Lundh, Thomas Wouters, Collin Winters, Jeffrey Yasskin, …
It all got started, I believe, because the very earliest Googlers (Sergey, Larry, Craig, …) made a good engineering decision: “Python where we can, C++ where we must” — they used (a subset of) C++ for the parts of the software stack where very low latency and/or tight control of memory were crucial, and Python, allowing more rapid delivery and maintenance of programs, for other parts. At the time, late ’90s, the choice for the latter role was essentially between Python and Perl: other scripting languages were either unripe (I don’t think Ruby was around yet, for example) or had other issues and limitations. Perl was more mature (especially in terms of its ecosystem of available add-ons via CPAN), but Python was deemed to be more readable and maintainable, and interfacing to C++ libraries (via SWIG) was easier.
Other languages, including the ones that Greg mentioned back in ’06, are either “kind of accidental” or used for other specific tasks (e.g., Objective C for clients on iPhones or Macs) — e.g., when Google hired its first system administrators, those employees inevitably came with very strong mastery of Perl and Bash, and often used either of those languages to develop some complex internal system; recoding those in Python (for easier deployment and maintainability) has often happened. Others (such as C#) may have been in the mix temporarily due to acquisitions, but, again, recoding in one of the “main Google languages” is always a pretty high priority (in C#’s case, recoding would typically be mostly in Java, as the two languages address similar areas in terms of levels of abstraction).