Application Development using Catalyst, Moose, Plack, DBIx::Class and other Modern Perl software!

10/07/2011

Why Perl?

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.

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.

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!

@Ada: if you think "those giant web services do qualify as a huge success for their respective programming languages", take a look at Booking.com, written in Perl and growing fast (and we're hiring!). Does this qualify as a huge success?

My first language was COBOL, and I've earned my living writing assembler, C, Fortran, and have written code in several others like algol and bliss, but once I learned perl, I've been reluctant to code in anything else and havn't needed to since it has provided my livelyhood for a couple decades. I'm amazed at how powerful expressiveness in this "dead" language is. Of course my other favorite dead language is teco.

Moose is a sign of Perl's death, not of hope for its future. It just highlights the core language's deficiencies.

Ten years ago, Perl was, indeed, a great language compared to the alternatives. Since then, Ruby and Python have grown into better languages than perl. They are both much more elegant and congenial to work in.

Six years ago, I could argue that CPAN was a good reason for doing new development in Perl, but today there's so much good code in the standard Python distribution that this argument no longer holds. At one point, it seemed like the best developers were contributing to Perl, but today they're in the Python community.

@ada "Perl is factually dead because there are no truly original projects developed in it anymore, all the cool stuff gets invented in other languages and later ported to Perl. That's surely not something to be proud of and that should be celebrated like this."

OK .... now we get the meet of ada' message. How dare you John? Have you no shame John? How dare you advocate Perl.

That is just wrong. You should be ashamed of yourself, John, for praising Perl. For choosing Perl.

Honestly John -- i would have deleted ada's comments a long time ago and blocked that troll from spreading such hatred, especially for using such even-tempered language that puts us on the defensive. They clearly hate Perl and want everyone to stop using it.

Who would honestly want this in the Open Source World? I can't think of anyone, yet here they are --- trolling instead of coding. Speaking of coding ...