Nytro Posted November 20, 2013 Report Posted November 20, 2013 [h=1]Google Engineering: Why does Google prefer the Java stack for its products instead of Python?[/h]Robert Love, Google Software Engineer and Manager on Web Search. Man, I cannot imagine writing let alone maintaining a large software stack in Python. We use C++, Go, and Java for production software systems, with Python employed for scripting, testing, and tooling.There are a bunch of reasons for the primacy of C++ and Java:Familiarity. Early Googlers were well-versed in C++.Performance. Java can be faster than Python; C++ can be faster than Java.Tooling. Tools for debugging, profiling, and so on are significantly better for Java than Python. Even C++ is easier to debug and understand in large systems.Concurrency. As you can imagine, Google systems are highly parallelized and many are highly threaded. Threading in Python is an unmitigated disaster. The global interpreter lock (GIL) is a giant pain in the ass.Lack of need for the prototyping prowess of Python. One commonly-cited strength of Python is that it is easier to rapidly prototype small systems in Python than Java and (to an even greater extent) C++. At Google, however, this benefit isn't all that appealing: We have a lot of powerful frameworks that make prototyping or extending existing systems easy. Folks tend to prototype by gluing a hack into an existing server rather than build an entirely new distributed system.Don't get me wrong, in the war of Perl versus Python, I come down on the side of Python. But I would never use it to build a production, scalable, mission critical, performant system—particularly one someone else may need to understand some day long in the future.Sursa: Robert Love's answer to Google Engineering: Why does Google prefer the Java stack for its products instead of Python? - Quora Quote