Gladly I find myself needing to answer this question a lot less than I did a few years ago. Due to a combination of new talent into our community (many who came to Perl because of awesome modern projects like Catalyst, DBIx::Class, Moose and now Plack) and a renewed drive toward improving communication (via things like Ironman Perl, Perl Blogs and updated documentation for newcomers) I personally believe that Perl has made a good start at closing the gap between our community’s perception of our beloved programming language and the perception Perl has in the general world of our IT peers. That is to say, we know Perl rocks and we are much better at letting the world know it too!
Given that reality I generally prefer to not write defensive articles explaining why I think Perl is a good choice for application development and instead rather go on the offense by contributing code, working examples, and all that. However since I will be shortly teaching a Perl class here in NYC (more on that in a bit), I think a short Perl promotional may be in order. So, in no particular order, are some of my top reasons for using Perl (and why you might like Perl as well).
Perl Programmers love their language. For most Perl programmers, using Perl is more than a job; it is part of one’s identity. When using Perl I often feel like I am part of something greater than then individual code I may be writing at this temporal moment. Objective studies seem to validate this anecdotal experience.
True Freedom. Perl is free software / open source software. This means I can always find the source code and often can find the core developers in charge of some code. I never need to worry about when some company is going to service my bug ticket and I am never hostage to the changing whim of corporate strategy. Although many pretenders proclaim to be free software, I think Perl is more free than many mainstream programming languages since there is no single direct corporate sponsor of Perl which has competing interest between dedication to free software and the requirement to put their business needs first. Compare this to other projects that claim to be free, such as MySQL, Android and Java, all of which have at one time or another in the recent past demonstrated corporate encumbrances. Because of this true freedom the Perl community is completely in charge of itself and has spent years doing the hard job of self-organizing and learning to coordinate our long-term objectives.
Great Community. Since Perl programmers know that the future of our language is solely in our own hands, this has fostered a strong sense of community and shared destiny. This is not to say we live in a sort of new Eden, certainly there are arguments and differences of opinion. However our willingness to respect those who prove their point with code and not just words enhances our contentious meritocracy for the benefit of all.
CPAN. Quite simply there is nothing like it and it gets better all the time. With Perl you have one command access to literally tens of thousands of open sourced modules, covering everything from the quirky to the religious to the serious. Additionally, CPAN is more than just the free modules; its ecosystem includes a distributed delivery system as well as a test collection framework (more than 16 million tests collected across a variety of platforms and Perl versions).
Awesome Tools. Although it goes without saying that my CPAN comment above would cover this, I think it is worth a shout out to a few of my personal favorites, without which I might have left the Perl community years ago.
- Moose and the extended MooseX software ecosystem. Simply the best way to model objects in Perl or any other language as far as I am concerned.
- Plack. This creates a strong foundation for web application building in Perl that is easy on developers, straightforward to deploy and encourages an unprecedented level of cooperation between all the different frameworks for authoring dynamic websites.
- DBIx::Class. An object relational mapping framework that doesn’t suck and makes sense to developers. The foundation of a well architected system.
- Catalyst. My personal favorite way to write a website of more than middling complexity.
- Perlbrew, local::lib, Module::Install. A great tool-chain for developers to organize, code and distribute applications.
- Test::*. Perl just has the best and most developer friendly testing code. No surprise we have such a strong, test centered culture!
Awesome Third Party Support. Want to connect to Twitter? Access Facebook? Search with Google, or Bing? Want to deploy or manage your EC2 clouds? Or maybe you like Rackspace? Maybe you love Github? Or you are using a Platform as a Service provide like Dotcloud or Stackato for easy deployment? Perl has you covered for this and much, much more!
Jobs. Shutterstock.com is always looking for awesome Perl developers. In addition, Perl jobs tend to be very developer centered. The best Perl developers are often respected within their companies. My personal experience as an IT worker has been significantly better than the average of my peers in other languages. As a Perl developer, I have never interviewed and been hired into a job that I regretted or didn’t like at a later date.
Thanks for tuning in, and I'd love to hear more from you all regarding your favorite things about Perl!