10 Myths of Enterprise Python from PayPal

[Update: Listen to my interview with Mahmoud Hashemi from PayPal on this topic on the Talk Python To Me Podcast, Episode #4]

Yesterday I stumbled across an excellent article by Mahmoud Hashemi from the PayPal engineering team entitled 10 Myths of Enterprise Python.

No. Seriously. It’s really good. Make sure you save it to your reading list.

10 Myths of Enterprise Python

I have been teaching a lot of Python at DevelopMentor and most people who are learning Python are coming to it from one of two places. Either they are experienced with another language but not Python or they know Python but only just enough to keep some basic scripts running.

While teaching the in’s and out’s of Python is a key goal, another thing we try to convey is that Python is a serious, full stack, professional, and comprehensive platform. For most projects, I’d gladly put Python up against C# / .NET, Java, and C++.

Mahmoud’s post conveys the same basic idea. The beautiful thing about his post is that he backs this up with solid usage and large enterprise data.

Here are a few key myths dispelled in the post:

False Myths about Python

  • Python is not compiled
  • Python is not secure
  • Python is a scripting language
  • Python is weakly-typed
  • Python is slow
  • Python does not scale
  • Python is not for big projects

The large scale use of Python is particularly impressive. For example, Mahmoud writes:

Scale (as in performance)

Scale has many definitions, but by any definition, YouTube is a web site at scale. More than 1 billion unique visitors per month, over 100 hours of uploaded video per minute, and going on 20 percent of peak Internet bandwidth, all with Python as a core technology. Dropbox, Disqus, Eventbrite, Reddit, Twilio, Instagram, Yelp, EVE Online, Second Life, and, yes, eBay and PayPal all have Python scaling stories that prove scale is more than just possible: it’s a pattern.

Scale (as in size)

Myth #7 discussed running Python projects at scale, but what about developing Python projects at scale? As mentioned in Myth #9, most Python projects tend not to be people-hungry. while Instagram reached hundreds of millions of hits a day at the time of their billion dollar acquisition, the whole company was still only a group of a dozen or so people. Dropbox in 2011 only had 70 engineers, and other teams were similarly lean. So, can Python scale to large teams?

Bank of America actually has over 5,000 Python developers, with over 10 million lines of Python in one project alone. JP Morgan underwent a similar transformation. YouTube also has engineers in the thousands and lines of code in the millions. Big products and big teams use Python every day, and while it has excellent modularity and packaging characteristics, beyond a certain point much of the general development scaling advice stays the same. Tooling, strong conventions, and code review are what make big projects a manageable reality.

Hopefully this has given you a new perspective on Python. Once again, you really should check out the original article:

10 Myths of Enterprise Python

Also, if you’re coming at this from a .NET perspective, be sure to watch my video comparison of the two ecosystems.

Video: https://blog.michaelckennedy.net/2013/12/18/watch-python-for-the-c-and-net-developer/
(doesn’t work on Firefox, sorry)

Slides: http://www.slideshare.net/mkennedy66996693/python-for-the-c-developer

One comment

Submit a comment

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s