Well, I suppose it’s time for me to confess one of my least accurate technology assessments of the last 5 years or so.
Back in 2002, I was a consultant evaluating different open-source content management systems for my company, with an eye towards potentially adopting one as our in-house development platform. After looking over what seemed like dozens of them, I came away dissatisfied with the lot.
That’s neither here nor there (they ended up writing their own CMS in the end), except for one thing I said in evaluating the Zope CMS:
… cool architecture, but only lets you code in Python, a dead-end language.
Yep, I called Python, which has blossomed in the last few years into such popularity that people speak seriously about it replacing Java, a “dead-end language.” Doh!
What I was getting at with that remark was my sense at the time that Python was interesting in an academic sense, but not a business sense; it might be really cool, but there weren’t many people using it, the tools were thin on the ground, and you were generally locking yourself into a limited space if you went with it. Compared to the thriving ecosystem around PHP, for example, it didn’t seem that compelling.
I was clearly wrong on that score. Python eventually gained critical mass, there’s now a raft of good tools that work with it, and it’s finding its way into more and more niches every day. (Some of its buzz has been stolen in the last few months by Ruby, but Ruby in 2006 has a lot of the same problems I saw Python having in 2002.)
All of which is a rather long-winded way of saying that I decided recently that, as penance for being so dumb four years ago, I should sit down and try to learn how to program in Python.
I won’t bore you with a lot of details about what makes Python different from other languages. The short version is that Python is a joy. I was really, honestly surprised by both how quickly I was able to be productive with it, and how much I could get it to do with just a few lines of code. For someone whose “real programming” experience started with the verbosity of Perl, Python is an eye-opener.
Now I find myself tempted to dive into the deep end and start playing with Python-based frameworks like Django and TurboGears for my Web development work. And then there’s Jython, which brings the Java class libraries into Python, to explore, as well as wxPython for GUI apps…
Anyway, if you’ve been like me and had your eyes closed to Python for the last few years, take this as my recommendation that you drop your preconceptions and check it out. I think you’ll like what you find.