I've been programming in Perl for years - over ten now in fact - and I've written numerous books and articles on Perl and Perl programming. I've also worked with Python and written books and articles on Python programming, including a guide to migrating Perl applications to the Python language. For a while I really saw Python as an alternative to Perl, but after so many years and experience with Perl and what was possible with the language it is difficult to move on from the 'Perl comfort zone'.
That's not to say I haven't tried alternatives; the march of free software has lead to a huge number of alternatives coming on to the market that are adopted, enhanced and extended. Ruby is a good example of a language that has, almost, appeared out of nowhere and captured the imagination of a huge number of people, particularly due to the Ruby on Rails framework.
I spent years working with Rebol, and I tried Ruby years before it became as popular as it is now (both languages featured in my XML Processing with Perl, Python and PHP title, published back at the end of 2001).
I still like all of these languages, and I'm loving Ruby on Rails at the moment, but 99% of the time, if I need to do something, I do it in Perl.
Is this a bad thing? Shouldn't I have moved on from the comfort of 10 years of Perl programming to one of the newer, flashier, alternatives?
Well, Perl isn't a bad language. There's an interesting piece at O'Reilly: How does a programming language stagnate?, which uses Perl as a base for the discussion, largely because of the perceived issues with the 'ever imminent' release of Perl 6.
I don't think Perl has stagnated; the power of Perl is in the fact that it is (a) free software, and (b) that it is extensible. I use modules from CPAN, I write my own, but never, ever, do I feel in any way restricted or limited in what I do. Sure, there are things that could be improved about the language, but nothing that really stops you from doing what you want.
So if there is nothing wrong with Perl (and even if it has stagnated), why should I move on to something that is, by others, perceived as better?
Let's think about some reasons why you might change language:
- Support for new features or technology - well, Perl is supported on just about every platform I know, and in terms of features and functionality, there's nothing that cannot be accessed through or from Perl with a suitable module.
- Lack of support - this seems unlikely to happen any time soon, given the existing user base.
- Lack of development - Perl is still actively maintained, and, as a free software product, I could pick up and fix bugs any time I liked if I needed to.
I know these rules apply to other languages too, and again, one of the key elements about most of the languages making the news at the moment is that the element making the news is just an extension or adaptation of the original core principles.
Perl may be my comfort zone, but it works, it's stable, and I know how to do everything I need to (often in both efficient and inefficient ways) and I see no reason in moving off any time soon, no matter how convincing the argument. Of course, this is in some ways the complete opposite of my thoughts on GNU/Linux.
Of course, if somebody has some convincing arguments one way or another, I'm open to suggestion; I just can't make any guarantees to actually convert!