Python Ready for the Enterprise. Period.

by Jeremy Jones

In September 2006, I wrote a short blog post on Python's readiness for the enterprise. That posting had a question mark in the title because someone asserted (jokingly) that Python is, in fact, not ready for the enterprise. (Remember, my post was a link to a tongue in cheek blog entry elsewhere. I'm not stating that Jeff Waugh was trying to discredit Python.)

I recently came across this eWeek article which outlines Python's use in the airline industry where failure would be very, very bad. This eWeek article contains assertions of some really smart people that Python is up to the task. Could they be wrong? Certainly. But I don't think they are. And I'm not going to defend my reasons for thinking so. That's not the point of this post.

My whole point in posting this is perhaps more for my own benefit than anyone else's. I see Python too often treated as a toy programming language. I see people who feel that the language has failed them somehow because they encountered some problems at runtime which would have been caught by a compiler. I'm currently watching Python being replaced by another language. (No, this isn't the wholesale state of Python in the world. Just my little segment of it). This article is reassuring to me that I'm not totally off of my rocker by thinking of Python as an excellent and capable language. And it gives me a warm fuzzy to think of Python being used in such a weighty manner.

By the way, I think ITA (the company around which the article was written) is hiring. If someone from ITA wants to shoot me an email with a link, I'll gladly edit this post and put the link in. Good going, guys and gals of ITA!


2007-03-08 10:08:57
The article says the Python is being used for the reservation systems (so very, very bad isn't quite on the scale of planes crashing in mid-air). Given the spectacular failures of airline reservation systems in general, with JetBlue's US Airways being only the most recent, it sounds like this isn't really something anyone wants to boast about.

This really has nothing to do with Python's capabilities though. Using any language doesn't make it ready for the enterprise. Even then, any language, no matter it's capabilities, can wreck havoc in the hands of bad programmers.

Jeremy Jones
2007-03-08 10:23:48

Had I been meaning "jets falling out of the sky" bad, I would have used something like "catastrophic". But this is a *hugely* important job, and one (just like JetBlue) that you don't want to fail.

I'll disagree in part with your assessment that this has nothing to do with Python's capabilities. I think it totally does. They chose Python (presumably) because it is quick and easy to code in, great for groups of developers to share code in, and also because it's not prone to just crash. Sure, people can write bad code and bring the system down. But you can do that in any language no matter how much compiler-people want to infer otherwise.

2007-03-08 11:18:51
We use Python extensively in our office in the Information Services department as a part of a county government agency. We use zope/plone for the website, Python for some GIS applications, login scripts, backup and most new development. I would much rather program in Python than C++ or Java.

2007-03-08 11:20:43
ITA sounds like a good place. The do Lisp, too.

2007-03-08 11:32:42
To be honest I don't think Python works for large teams or distributed apps nearly as well as Python types believe. They really need to get rid of the GIL (using Twisted has the primary advantage of sidestepping this), make Unicode native - ie remove the old string, and have some notion of interfaces (in the Java sense) sorted out.
2007-03-08 12:18:54
@Anonymous, I don't see an immediate connection between any of those improvements and large or distributed teams. Can you be more explicit?
2007-03-09 01:22:41
You're a bit behind the times :)

Ever heard the noise fuss and general crankiness that emanates from an MBA when his SAP search function doesn't work ? Its getting rarer and rarer nowadays. SAP portals and backends now use a tool called TREX - runs as a standalone search engine server on Windos & various *nixes - to provide their search capability.

It runs on python. It's part of SAP. It IS the enterprise :)

Jeremy Jones
2007-03-09 03:24:18

I'd rather be behind the times stating that Python *is* ready for the enterprise than that it isn't :-) Thanks for the post. I've honestly never messed with SAP, so that's a whole world I'm not even close to. Thanks for the post!

Aaron 'Teejay' Trevena
2007-03-12 06:35:23
I was a bit disappointed that python was only being used for reservations - Perl has been used for that for ages.. what would be really cool would be more dynamic languages being used for serious mission-critical stuff.

I think Python (of which I'm certainly no advocate) can do a LOT more than just e-commerce (which this reservations system boils down to), and could be used for mission-critical information systems, much as Perl can be.

I think Mission-Critical software has very little to do with choice of language, and everything to do with good QA, Defect management and reporting, Specifications and project management.

Anyway - I'll raise your airline booking system and put Aviation Briefing systems on the table - we're using Perl to provide critical aviation briefing information (OPMET, NOTAM, METAR, SIGMET, SigWX, etc) to airlines, and working towards more critical systems such as flight planning.

Anyway.. it's always good to see dynamic languages doing well, I'd just like to see it outside the usual comfort zone and eating Java's lunch ;)

Jeremy Jones
2007-03-12 07:40:37

I mostly agree with you. I'm excited and not really disappointed that it's "just" the reservation system. Granted, I would be *more* excited if it were everything. Other than that, I think we're in agreement. I'm quite happy to hear of Perl being used in the way you describe. My thought is, "If Ruby or Perl are there, Python can be as well." I gladly promote all dynamic languages over static languages for most programming tasks (with the obvious exceptions).

Aaron 'Teejay' Trevena
2007-03-13 12:55:48
@ Jeremy "If Ruby or Perl are there, Python can be as well."

And you would be quite right to think that, there is no technical reason for Python not to be used for serious enterprise stuff.

Jian Wu
2007-04-16 01:50:06
To be honest, I think that Twisted really gives Python an edge over other scripting language when developing high scalable networking application like "python message route" mentioned in the article.