CoRecursive: Coding Stories · Adam Gordon Bell - Software Developer

CPAN - This Day In History

·56 min·5 clips
CPAN was the first open source module repository, inspiring everything from npm to RubyGems and reshaping how we build software.
The episode opens with Gordon Bell establishing CPAN's first private announcement on August 1st, 1994, and contextualizes it within the evolution of scripting culture from Brian Kernighan's awk in 1977 through Larry Wall's Perl announcement in 1987. Perl emerged as the dominant language for CGI web scripting in the early 1990s, when the release of the Mosaic browser made dynamic web pages possible and Perl scripts became the standard way to generate them — contact forms, guest books, and hit counters were all Perl CGI scripts circulating on mailing lists and FTP sites. As the Perl community grew on IRC and Usenet newsgroups, developers began collecting and exchanging these scripts, and a private mailing list emerged to discuss pooling resources. The key insight from Andreas Konig and Jarkko Hietaniemi was that modules needed to be organized by category rather than by author name, mirroring the structure of CTAN (the TeX archive). They built PAUSE, an upload server where any developer could register a namespace and publish modules, and CPAN mirrors distributed those packages globally. By 1999, about 200 packages a month were being released; by 2004, that number crossed 1,000. As the repository grew, quality control became a challenge. The community built CPAN Testers — a distributed network of volunteer machines that automatically downloaded, ran test suites, and reported results across different Perl versions and operating systems, functioning as an early distributed continuous integration system before CI was a mainstream concept. Gordon Bell then pivots to his own experience in early .NET development, where Microsoft built official replacements for popular open-source tools (NAnt replaced by MSBuild, NUnit shadowed by MSTest, MBUnit-inspired features absorbed into the official stack) effectively killing the communities that had grown around those projects. The episode's sharpest section covers Microsoft's internal marketing personas: Einstein (the performance-obsessed genius), Elvis (the pragmatic pragmatist), and Mort (the low-skill corporate drone who just gets things done and goes home). Developer Scott Bellaware publicly criticized this taxonomy as 'ethically bankrupt.' Gordon Bell argues the personas revealed a fundamental misunderstanding: CPAN's model treats everyone as a potential contributor and creator, while the Mort framework treats most developers as permanent consumers of black-box libraries. By 2009, Microsoft had shifted course, founding the Outercurve Foundation and eventually building NuGet, its own CPAN-inspired package manager. The episode ends with the observation that CPAN was less a technical artifact than a cultural one — it established the expectation that every major programming language community would have an open, searchable, community-maintained package ecosystem — and that expectation is now universal.

As heard by us

CPAN shows how package ecosystems and open source collaboration became central to software development.

CPAN is presented as an origin story for modern software development, showing how a package repository became a model for later ecosystems like npm and Maven.

Read the full review in PlayNext →

Why you'd press play

Before npm, there was CPAN, and the package world starts making sense.

Read the full recommendation in PlayNext →
Listen to the show on