|Perl: the Markov chain saw|
Rediscovering Hubrisby Leitz (Scribe)
|on Jan 17, 2021 at 23:40 UTC||Need Help??|
A line from perlootut goes, "There's really no good reason to write your classes from scratch in Perl." I beg to differ. There are many reasons we come to Perl; often those reasons are unique to each individual. What brings the perlootut authors to Perl may not be the same as what brings any of us.
Long ago, when the O'Reilly Perl book was much thinner and had a pink spine, hubris was a valued quality in a Perl programmer. Today many are shunned because they use "ancient" Perls, anything less than 5.30 is "EOL". Some of us have to live in the world that doesn't auto-upgrade Perl. We're told to get some collection of modules from CPAN, everything is already done for us. That's a wonderful idea, but it doesn't play out. Many modules depend on XS, or depends on something that depends on XS, yet not every compute node has a compiler. Or the CPAN module depends on something that requires a more recent version of Perl than what we are allowed to code for.
I have actually been told that I should look for another job if work won't upgrade language "X" to a more "modern" version. No real reason, just "more modern". Hubris can have a negative incarnation.
Hubris can help us move forward when the world seems against us. Outside of that one sentence, the perlootut is a wonderfully written and useful document. The perlobj page is also top of the line documentation. In hubris I try to code for Perl 5.8. Not because that version is any better than later versions, quite the contrary! The Perl maintainers do a great job of keeping the language moving forward. In hubris I create objects without Moose, Moo, or any other CPAN OOP module. My good reason is so that I better understand what is going on and how Perl objects work. In hubris, because I dislike the fragility that comes with unnecessary complexity, I seldom use CPAN modules.
Despite my struggles with Perl, and the occasional (more than occasional) muttered curse onto whomever thought 27 layers of sigils is human readable, Perl is its own "killer feature". Solid Perl 5.8 code still works well. If you removed CPAN from the multiverse, Perl could still do more than most of us. Other (dang near all) languages are easier to learn. Some of them have much faster performance, or significantly more hits on job search boards. At the end of the day, though, if it can be done then you can probably do it in Perl.
I currently work in Perl. To push my skills further, my personal projects (toys, really) are in Perl. Despite being a slow learner, and struggling every day, I honor my employer by doing my best. And that is my killer feature.
Chronicler: The Domici War (domiciwar.net)
General Ne'er-do-well (github.com/LeamHall)