Slide 3
Slide 3 text
Google Confidential and Proprietary
Python at Google
● Third-largest language
○ 1/3rd lines of code of C++
○ still many millions of lines of code
○ lots of use of C++ libraries (SWIG)
● One giant Python package
● Blaze (build tool)
○ builds everything (in the cloud)
○ creates “entrypoint” scripts
○ makes interactive use of Python harder
● PAR
○ “JAR for Python”
○ executable, distributable format
○ hermetic except for Python
● Lots of third-party use
○ sys.path trickery to not change module names
Google Confidential and Proprietary
Python at Google in 2007
● Python programs controlled by shebang line
○ mostly Python 2.2
○ 2.4 slowly growing
○ some 2.3, never officially supported
● Different versions of 2.4 on different machines
○ workstations, RedHat-based, using 2.4.1, 32-bit
○ servers using 2.4.3 with a different libc version, 32-bit
○ new workstations, Ubuntu-based, using 2.4.5… but 64-bit
● Not hermetic at all
○ system-installed third-party dependencies available
● No way to use 64-bit Python
○ C++ was mostly 64-bit, except when building Python programs
● All extension modules built for Python 2.2
○ and then used in 2.4