Why We Moved to Perl and Dumped PHP Last Year
Elongating the lifetime of the underlying stack
TODAY in IRC one recurring topic was Perl, the context being this malicious Microsoft proxy giving Perl money (after Perl had already outsourced way too much to Microsoft's GitHub). In the main channel, #techrights
, I explained that we had dragged on and on a serious technical debt problem. A lot of our work - or "content" as companies like to label people's hard work - was 'stuck' inside mountains of PHP code (content management systems) and the databases became as large as 10GB (only accessible using bloated software such as MariaDB or Oracle's MySQL).
We solved this by exporting the data using Perl (via SQL queries) and instead created a system using Perl. It's our own system and we extend it based on our needs, not some "one-size-fits-all" grand scheme a la Drupal and WordPress. We strongly encourage other sites to do the same if they value longevity and appreciate the merits of general simplicity (never pursue anything beyond the basics; it can become a maintenance overheard, source of bugs etc).
Linux is a cautionary tale in that regard and Rust will worsen things rather than address the issue of overflows. A lot of what we said in 2022 turned out to be true if not prophetic. But Rust is a story for another day, some other time...
Perl is an old language and our choice of it wasn't made based on hype or fashionable trends. In the word of an associate, Perl is the go-to tool for many things. Python may have the backing of Microsoft and others, and thus more progress in the libraries/modules these days, but the core language is far better with Perl. It's in the lead for regex and is easy to write clearly understood code. Unfortunately the whisper campaign against it points out that one can write poorly understood code too easily as well.
It is up to the programmer, according to this associate. "There is / was also the problem that as Perl peaked, it was the trend to show off and write as intricate and complex systems as you could. It was showing off rather than the intentional obfuscation you get nowadays with systemd."
For a number of years we ran on Alpine Linux, i.e. no systemd. But sadly it has become increasingly hard to run some particular software on operating systems which lack systemd (and GNU, by default).
We no longer use PHP. We need not worry about some future version of PHP coming out and breaking compatibility (notorious trait of PHP; it breaks "old" software and I grew tired of hacking on PHP code when it kept happening since 20 years ago). With Python 3 we can see that Python too is vulnerable to general disregard for backward compatibility. We don't use Python for the Web site anymore. █