hit counter


My development logbook

Python in the Corporate World

Python is used widely in academia, open source projects and start-up. However, when it comes to the corporate world, it seems to me it is not making a lot of inroad. At least this is true in the finance industry, which I am more familiar with.

A quick check on the python.org’s success stories, only two companies are listed as Fortune 500, and none of them is in the finance.

Occasionally there are ads looking for people with python skill in the financial sector, but the positions are usually of support or operation nature, not application development.

From first glimpse, it is a classic chicken-and-egg problem: there is not enough skillful python programmers out there to fill the jobs, it is difficult to start new projects in python. However, if python programming job market is weak, there is little incentives for students or programmers to pick up this non-mainstream language.

But there is something more than just supply-demand. I believe a common perception that, somehow, dynamic scripting languages are not for large scale projects and is difficult to maintain also make people shy away from using Python.

The not for large scale projects argument is a not too hard to counter. We just need to find some good examples of high visibility. For example, Google Groups and mercurial.

However, there may not be a clean-cut answer to the question of maintainability. First of all, we have a generation of programmers who have used to statically typed languages and their accomplishing IDEs (such as Java and Eclipse). To this group of audience, the idea that one can build a full-fledged application using just API documentation, command line tools and vi/emacs is beyond imagination. It is easy to conclude that, without IDE support, it is difficult to refactor the code base, which is an essential step in keeping the application in good heath.

Secondly past experience may still leave a bad taste. If you have done maintenance of legacy applications written in perl, some of them could make you feel like you have just visited a programmer’s hell. Cryptic code and inconsistent style are everywhere. (But it’d still be way better than tcl. Luckily I have not come across any such programs yet). This bad memory certainly make people think twice before embracing dynamic scripting language in general, Python in particular.

A disclaimer I must make: what I wrote above is based on my experience only, and your organization may be free of the above issues, especially if yours is relatively smaller in scale (so it is relatively easier to innovate) or relatively young (so there are less legacy applications). But today in most of the giant, multinational financial institutions that inspire to be a “financial supermarket” for all, the decision markers, especially the “professional manager” type, have a total different mind-set. First of all they will not be benefited much, personally, by giving green light to the use of non-mainstream technology/language that promise better result and higher productivity. On the other hand, they have everything to lose if the brave decision does not deliver. Java (or C# if it is a MS Window shop) is always a safe bet, even though it means one need an army of programmers to get thing done. In essence, it is an agency problem.