Python Productivity Gain?

Josiah Carlson jcarlson at nospam.uci.edu
Sun Feb 15 23:15:24 CET 2004


> In different articles that I have read, persons have constantly eluded to
> the productivity gains of Python. One person stated that Python's
> productivity gain was 5 to 10 times over Java in some in some cases. The
> strange thing that I have noticed is that there were no examples of this
> productivity gain (i.e., projects, programs, etc.,...).  Can someone give me
> some real life examples of productivity gains using Python as opposed other
> programming languages.
> 
> From my our personal experience, I have been programming with Python for
> about 6 months (but I have been programming in other languages for over 10
> years) and I have noticed that the more I had gotten use to programming in
> Python, the more my programming speed has increased. But ... this is true
> with any language that you program in as long as you are learning the
> methodologies and concepts of the programming language.  Your thoughts.

Before I give my opinions, I should probably give some background.  The 
first semester of my freshman year of college, I (and many others) were 
taught Scheme.  After 'mastering' Scheme, we moved on to C and C++ the 
following spring.  Within weeks of learning C (the semester started 
~February 1, competition was March 19), I competed in a local 
programming competition to decide who was going to participate in the 
following fall' (of 1999) regional ACM programming competition.  My 
partner and I placed second in the local competition, ahead of various 
sophomores and juniors, but didn't do quite so well in the regional ACM 
competition.

A year later, in the early spring of 2000 (sophomore year), I found 
Python.  In a week, I rewrote every programming assignment I had during 
the previous year and a half of undergraduate CS, from Scheme or C/C++ 
to Python.

Not only had I learned Python, and translated programs to Python, but I 
was able to write new software that I hadn't even considered before. 
Multithreading, sockets, interesting data structures, databases...the 
world was my oyster.  Two years later, in the spring of 2002, I was 
finishing the 4th rewrite of an as-of-yet unreleased (the quality was 
shit, I'm still looking for time to re-do it) parallel processing 
library, similar to MPI.  The 4th rewrite took a total of a week and a 
half, for 4500 lines of Python.  Functionally, every feature of MPI was 
included, written in ~10 days.  I had known Python for 2 years.


Fast forward to now, I've known Python for 4 years.  The only project 
I've written in C since, is a password cracker (modified l0phtcrack), 
that I had contemplated making into an independent project during 
undergrad.  Every other piece of code that I produce on a daily basis, 
for teaching Introductory Algorithm Design and Analysis (this quarter is 
my 5th as a TA for the course), for database classes, algorithmic 
theory, etc., or any time I need some tool, Python is what I build it with.

They say that when you have a hammer, everything looks like a nail. 
When wsing Python, most everything /is/ a nail.  Those things that are 
not nails, usually lie in the realm of different programming paradigms 
(like logic programming with Prolog, etc.), or are very processor 
intensive, and are not suitable for an interpreted language.  Psyco 
works well for a first step to stave off "not fast enough", and I hear 
that Pyrex is a great second step (I've had no need for Pyrex yet).

In any case, I don't believe that I would have been able to do or learn 
nearly as much, had I not had Python.

  - Josiah



More information about the Python-list mailing list