I Still Love Perl in 2023
My primary use-case for Perl in 2023 is as a prototyping tool, pushing ahead through the muck to establish ideas and then following up with Rust to build the primary implementation. Perl gives me the basic foundation of a lisp (if you squint hard enough) with a rich set of industrial-grade libraries to do a lot of the heavy lifting. Specifically....
- I can think, model, and develop in Perl quickly. This isn't specific to Perl - everyone has the tool that best maps to their brain. Often, this will be a tool they grew into coding with.
- Perl is mature. Perl accumulates daily testing, verification, bug fixes on top of decades of existing quality work. The end result is that Perl is very mature and trustworthy. There are other tools in this category - namely Java.
- Perl solutions are industrial-grade. Libraries I rely on like Mojolicious, Moo, Test2, Cryptx, DBI and many others are featureful, well documented, mature and well-maintained. Without these, I probably would leave Perl behind.
- Perl has the right amount of abstraction (for me). This may be Stockholm-syndrome, but I find Perl's limited set of native data structures to be perfect for most of my use-cases.
- Perl doesn't try to abstract away everything underneath it. This is important since I often want to have close contact with my system and data; Perl has the right idioms to conveniently and quickly be in contact with the underlying platform.
- I enjoy prototyping with Perl. Very subjective, but I still find Perl fun.
Responses to Common Criticisms
- Perl is dead! Objectively false. Perl is still being released on a regular cadence. Metacpan's "recent" updated list is still very active. Many libraries I use are getting regular updates. The Perl Foundation is funding folks to do the dirty work of debugging and patching things every day, quietly but constantly. Companies like DuckDuckGo and Fastmail are still running production with Perl. Perl doesn't have an army like Typescript or Go, but it's definitely alive and kicking.
- Perl is linenoise! I see this as a midwit/HackerNews-grade critique. If you don't speak French, French sounds like gibberish. I guess people just roll this tired line out to farm for easy upvotes from other midwits. So these folks argue that programming syntax should be instantly legible, but then will trash legibility-first languages like Go for not being powerful enough.
last update 2023-08-22