2023 twenty-four merry days of Perl Feed

24 Years of the Perl Advent Calendar

Date::Christmas - 2023-12-25

The Journey

It's Christmas Day, marking the end of year 24 of the Perl Advent Calendar. Is there another programming Advent Calendar with a longer history? I don't know and, to be honest, I haven't checked, but this feels like an impressive accomplishment and a good time to take a look back on this monumental project.

The archives begin in the year 2000. In those days, an Advent article was literally the documentation for a Perl module, beginning with Data::Dumper on Dec 1 and ending with Date::Christmas on the 25th. As an aside, Date::Christmas had its last release on Dec 3, 2000 and it still works.

$ cpm install -g Date::Christmas
$ perl -MDate::Christmas -le 'print christmasday (2023)'

If you're interested in the history of this project and how Mark Fowler came up with it, I encourage you to read the notes in the FAQ

The Stats

When I got involved in this project last year, I had just assumed that the calendar in its current format was much how it began, but that's not really true. The layout and the URLs have evolved over time and there have been varying levels of activity. Let's write a quick bash script to figure out some statistics.

    #!/usr/bin/env bash

    set -eu -o pipefail

    for year in $(seq 2000 2010); do
        found=$(find "$year" | grep -e "/\d\d/index.html" -c)
        echo "$year $(printf "%0.s🎄" $(seq 1 "$found"))"

    for year in $(seq 2011 2023); do
        found=$(find "$year/articles" | grep -c pod$)
        echo "$year $(printf "%0.s🎄" $(seq 1 "$found"))"

We get the following pretty graph:

    2000 🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄
    2001 🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄
    2002 🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄
    2003 🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄
    2004 🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄
    2005 🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄
    2006 🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄
    2007 🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄
    2008 🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄
    2009 🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄
    2010 🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄
    2011 🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄
    2012 🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄
    2013 🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄
    2014 🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄
    2015 🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄
    2016 🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄
    2017 🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄
    2018 🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄
    2019 🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄
    2020 🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄
    2021 🎄
    2022 🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄
    2023 🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄🎄

We can see that years 2000 to 2006 had 25 articles. The following 4 years don't quite make it to 25, but I would argue that the 24 articles in 2008 is genuinely "good enough". 2020 was sort of greatest hits repackaging of articles from earlier years and 2021 is an outlier. Last year we had so much momentum that we added a couple of extra articles and this year we are back to the usual pace.

The Evolution

As we noted above, the year 2000 was strictly Perl module documentation. The documentation angle may seem a bit weird, but back in 2000, CPAN wasn't all that old. Beginning in 2001, Mark wrote short blog posts about useful modules with his thoughts on them.

How about the delightful Christmas-themed posts? Well, the first mention of Santa is not until Dec 25, 2002. St. Nick does not seem to re-appear until Dec 10, 2006, the same year in which elves have their first mention.

In 2011 the calendar shifts from the layout which mimics a traditional advent calendar to one which looks more like a regular calendar. I'm guessing this is due to the emergence of WWW::AdventCalendar, which had its first release on Dec 25, 2009.

I should also note that over the 24 years of this project there have been many, many blog authors and editors. It has been an impressive group effort with real continuity.

Where are we Now?

In the intervening years, the Perl Advent Calendar has become a holiday tradition for many of us and something we look forward to. It's much more than just an interesting project, though. It's a snapshot of Perl as it is being used in the wild, a wonderful trip down memory lane and it documents the evolution of a genre: technical writing that leans on and extends the mythology of a collective Christmas traditions. Also, it's fun.

There is a real legacy to the calendar, though. I don't know how many of the authors imagined that decades later, their work would still be available for instructional reading and general enjoyment. Some of our personal blogs fade away as hosting disappears or even as we ourselves move on from this earth, but the calendar, after 24 years of service, documents the writings of Perl developers past and present.

If you're interested in becoming part of this history, we will accept articles throughout the year. The Call for Papers traditionally opens in the summer, but if you have a burning desire to write a blog post for the Advent Calendar, you can start right now and someone will be happy to help you along in the process.

A Big Thank You

For this year in particular, I'd like to thank everyone who helped out with the calendar. brian d foy, for kickstarting things in November when my mind was somewhere else. Also brian d foy for reviewing articles and contributing articles. On that note a large debt is owed to Pete Houston for reviewing many articles, with a number of those being on very short notice. I'd like to thank all of this year's authors and note that several of them contributed more than one article, which allowed us to make it to 25.

Lastly, I'd like to thank Mark Fowler for allowing us to continue on this great tradition.

A Big Anniversary

2024 will be year 25 of the Perl Advent Calandar. We should mark this in some way. How will we do it? We have a year to think about it.

In the meantime, please allow me to wish all of our editors, contributors and readers a "Happy Christmas to All and to All a Good Night".

Gravatar Image This article contributed by: olaf@wundersolutions.com