http://qs321.pair.com?node_id=561632


in reply to Perl is dying

I don't know that Perl is dying, but there is an exodus going on. I will offer myself up as a data point.

I used to be a serious Perl programmer. I spent about 5 years coding almost exclusively in Perl and only occasionally sticking my head up to play with other languages. It was a hell of a lot better than Java, which those around me were using and I could crank out applications with more features and better performance in less time than they could without breaking a sweat.

A couple years back, I got called upon to take over a project that had been started in Python. I wasn't too excited about coding in Python but hey, at least it wasn't Java.

It took me about an afternoon to go through Dive Into Python and basically get to where the syntax of the language didn't get in my way too much. Then there was about a week of frequently looking up the things I wasn't quite sure how to do in Python (mostly library, not syntax related). It also took a little while before I'd broken myself of always putting curly braces around things, $'s in front of variable names and semicolon's at the end of every line.

At first of course, I despised the whole whitespace thing and I felt really unproductive overall. After a couple weeks though, a funny thing happened and I noticed that I'd gone from thinking significant whitespace was the worst idea ever to not noticing it at all to actually appreciating how simple it made things (at least once I'd gotten emacs configured right). I also noticed that within the domain that I was working (a GUI app for scientific simulation), I was now feeling at least as productive as I'd ever been in Perl. A little longer spent in Python-land exploring more libraries (for web stuff, database stuff, XML manipulation, etc.) and I started looking for ways to replace our Perl applications with Python.

What really got me was the simple elegance of the language. After a week or so I'd basically learned by heart every single aspect of Python syntax without really trying. Five years of coding Perl, hanging out on Perlmonks, reading perldoc and O'Reilly books and I'd never quite felt like I knew more than a small subset of the language. All of Python could fit in my head at once and I could just program without having to think about the language at all. Everything was simple, consistent, and as clear and explicit as possible without straying into verbose.

I've never quite bought the "Perl is a write-only language" argument (I'm still maintaining five or six year old Perl code at work that we haven't replaced yet because the applications were too big and I never have problems reading the old Perl despite the fact that I barely touch Perl any more) but that ability of Python to get out of the way of coding in a way that Perl never could for me was a pretty significant reason that I've moved on from Perl and have no desire to go back. Perhaps other programmers have more room in their brain for language syntax and can work with Perl the way that I can with Python. If that's you, more power to you. I'm just not that talented.

Here are the things about Perl that have tempted me to return:

I really have nothing against Perl; I still think it's one of the better languages out there and I sure as hell learned a lot in my years working with it. And I don't think that it's dying or stagnating; There are just too many people with too much Perl experience and too many lines of production Perl code for that to happen anytime soon. I'm just trying to give you one single data point for why a programmer might be inclined to move along to something else. I'm also not particularly attached to Python. It's treated me well, but I'm a disloyal bastard at heart and I'll happily jump to another language when it makes sense for me (Erlang, I'm looking at you...)