CPAN Report 2021

CPANCPAN Report Mon 7 February 2022

This is a follow-up to last year's blog post, where I posted some charts to show how new CPAN users and distributions have changed over time. I've updated the charts to include data for 2021, and added a new chart to see if it adds anything else to the picture (spoiler: not really). The executive summary is that CPAN creation is continuing to decline.

New user signups

In 2021, 140 people signed up for a PAUSE account. This compares with the best year, which was 2012, when 850 people signed up:

PAUSE only started recording the signup date in 1999; in previous reports I lumped all signups prior to 2000 in 1999, but I think it's better to show it this way, since that's more than 20 years ago.

In 2012 the book Intermediate Perl was released; it has a chapter that tells people to sign up for a PAUSE account and to upload a test distribution. That explains the bump from 2011 to 2012. In 2014 there were a number of activities encouraging people to get more active on CPAN, including CPAN Day.

Maybe without those things, the peak would have been 2009, and we've seen a steady decline since then.

The PAUSE admins are also a bit more cautious on handing out PAUSE accounts these days, as we're getting more people signing up for nefarious purposes. But that might only explain a difference of 10 or so requests per year.

First-time CPAN releasers

In 2021, 117 people did their first upload to PAUSE, which is fewer than the number of people signing up. By comparison, in 2020 more people did a first release than signed up for a PAUSE account.

We know the date of every release right from the start, which is why this chart starts in 1995. We see the same decline since 2012, but last year when I looked at 2019 and 2020, I thought that maybe it had levelled out. In 2021 there was a clear drop though.

Who knows what impact covid has had? I certainly don't.

When did people do their first release?

Last year I created a chart which showed when users did their first release, compared to when they created a PAUSE account.

What this showed is that these days, for the most part people either do their first release in the year they sign up, or not at all.

As a result I'm not going to bother generating this year's chart.

CPAN Releasers per year

How many of those first-time releasers go on to do more releases? This next chart shows the number of people who did at least one release each year:

This one smooths off the first peak at 2003 seen in the previous chart, so we can see steady growth to 2013, and steady decline since then. Last year I wondered if 2020 had bucked the trend — was the decline slowing down, or was it an effect of people being locked down at home and deciding to do a CPAN release?

Maybe the rate of decline has dropped, but it's definitely still a decline.

CPAN Innovators per year

After looking at the previous chart, I wondered are there lots of people releasing the same distributions, but not releasing anything new?

This chart show how many people released at least one new distribution, for each year:

This shows a more consistent decline since 2013, for example when comparing with the chart of first-time releasers, above.


CPAN creation is in steady decline, and has been since 2014:

This isn't a big surprise, as Perl itself is in decline. There are more languages to choose from, and there are fewer domains where Perl stands above or even alongside its competitors.

Perl is never going to be hot again. Without the hype factor, two of the main reasons people might try Perl are (1) compelling applications written in it, (2) a good number of the building blocks you need being already available on CPAN.

What can we do to encourage one or both of those?

I think the easiest / best thing we can do is make it easier for people to release modules to CPAN. We've got plenty of tools, but we don't have unified documentation that takes you from your first CPAN release to being an experienced CPAN maintainer.

We need a book that's a manual on how to become a good CPAN author.

There's no money in Perl books any more, and if we want to make it easy for everyone, then this needs to be a freely available book anyway. Maybe the best way for it to happen is to create a github team to work on it together?

comments powered by Disqus