Programmers aren’t so humble anymore, maybe because nobody codes in Perl
Accessing the article
- Several commenters note the Wired paywall is bypassable via archive sites or by disabling JavaScript.
Why Perl Declined
- Many argue Perl’s loss of mindshare came from a combination of:
- The long, stalled transition from Perl 5 to “Perl 6” (Raku), which created uncertainty and an “Osborne effect” for new projects.
- Competition from web-focused languages and ecosystems (PHP, Ruby/Rails, Python/Django, later JavaScript), which were easier to deploy and learn for web work.
- Perl’s extreme dynamism and syntax made automated refactoring and large-scale evolution (like Python 3’s) much harder.
- Others think Raku is overblamed; the bigger shift was generational: from Unixy shell/awk/C users (for whom Perl was a natural extension) to developers raised on Java, VB, etc., who gravitated to Python and similar languages.
Perl’s Strengths and Lasting Influence
- Strong nostalgia: many describe Perl as their first “real” language, especially for CGI and sysadmin automation.
- RegEx and text processing are repeatedly praised as unmatched; many say they still “think in Perl regex.”
- Backwards compatibility and runtime stability are viewed as major virtues; scripts from decades ago often still run unchanged.
- Perl influenced Ruby, PHP, regex dialects (PCRE), and ideas like taint mode.
Pain Points: Readability and Team Use
- TIMTOWTDI and dense, sigil-heavy syntax make it easy to write “write-only” or puzzle-like code.
- Nested data structures and references are seen as awkward compared to JSON-like literals in Python/Ruby/JS.
- Perl scales poorly to large, multi-developer codebases: too much expressive freedom, inconsistent styles, and weak object/argument conventions (despite newer features like signatures).
Perl vs Python (and Ruby/PHP)
- Python is credited with:
- Indentation-enforced readability.
- A clear object model and strong “Pythonic” culture.
- University adoption and libraries like NumPy/sklearn as growth engines.
- Critiques of Python:
- “There should be one obvious way to do it” is seen as aspirational; modern Python has many competing tools and patterns.
- Packaging and environment setup are perceived as messy; debate centers around tools like uv, pipenv, Poetry, Conda, with no consensus “standard.”
- Some complain of version/packaging bitrot vs. Perl’s long-term script stability.
- Ruby is often described as “Perl’s spiritual successor,” filling the same scripting/web niche with saner syntax and Rails; several say if you know Ruby, there’s little reason to learn Perl now.
- PHP is remembered as winning early web share by being trivial to embed in HTML and easy to deploy via plain FTP hosting.
Security and Taint Mode
- Perl’s taint mode is widely admired as a language-level way to track untrusted input and force explicit sanitization, especially via regex.
- Ruby previously had a similar mechanism, but removed it; commenters wish more languages had built-in “parse, don’t just validate” features or taint-like systems.
Culture, Humility, and Money
- Several note the irony that Perl’s “virtues” famously include hubris, not humility.
- Some attribute today’s lack of humility in programming less to language choice and more to high salaries and the influx of “tech bros” drawn by money.
- A recurring theme: Perl’s very ease of writing terrifyingly clever code teaches humility later, when you must maintain or debug it—leading some to adopt a deliberately plain, readable style.