10 Reasons to Learn the Python Programming Language
10 Reasons to Learn the Python Programming Language
(Not necessarily in order)
- Access to developing light-weight embedded web applications. Yes, like the UI you use to configure your router. Like future UIs to control access to your NAS, or to potentially stream music and video from your NAS. Read Implementing an embedded Linux web app framework to see how to implement a full-featured web stack environment in less than 10 megabytes. Sweet.
- Plenty of APIs. There aren’t as many third-party add-ons available for Python as there is for Java or .NET, however, I have faith that anything you wanted to do with a commercial web application — even authenticating against LDAP or Microsoft’s Active Directory — can be done in Python. The Python community is quite active and there’s plenty of resources available to those who use Google search.
- Object-Oriented Goodness. Classes, inheritance, and reusable libraries. Loose the messiness of Perl for large applications, but with all the benefits of a dynamic language and all those design patterns that you learned for Java. Create code that is succinct and simple to read.
- Plenty of Web Frameworks offering AJAX with friendly MVC (Model View Controller) implementations. Some argue that what makes developing in Ruby so great is that there’s one defacto way of doing things. Others argue that you need to find the right tool for the right job, and that not all frameworks are designed to solve the same problems. Python offers many web stacks: full-blown MVC implementations in Django, TurboGears (which uses CherryPy), Zope, or Pylons; or smaller lighter scripts with Python Server Pages which are similar to Microsoft’s Active Server Pages, JSP (Sun’s Java Server Pages), or PHP Scripts.
- Write scripts that run natively on Mac OSX (It comes with the Python interpreter).
- Learn a language that will allow you to write applications that can take advantage of Amazon’s Elastic Compute Cloud (Amazon EC2) and S2 infrastructure hosting. Innovate and create your web services or next great technology without worrying about the infrastructure it runs on. Just know it’s Linux and that a lot of the hard details have been handled for you. Create backup services, file transfer, custom bookmarking , photo sharing, or Your-Next-Big-Idea.
- Lightweight development environment. My installation of Visual Studio 2005 takes over 2 gigs of hard drive space. It’s not easy to move my development environment around. My installation of Eclipse and some Java love is a much lighter 250 megs. An installation of Komodo and the Python run-times (complete with Django and TurboGears) is about 140 megs. You can get much lighter, if you don’t want a full-featured development IDE like Komodo that has integrated debugging and code-completion (Emacs, VI, Notepad++, IDLE — this comes with Python for Windows).
- Better integration APIs for disparate Enterprise technologies than Ruby (though, I have faith that Ruby will get there). Python has been around and used for well over a decade. When I was at Microsoft, back in 1997, they acquired a company whose entire commerce server product was written in Python. Microsoft tossed some COM wrappers over this python code and released it as Merchant Server 1.0. Even back in 1997, there were production ready ODBC drivers and the ability for COM component creation. Now days, there’s xml-rpc, SOAP Suppot (Soapy ), ado bindings (plus many other supported databases), etc…Python has been around longer than Java. Extends easily into Java. Checkout a variation of Python that runs inside the java run-time and allows full access to the Java APIs Jython Jython (thouh JRuby was just acquired by Sun). IronPython allows Python to run inside the .NET CLR. With Active State’s Enterprise Edition you can purchase yearly support contracts to make managers (and their managers) happy.
- Write web applications once, deploy to multitude of platforms. Develop a web application on either your DELL or Mac laptop. Deploy to your production off-site hosing company’s Linux servers, or Amazon’s forthcoming Elastic Compute Cloud (EC2) technologies (See #6 above).
- Write fat clients for multiple platforms. Target your applications for both Windows, OSX, and Linux. Read about wxPython’s implementation of wxWidgets for sexy cross-platform development goodness. Or, try a Riverbank’s PyQt Python wrapper for Trolltech’s QT commercial cross-platform libraries. These days, I can’t develop software for home consumers that can’t run on multiple-platforms. Yes, I want them to use my brilliance with their Macs, Windows, and Linux desktops — that is, if my ideas are worthy.
- Google, Yahoo, Amazon. What do they know about technology that you don’t, besides delivering the most reliable websites on the web? Remember that movie, The Phantom Menace? Industrial Light & Magic used Python to aid in the creation of the special effects. Python everywhere: scripting, GUI development, and web-based apps.


Pingback from Awkward Alliteration - Nick Wade » Blog Archive » Django and Python Motivation
Date: September 12, 2007, 4:25 pm
[...] 10 Reasons to Learn the Python Language - Simplified Chaos [...]