kgn
I'm told that Google employees are being discouraged from using Python for new projects,
which seems silly given how much Python code and Python support comes out of Google.
I've hunted for more information but haven't found any.
Do you know any details, or is this just a rumor?
Well, simple common sense is going to limit Python's applicability when operating at Google's scale:
it's not as fast as Java or C++, threading sucks, memory usage is higher, etc.
One of the design constraints we face when designing any new system is,
"
what happens when the load goes up by 10x or 100x?
What happens if the whole planet thinks your new service is awesome?
"
Any technology that makes satisfying that constraint harder -- and I think Python falls into this category -- *should* be discouraged if it doesn't have a very strong case made in its favor on other merits.
You have to balance Python's strengths with its weaknesses:
your engineers may be more productive using Python,
but if they have to work around more platform-level performance/scaling limitations as volume increases, do you come out ahead?
etc.
Cython is a language that makes writing C extensions for the Python language as easy as Python itself. Cython is based on the well-known Pyrex, but supports more cutting edge functionality and optimizations.
"""
Specifically, if an engineer wishes to pursue a performance-intensive
project in Python, why not tell him to use Cython (or Python with some
C extensions) rather than force him to a completely different language
like Java or C++.
An engineer who picks Python as his first choice is probably familiar
enough with the language to utilize Cython / C-extension effectively,
and would probably rather do that than use any of those completely
different languages. As a bonus, Google gets a tool that's probably
easier to maintain than your common C++ codebase.