Python for the Enterprise: Holy Grail or Flying Circus? Here’s what we think

Last month, Linux Journal announced its Readers’ Choice Award winners for 2011. Year-end lists like these always have a tendency to spark strong reactions, so it’s no surprise to find some passionate debate about several of the Journal’s choices. But there was one award that no one seemed to dispute. For the third time, Python was chosen as the best programming language.

And you can certainly count New Relic among its supporters. We’ve been fans for quite awhile, so we’re glad to see we’re in good company. And why not? Its advantages are well documented, and the legion of Pythonistas continues to grow – making it easier than ever before to harness the power of Python. While it’s taken some time, it looks like the enterprise crowd is really starting to embrace Python too. Enterprise deployments of Python for mission-critical applications have seen a steep rise over the past couple years.

Yet, new opportunities abound for organizations to speed and simplify development with Python. Many enterprises – concerned about the language’s maturity, performance, and developer base – are still hesitant to bring it into their environments. However, many of these reservations stem from common myths and misconceptions. With a solid track record of successful enterprise applications, there’s no reason to fear Python any longer. Take a look at some of the key factors driving adoption, and you’ll see why it’s time for enterprises to strike.

Time and Cost Savings

Python’s characteristically clean, simple syntax makes it easy to read and work with, so it’s ideal for the rapid development cycles demanded today. In fact, most estimates suggest it’s 5 to 10 times faster to develop an application in Python versus Java. (And the difference is even greater when compared to C/C++.) Programmers generally report feeling more productive when using it. When they’re under the gun and want the optimal development solution, Python is their language of choice versus the often excessive intricacies of leviathans like Java and .NET. They also like it for quick prototyping because it allows them to advance from the prototype phase without losing any of their previous work. With every organization being challenged to do more with less, what enterprise wouldn’t benefit from a low-cost method of increasing developer productivity?

One obstacle frequently mentioned is the relatively limited number of top-notch Python developers available. This is a valid point – there are still far more Java and .NET experts available. But, not only is that disparity ever dwindling, any experienced programmer can quickly pick up and become proficient in Python.

On top of that, the language’s thorough community documentation and support help enterprises get started taking advantage of its benefits immediately. Python’s numerous open source packages are created with an obvious regard for testing, security, and administration to ensure the robust, dependable and intuitive software enterprises need. Additionally, all major Python projects are bolstered by excellent support networks through mailing lists and IRC, as well as public issue tracking systems.

Flexibility and Interoperability

For nearly any kind of enterprise application, Python has the versatility to get the job done. There’s almost nothing it can’t do. It works with all major operating systems, cross-platform implementations, and cloud deployments such as Google App Engine. It adapts fluidly to changing requirements and environments, and there’s seamless integration with legacy Java and .NET code. The latter is made possible by Jython and IronPython tools, or by leveraging web services linked through service-oriented architectures or REST-style interfaces. That means enterprises can transition to Python without sacrificing their usually sizeable investments in the other languages.

Also known for its excellent support of objects and modules, Python features a massive library of packages that includes many functions designed specifically for enterprise middleware and databases. Plus, it’s backed by some of the biggest names in technology, like Google and Microsoft, yet is completely vendor-neutral – which gives enterprises the best of both worlds. Multiple implementation options are another key reason Python is such a valuable asset for enterprises. The existing implementations, including CPython, are already well established, and the upcoming PyPy implementation promises speed enhancements of up to 20 times – making it a great alternative to Java and C for functions that require high performance. Which brings us to the next point…

Reliable Performance

Considering the advantages listed above, why aren’t more enterprises using Python? It often has to do with questions about performance and reliability. Some are concerned it’s not a mature enough language when, in fact, it’s actually older than Java. Even more problematic is the erroneous belief that Python as a scripting language is only a glue for assembling applications. The truth is: Python boasts a solid track record in web stacks and systems work (e.g. Disqus and Mozilla’s add-on functionality), and it has plenty of muscle for complex enterprise-level software systems and other robust use cases. That’s why we’re seeing Python become increasingly important for developing web sites and services, especially on the popular Django framework.

More and more corporations are relying on it for a diverse array of vital applications. That list includes Merrill Lynch, Cisco, VMware, and Philips, just to name a few. And we couldn’t forget about NASA – things don’t get much more mission-critical than that. Then of course you have Google, who uses Python widely, most notably for reporting and data collection, support documentation, YouTube, and the Google App Engine (GAE). Jeff Hobbs VP Engineering at ActiveState sums it up well in his LinuxInsider article: “If Python can handle Google’s infrastructure, it can handle that of any enterprise.”

Hassle-Free Licensing

Open source tools are good for any company’s IT budget (and the people responsible for managing it). But what’s especially great about Python for enterprises is that, not only is the license free, it imparts a tremendous amount of freedom in the way it’s used. In particular, the license permits users to sell products written in Python, whether or not they contain the interpreter. There are a few standard documentation requirements that apply to redistributions but overall, Python licensing offers exactly the kind of accommodating, advantageous terms that enterprises crave.

Commercial Tools and Support

You can usually tell how viable a technology solution is (perhaps especially a coding language) by the assortment of third-party tools available to implement and manage it. Indeed, it’s very much the prevalence of such utilities for Java and .NET that have helped those incumbents stay at the forefront of enterprise application development for so long. Recently, however, there’s been a sharp rise in the services and support being offered for Python, particularly in the web hosting arena. Several trusted PaaS providers like ActiveState and Heroku are fueling the enterprise momentum with new products and features specifically designed to ease the deployment of Python applications. Heroku is also going beyond GAE to be a key strategic partner for enterprise deployments. The ActiveState solution, Stackato, earned kudos from our own Graham Dumpleton last month.

Of course, New Relic is proud to help the bandwagon move forward as well – with the November release of our Python agent for application performance monitoring. By enabling real-time visibility and user monitoring, detailed performance breakdowns, and transaction tracing for Python applications, the New Relic agent makes this elegant, efficient, and flexible language even more attractive for enterprises.