The only real problem Perl has faced over the years is that it is just too fucking good at what it is designed to do: rapid application development. It is secure, robust, wicked fast to write, easy to document, and has just enough object-oriented stuff (which really isn’t OOP and more like Go) to make it very powerful. All this creates the single biggest problem: Perl does just enough and keeps on doing just enough.
People cannot justify redoing their projects in other languages like Python (not much better) or Java (HELL no) or even Go. So all that Perl code just keeps on running out there. There are 10s of thousands of lines of Perl at my current workplace that people are still completely unmotivated to touch, and why should they, it just works.
Perl’s age has nothing to do with its quality. Remember this is a shell
scripting language primarily designed to replace sed
, awk
, tr
and
cut
and yet has become the international standard for regular
expressions. That’s all Perl is, it’s not an enterprise programming
platform and never was, despite what all the brain-dead people did with
MOOSE and all the rest, including my own classes
pragma.
In fact, CPAN was largely a huge fucking mistake even though people cite it as an advantage all the time. Python and Rust and Node have all shown us the huge fucking mistake it is to have a massive “registry” (and in Node’s case) without any checksumming at all. This directly influenced the brilliant decisions behind Go to have no registry at all and use Git repos (supplemented with controlled caching servers) instead, that are already secured and checksummed. (I would pick Go over ever other alternative just for that fact alone.) No, Perl’s CPAN was a mistake.
Keeping Perl small and using it as a sed
/awk
replacement was always
the plan and is still one of the best uses and best kept secrets in the
IT world. Unfortunately, this means your Perl prototype must not stay
that way for long because no one else can read it and won’t because of
seriously dumb-shit stigma against it. I did a video on this as well.
And that is Perl’s biggest problem, you just won’t ever rewrite your
prototype because it just works and you are on to another “just works”
project before you ever get a chance to circle back. That is what got
Perl into trouble and will get you into trouble today if you fall victim
to it like the rest of the world has for the last two decades. It’s
largely the “interpreter mania” that took over the whole world and
Perl’s not the only one to blame there, but it did start the whole
thing. “Humm, C, POSIX shell, or Perl? Which one will I use to rapidly
develop this 90s web back end?” You know what the answer was. Just learn
from those bad mistakes and don’t make them again.