What Killed Perl?
Trick question! Perl is not dead. I’ll show you what I mean, and then still answer what I think killed Perl.
The cpan Report 2023 put together by Neil Bowers quite clearly illustrates that Perl’s popularity is somewhere in the same range it was during the dotcom bubble.1 I realise cpan usage isn’t a perfect proxy. There are probably a lot of people like me who use Perl specifically for things where they don’t need to interact with third-party libraries. These wouldn’t show up in the cpan records either, obviously. But it’s the best proxy I have. If anything, it’s higher: popularity increased ever so slightly after 2022, as next year’s cpan report will show. (Neil says he will publish it in January, so follow his blog for the latest news.) But it is also clear that newcomers make up a decreasing portion of the Perl crowd, and this has been the case since 2011. Why is that?
Some people seem to think Raku (formerly known as “Perl 6”) sucked momentum out of Perl, but I don’t believe that. Everyone I talked to back then knew Perl wasn’t going anywhere. Humanity had chained too much of the infrastructure of the growing internet to it. Even if Raku turned out to be a wild success, someone would have to keep maintaining Perl for many years to come. There was never any danger of obsolescence in starting a new project in Perl.
Besides, Raku was first announced in 2000, and the major burst of activity around Raku implementations seems to have been at the end of that decade. Through that period, Perl grew rapidly, as indicated by the graph.
I still struggle to understand why Perl went out of favour, which is understandable if you know what I think about it. But I have heard two reasons that resonate with me.
- The people who grew up on Unixy systems in the 1990s and early 2000s would know shell, C, awk, sed, Vim, etc. To these people, Perl is a natural extension of what they were already doing. Then in the 2000s came a new generation of programmers brought up on … I don’t know, Microsoft systems, Visual Basic and Java? These people were more attracted to something like Python as a second language, which then became popular enough to become the first language of the generation after that.
- Back when people learned Perl, you didn’t just go online and download development tools for a programming language on a whim. Binary package managers that chase down dependencies on their own weren’t a thing until the early 2000s, I think? And even then they didn’t have all that many packages. So even if, I don’t know, Oberon or Eiffel would be a better fit for someone in the 1990s, they might have opted to go with Perl anyway because that was what they had. These days, this is not as much of a problem anymore.2 You’ll find that the invention of many of the popular languages of today, such as Rust, Kotlin, Elixir, TypeScript, and Go happen to coincide with the growth of the internet and increased power of package managers.
So to state my hypothesis briefly: people today are both less predisposed to understand Perl, and have easy access to so many other alternatives. It’s a rather unsatisfactory explanation, but it’s the closest I can get.