The Perl Mindset

One of the things that I have always liked about the Perl community is the low level of language- and stack-bashing that we unfortunately see so many places where talented and not so talented techies gather. I’ve been to conferences where there has been whole talks that are were centered around how incredibly stupid that other language is, and how you are stupid too if you apply that language to solve a problem. My experience with the Perl community has been the exact opposite. People love discussing stacks, tools and whatever kind of technology that some day might help them solve problems faster and better.

Two principles that are central to many Perl programmers are TIMTOWTDI and KISS. There are many good explainations of these principles online so I’ll stick to my interpretation here. The first tells me that your solution might be as good as or better than mine and that there is something for me to learn from seeing how you solved a particular problem, and the second principle tells me that I should apply the simplest solution that works for a given scenario.

These are things you often hear repeated in the Perl community, and probably other communities as well, but from my experience these principles are particularly well rooted in the Perl crowd. Adhering to these is what has brought CPAN to where it is today, and is as I see it the primary driving force behind the continued momentum that Perl has. Contributors constantly push to make their modules better performing, easier to use and more succinct in their implementation.

You might find many modules that seek to solve the same problem, and you will usually also see that these are each tailored to be better than the others at one thing or the other. A quick read should give you the answer to which would be the best fit for your particular problem. If you don’t feel that any of the existing fit, just write your own and share it with the rest of the community.

This evolution of modules is very much representative of how Perl programmers function. They source information, evaluate and then either use what they found or make something they think is better and reusable for other developers to find later. Just doing a few searches on MetaCPAN will quickly demonstrate how many non Perl technologies that Perl programmers out there have made interfaces for, thereby improving on adoption of Perl and promoting the other technology in question.

We all share the same love for technology, and I am heartened to see the level of curiosity and openness in the community I am a part of.