5 Python Pluses for the Enterprise
You might not find quite as many experienced Python developers as .Net or Java folks, in part because Python is younger than Java and hasn't had the corporate push of .Net. Still, Python's doing well enough in developer adoption to make it a solid choice. Another advantage in Python's court? It's vendor neutral.
By now, you should at least be passingly familiar with Python. One of the fastest-growing languages, Python has been gaining popularity for years and has reached a level of maturity that makes it a top choice for enterprise development.
Companies from Microsoft to Google have embraced Python and are not only supporting its use, but also investing in its development. Google uses it to power some of the world's most scalable applications. Developers pick it up quickly and easily.
Following are five reasons so many companies are embracing Python for rapid development of scalable, enterprise Web applications.
1. Strong Support and Community
There should be little doubt that Python is here to stay. Just look at the continually growing community around the Python project and its offshoots.
In addition to a stable community, Python has a stable road map. Python's 2.x series has been well maintained and extended, while Python 3000 (Python 3) has been in development. Even though Python 3 breaks from Python 2.x in some significant ways, there is no rush to move developers to the new platform, as Python 2.x is being maintained and extended simultaneously with Python 3 development.
2. Established Developer Base
Python reached maturity years ago, but it still had a relatively small developer base. It's hard to bet on a language when developers are scarce, no matter what the qualities and advantages of the language are.
Python passed the point of developer scarcity quite some time ago, though. Python usage has increased dramatically in the last few years. For example, it shot up by 45 percent since the spring of 2008, Evans Data announced last year. By November 2009, Python was cited by more than 20 percent of the developers Evans surveyed.
If you want more evidence of Python developer interest, you need look no further than the Python Package Index (PyPI). You'll find more than 10,000 modules for Python, many of which are aimed at working with enterprise middleware and databases.
You might not find quite as many experienced Python developers as .Net or Java folks, in part because Python is younger than Java and hasn't had the corporate push of .Net. Still, Python's doing well enough in developer adoption to make it a solid choice.
3. Vendor Neutral
Another advantage in Python's court? It's vendor neutral. It's backed by many companies, including Google, Microsoft and many others. Before Sun was gobbled up by Oracle, it had engaged support for Jython -- a Python for the Java platform.
The recent spike in Python developers can be attributed in part to Google's embrace of Python, one of three "official" languages adopted by the search giant. The company supports Python on its App Engine platform.
Google's support is a vote of confidence from a major player with the deep pockets to help ensure Python will continue to do well. Google hired Python's creator, Guido van Rossum, a few years ago to ensure he could continue working on Python. Google is also using Python in YouTube search, the second largest search utility on the Internet, and throughout its properties.
Google's build system is managed with Python, and all of Google's reporting and data collection is done with Python. Even Google's support documentation uses Python, as you can see from the "answer.py" format in its help documentation. If Python can handle Google's infrastructure, it can handle that of any enterprise.
Python can also help port applications to the cloud. The use of Python in Google App Engine gives companies the ability to build and deploy Web apps on the App Engine infrastructure. No need to worry about scalability and support -- and it runs only US$8 a user per month with a maximum of $1,000 a month. Hard to beat that.
Microsoft also bankrolls Python development, working on IronPython for the .Net framework, and it supports using Python for IIS scripting.
4. Protects Current Investment
This brings me to the next point. Jython and IronPython help protect existing infrastructure and investments by making Python an additive language to your existing environment. If you already have significant investments in .Net or Java, Python can sit alongside them without disrupting your current code. Instead, legacy code can run unchanged while new development continues in Python.
Python also gives much more flexibility in terms of deployment. As mentioned earlier, enterprises have the option of deploying on App Engine for cloud offerings. However, Python runs on all major OSes well, making it an excellent choice no matter what operating system or systems your company has standardized on.
5. Enterprise-Friendly Licensing
Finally, it's important to note that Python's licensing is enterprise friendly. Python is open source, and the license is considered compatible with the world's most popular copyleft license (the GNU General Public License). However, Python's license imposes little restriction on what can be done with it. It is free, and it allows resale of products written in Python -- and even products that contain the Python interpreter.
Python has some modest licensing requirements but only in the form of ensuring that copyright notices are included in source and binary redistributions of code. Redistributions also need to include descriptions of changes made to Python if it's redistributed, but beyond that, Python's licensing requirements are quite liberal.
Python modules have their own licenses, and organizations can find turnkey solutions from commercial vendors to help ensure they're in compliance.
When you add up all the advantages, technically and commercially, Python is a no-brainer for the enterprise. It's solid, swift, and simple. The question isn't why enterprises should deploy Python -- it's why not?
Jeff Hobbs is director of engineering at ActiveState, overseeing development of all ActiveState products from language distributions to development tools and Web-based solutions.