Fast, Easy, Cheap: Pick One

Just some other blog about computers and programming

Python and the Joy of Programming

Recently since things have got pretty slow at work as my term here is winding down I’ve got back in to Python programming. It happened purely by coincidence, or rather several factors coming together. I’ve been reading Paul Graham’s articles for quite some time now and always found some wisdom in his words even though I didn’t necessarily agree with everything. Anyone who’s read his stuff knows he’s a big Lisp proponent. Well, I’ve tried on numerous occasions to get in to Lisp programming, but it’s just not happening. First off the syntax doesn’t agree with me no matter how hard I try, the screens and screens of parentheses drive me nuts. Secondly, the documentation never seems to be well organized. Thirdly, there’s so many variants of Lisp and Scheme, I can’t pick one, but even worse, none of them seem to have a really complete standard library.

I think reasons two and three are why programming environments such as Visual C++ and now .Net became so popular. Say what you will about Microsoft, these were a huge hit for them. I think a large part of this is due to their excellent documentation and rich libraries.

So this is where Python comes in. While not as functionally pure as Lisp (and no doubt denounced by many purists) it retains many of the powerful properties of Lisp and functional languages. The syntax is extremely clean. The documentation, while in some corners a bit out of date, is generally quite good. The library? Excellent! Pretty much anything you could want to do for a non-trivial application is possible right out of the box. Complex numbers? Done. Fixed point decimal? Done. Sockets, http, regular expressions, XML? Yep! It’s really quite great.

I know a lot of people are going “duh!” here, but as someone who’s been programming C++ for the last year, and mostly Ruby before that, I had somewhat let Python fall to the wayside. Not any longer. I’ve gone back to coding on my skunkworks (read: not appearing to the public any time soon) gallery project using the most excellent Web.py minimalist anti-framework. I’ve also been whipping up a few random Python code things for people here and there on IRC, it’s been quite fun.

I decided to add a code section to my website for little useful tidbits I create and eventual links to some larger projects. Please do check it out, although it is a bit sparsely populated at this point in time.