A continuing series about how the language you love is, in fact, terrible.
I do not hate PERL. I love PERL. Part of this is my own idiosyncratic history: PERL was the second language I learned well enough to use professionally (I learned FORTRAN first — bless Purdue’s completest heart — but I never used it anywhere other than a lab). PERL was the first language I taught to myself. PERL was the first language I ever did anything in that earned me any praise. PERL, to a very large extent, lead to a job that lead to my current career. PERL lead to a job that lead to a coworker that lead to a friend of said coworker’s wife; that friend is now my wife. In a very real sense, PERL is responsible for the trajectory of my life.
But PERL was also a great language. It had, to me at least, an intuitive structure. It was easy for me to pick up and easy for me to grow in. I built a lot of products with PERL, and they performed well enough to keep me happily employed and moving up the professional ladder. The community was generally friendly and very active. CPAN was a vibrant, active workshop that solved real world problems. PERL really did make easy things easy and hard things possible. But PERL appears to be dying a slow death.
My current position is helping a company that is in the process of re-architecting the majority of its systems. One of the stated goals, albeit stated slightly tongue in cheek, is to kill all the PERL in the system. They are not unique in that, and in my opinion they are likely correct to do so. First, it is getting harder and harder to find PERL programmers. PERL’s developer mindshare has been decreasing for the last several years. This is of course a hard thing to measure, but the number of question on places like Stack Overflow and the activity involving PERL in places like github seems to be clearly on the decline. Anecdotally, I never get contacted by head hunters and placement firms regarding PERL anymore. I even live in a part of the country where there is at least one industry that has traditionally been known for the use of PERL, and I still never get contacted by people looking for PERL. Not even the firms that just scrape resumes looking for keywords — the same people that think I would be a crackerjack DBA despite never actually having been a DBA despite the presence of words like “MySQL” and “Oracle” and “Informix” in my resume — call me about PERL. PERL just isn’t in demand, it seems. And I think the reason is PERL 6 and what it means for PERL.
I should probably call it the Mythical PERL 6, and its mythical stature is the primary reason PERL is dying. PERL has been replaced in many areas it used to dominate. Python has replaced it in scientific domains. Ruby and PHP have replaced it in web programming. Those languages did so, at least in part, by eliminating pain points for the people that used the language. PERL could have done that, but it did not. Somewhere in the interminable process from PERL 5 to PERL 6 (my youngest child is entering middle school in a few days; PERL 6 has been under development longer than he has been alive), the ability of the community to solve problems and to effectively evangelize its solutions to the wider programing community. Nothing that Python, Ruby or PHP did was outside the capabilities of PERL. But PERL stopped solving those problems in a way that the rest of the programming world was open to.
I am currently evaluating tools in a specific domain. One of the criteria I am using is support. One of the ways I measure support is the ability of the tool to deliver on its roadmap. It has to have a roadmap, the roadmap has to make sense and it has to have deliver on that roadmap in a reasonable amount of time. PERL obviously has a roadmap, it made sense at the time but it has completely failed to materialize. It has helped give PERL an odor of failure. The inability to bring out PERL 6 during a timeframe shorter than the average time spent in elementary school took attention and developer mindshare aware from problem solving for the installed base and told the world at large that PERL was no longer a serious language. While that was not the entire story, of course, it certainly contributed. In a world where mindshare is the most important currency, especially for languages without a corporate backer, PERL simply looked slow, ineffective and, well, behind its up and coming competitors. PERL 6, in short, made PERL uncool.
I am not the first person to write a “death of PERL” article, of course, but I may be the first who did so while mourning the death. PERL was and still is a fine language. But being a fine language, being a better than fine language in fact, is not enough. Your language doesn’t have to stay cool, but it does have to stay relevant in the minds of potential users. PERL, caught up in the PERL 6 death march, ceased to be a relevant language and was eventually eclipsed by upstarts. Stay relevant or die may not sound very profound or very catchy, but it is still the truth.