<br><br>
<div style="margin: 0px 2px; padding-top: 1px;    background-color: #c3d9ff; font-size: 1px !important;    line-height: 0px !important;">&nbsp;</div>
<div style="margin: 0px 1px; padding-top: 1px;    background-color: #c3d9ff; font-size: 1px !important;    line-height: 0px !important;">&nbsp;</div>
<div style="padding: 4px; background-color: #c3d9ff;"><h3 style="margin:0px 3px;font-family:sans-serif">Sent to you by ddn123456 via Google Reader:</h3></div>
<div style="margin: 0px 1px; padding-top: 1px;    background-color: #c3d9ff; font-size: 1px !important;    line-height: 0px !important;">&nbsp;</div>
<div style="margin: 0px 2px; padding-top: 1px;    background-color: #c3d9ff; font-size: 1px !important;    line-height: 0px !important;">&nbsp;</div>
<div style="font-family:sans-serif;overflow:auto;width:100%;margin: 0px 10px"><h2 style="margin: 0.25em 0 0 0"><div class=""><a href="http://www.catalyzed.org/2009/04/perl-is-dead-long-live-perl.html">PERL is dead.  Long live Perl.</a></div></h2>
<div style="margin-bottom: 0.5em">via <a href="http://www.catalyzed.org/" class="f">Catalyzed.org</a> by Jay Kuri on 4/15/09</div><br style="display:none">
<p>Welcome to Catalyzed.org.  A site dedicated to sharing with the world what modern Perl looks like, and providing a peek into what's going on in the Perl community.  </p><p>As you are no-doubt aware, Perl does not have a flattering reputation. People have called it everything from 'ugly line noise' and 'unmaintainable' to the big favorite: simply 'dead.'   Perl is alive and well, but to those not in the Perl community it can be hard to see that. <span style="font-weight:bold"><span style="font-weight:normal">  </span></span></p><p><span style="font-weight:bold"></span></p><p>So the question is... If Perl is so lively, how do you reconcile that with it's reputation? How did we get here? And more importantly, how do we make Perl's reputation reflect what we who use it know, namely:<span style="font-weight:bold"></span></p><p><span style="font-weight:bold;color:black">Perl is one of the most powerful and <span style="font-style:italic">fun</span> languages available with a lively and active community.</span></p><p><span style="font-weight:bold"><span style="font-weight:normal">Today, we'll take a short stroll down memory lane, to see where this reputation comes from, and catch a glimpse of what modern Perl looks like.</span></span></p><p></p>
        <span style="color:rgb(0, 0, 0);font-family:Times;font-size:16px"><div style="height:90%;margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;padding-top:10px;padding-right:10px;padding-bottom:10px;padding-left:10px;color:rgb(51, 51, 51);background-color:rgb(255, 255, 255)"><p style="border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;font-size:1em;font-weight:normal;margin-top:0px;margin-right:0px;margin-bottom:0.75em;margin-left:0px"><span style="font-weight:bold">Time:</span>  1995     <span style="font-weight:bold">Where:</span> a barely-known ISP</p><p style="border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;font-size:1em;font-weight:normal;margin-top:0px;margin-right:0px;margin-bottom:0.75em;margin-left:0px"><span style="font-weight:bold">Scene: </span></p><blockquote style="border-top-style:none;border-right-style:none;border-bottom-style:none;border-left-style:none;border-width:initial;border-color:initial;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;font-size:1em;font-weight:normal;margin-top:0px;margin-right:0px;margin-bottom:0.75em;margin-left:20px"><p style="border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;font-size:1em;font-weight:normal;margin-top:0px;margin-right:0px;margin-bottom:0.75em;margin-left:0px">Young coder furiously typing in a green on black terminal.<br>Window switches to web browser.  Page Loads: Matt's Script Archive. </p><p style="border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;font-size:1em;font-weight:normal;margin-top:0px;margin-right:0px;margin-bottom:0.75em;margin-left:0px"></p></blockquote><p style="border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;font-size:1em;font-weight:normal;margin-top:0px;margin-right:0px;margin-bottom:0.75em;margin-left:0px"></p><p style="border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;font-size:1em;font-weight:normal;margin-top:0px;margin-right:0px;margin-bottom:0.75em;margin-left:0px"></p><p style="border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;font-size:1em;font-weight:normal;margin-top:0px;margin-right:0px;margin-bottom:0.75em;margin-left:0px"></p><p style="border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;font-size:1em;font-weight:normal;margin-top:0px;margin-right:0px;margin-bottom:0.75em;margin-left:0px"><span style="font-weight:bold"><br></span></p><p style="border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;font-size:1em;font-weight:normal;margin-top:0px;margin-right:0px;margin-bottom:0.75em;margin-left:0px"><span style="font-weight:bold">Time:</span>  2003     <span style="font-weight:bold">Where:</span> a little known web development company </p><p style="border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;font-size:1em;font-weight:normal;margin-top:0px;margin-right:0px;margin-bottom:0.75em;margin-left:0px"><span style="font-weight:bold">Scene:</span></p><p style="border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;font-size:1em;font-weight:normal;margin-top:0px;margin-right:0px;margin-bottom:0.75em;margin-left:0px"></p><blockquote style="border-top-style:none;border-right-style:none;border-bottom-style:none;border-left-style:none;border-width:initial;border-color:initial;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;font-size:1em;font-weight:normal;margin-top:0px;margin-right:0px;margin-bottom:0.75em;margin-left:20px"><p style="border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;font-size:1em;font-weight:normal;margin-top:0px;margin-right:0px;margin-bottom:0.75em;margin-left:0px">Programmer talking with his boss:</p><p style="border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;font-size:1em;font-weight:normal;margin-top:0px;margin-right:0px;margin-bottom:0.75em;margin-left:0px">Programmer:  "This code is awful, it really needs to be rewritten."</p><p style="border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;font-size:1em;font-weight:normal;margin-top:0px;margin-right:0px;margin-bottom:0.75em;margin-left:0px">Boss: "Why?  What's wrong with it?  We don't have time to rewrite it, I promised we'd have it done by the end of the day."</p><p style="border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;font-size:1em;font-weight:normal;margin-top:0px;margin-right:0px;margin-bottom:0.75em;margin-left:0px">Programmer:  "It's written for PERL 4.  It's a complete disaster area.  It looks like it was some half-hacked Matt's script.  Wait, the end of the day <span style="font-style:italic">today</span>?"</p><p style="border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;font-size:1em;font-weight:normal;margin-top:0px;margin-right:0px;margin-bottom:0.75em;margin-left:0px">Boss: "Yeah, just make it work."</p><p style="border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;font-size:1em;font-weight:normal;margin-top:0px;margin-right:0px;margin-bottom:0.75em;margin-left:0px">Programmer: ".... It won't be done today... I'll try to get it done for tomorrow."  </p><p style="border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;font-size:1em;font-weight:normal;margin-top:0px;margin-right:0px;margin-bottom:0.75em;margin-left:0px">Programmer walks off to try to hack new fields into existing script.  </p><p style="border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;font-size:1em;font-weight:normal;margin-top:0px;margin-right:0px;margin-bottom:0.75em;margin-left:0px">Boss calls client and says: "No, you can't have it today, it's written in PERL and it will take until Thursday to get it done."</p></blockquote><p style="border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;font-size:1em;font-weight:normal;margin-top:0px;margin-right:0px;margin-bottom:0.75em;margin-left:0px"></p><div><p style="border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;font-size:1em;font-weight:normal;margin-top:0px;margin-right:0px;margin-bottom:0.75em;margin-left:0px"><span style="font-weight:bold"><br></span></p><p style="border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;font-size:1em;font-weight:normal;margin-top:0px;margin-right:0px;margin-bottom:0.75em;margin-left:0px"><span style="font-weight:bold;font-size:13px;font-family:Arial">Time:</span>  Today     <span style="font-weight:bold">Where:</span> a small magazine, web site development meeting</p><div><p style="border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;font-size:1em;font-weight:normal;margin-top:0px;margin-right:0px;margin-bottom:0.75em;margin-left:0px"><span style="font-weight:bold">Scene:</span></p></div></div><p style="border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;font-size:1em;font-weight:normal;margin-top:0px;margin-right:0px;margin-bottom:0.75em;margin-left:0px"></p><blockquote style="border-top-style:none;border-right-style:none;border-bottom-style:none;border-left-style:none;border-width:initial;border-color:initial;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;font-size:1em;font-weight:normal;margin-top:0px;margin-right:0px;margin-bottom:0.75em;margin-left:20px"><p style="border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;font-size:1em;font-weight:normal;margin-top:0px;margin-right:0px;margin-bottom:0.75em;margin-left:0px">Executive:  "We need to get this site up and running ASAP.  You have 8 weeks, get it done."</p><p style="border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;font-size:1em;font-weight:normal;margin-top:0px;margin-right:0px;margin-bottom:0.75em;margin-left:0px">Web Developer:   "We can do that.  If this is the complete feature list, we can get it done no problem."</p><p style="border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;font-size:1em;font-weight:normal;margin-top:0px;margin-right:0px;margin-bottom:0.75em;margin-left:0px">IT director, stunned at an answer of 'OK':  "I don't think that's realistic.  What are you going to build it on? We don't want an off the shelf CMS."</p><p style="border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;font-size:1em;font-weight:normal;margin-top:0px;margin-right:0px;margin-bottom:0.75em;margin-left:0px">Web Developer:  "It's not, there's a Perl based web framework called Catalyst that we can use that will make this easy."</p><p style="border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;font-size:1em;font-weight:normal;margin-top:0px;margin-right:0px;margin-bottom:0.75em;margin-left:0px">IT Director (formerly Boss): "We are not building our new web site on PERL.  I have dealt with PERL before, it's completely unmaintainable." To Executive: "We'll get back to you."</p></blockquote><p style="border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;font-size:1em;font-weight:normal;margin-top:0px;margin-right:0px;margin-bottom:0.75em;margin-left:0px"></p><div><br><br><div>This last scene is probably familiar to you if you have proposed Perl as a solution to a software problem in recent years.  </div><br><div>Perl is a forgiving language, especially compared to the languages commonly available for web development in the mid 90s, which is the reason it was chosen for those initial web projects.  You could get started without the need for a full understanding of pointers and memory management.  If you forgot to initialize something, the result was not a seg-fault or other failure.  Perl required less discipline to get started with and was more tolerant of bad code.<br></div><br><div>The cowboys of the mid 90s cut their teeth on PERL forum postings and Matt's Script Archive. They have, unfortunately, left a legacy.  That legacy is horrible, unmaintainable code.  Many of those cowboys have gained real skill with development since then. More have simply migrated to other languages to write bad code.   Unfortunately, the names of those cowboys is not visible every time that code is looked at, but in every one of those files, at the very top, is some variation of '<span style="font-style:italic">/usr/local/bin/perl</span>'  </div><br><div>So Perl as a language gets the reputation for this pile of code left behind by the cowboys of the early Internet.  Fortunately for those of us who develop in Perl, those days are over.  The newer languages such as PHP and Ruby have taken over the 'newcomer to web development' slot as far as the buzz engine goes.  So the cowboys of today are generating horrible unmaintainable code in other languages.  </div><br><div>Because of it's reputation as a dead language though, Perl lost it's appeal as a buzz-worthy language. This reputation has cost Perl many new adopters and over time has boiled down the Perl community significantly.  </div><br><div>Today, you don't code in Perl because you want blog cred.  You code in Perl because you want to get things done.  This is the reality of Perl development in 2009.  There are a lot of people writing in Perl today who have come through it, who have been around the block and are long-since tired of re-creating the same solutions over and over. These programmers are the ones working in Perl today.  They are the ones uploading modules to CPAN 400+ times per month.  </div><br><div>These developers are people who are excited to do new things, who hate repeating themselves, and who want to do as much as possible in as short a time as possible.  They don't want to waste time solving the same problem again.  They want to create a module that is flexible enough to handle this problem the next time they encounter it, even if it is slightly different, or better yet, use someone elses module.  They want to move on to the next interesting problem, they want to make their software more flexible so they can do more with less.</div><br><div>Projects such as <a href="http://search.cpan.org/~drolsky/Moose-0.73/lib/Moose.pm" style="text-decoration:underline">Moose</a>, <a href="http://search.cpan.org/~ribasushi/DBIx-Class-0.08012/lib/DBIx/Class/Manual/Intro.pod" style="text-decoration:underline">DBIx::Class</a> and <a href="http://search.cpan.org/~hkclark/Catalyst-Manual-5.7020/lib/Catalyst/Manual/Intro.pod#What_is_Catalyst?" style="text-decoration:underline">Catalyst</a> are evidence of this new life of Perl.  Perl is no longer a language of cut-and-paste unmaintainable line noise.  Today's Perl is a language of great power in a small space.  It is a language whose devotees are focused on getting things done, on exploring new concepts and better methods of doing things.   Today's Perl developers have eschewed the NIH (Not Invented Here) build-it-yourself mentality in favor of a FAI (Find And Improve) mentality.  </div><br><div>The result of all of this is a renaissance in the Perl community.  A vitality which, though not new, is more pervasive, more lively and more externally visible.  It is reinforcing that Perl is a language that is fun and exciting to work in;  that Perl is a language where even those with years of programming experience can learn new things and where new things to all languages are being explored.  Perl's reputation as a bad, dying language has long outlived it's time.  It's time we bring a new message about Perl to the world at large.</div><br></div></div></span><blockquote style="margin:0 0 0 40px;border:none;padding:0px"><span style="font-weight:bold"><span>PERL is dead.  Long live Perl!</span></span></blockquote><span style="color:rgb(0, 0, 0);font-family:Times;font-size:16px"><div style="height:90%;margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;padding-top:10px;padding-right:10px;padding-bottom:10px;padding-left:10px;color:rgb(51, 51, 51);background-color:rgb(255, 255, 255)"><div><div><br></div>So, how do we communicate this message?  The answer is simple - we speak about it.  This is the reason we created Catalyzed.org.  We all know what good Perl looks like.  We know the successes we've had. It's time to share them.  </div><div><br></div><div>Drop us a line at ideas at catalyzed.org, add a comment below, or pop over to our ideas site: <a href="http://catalyzed.ideascale.com/">http://catalyzed.ideascale.com/</a>. Tell us about your successes. Share with us your favorite pet CPAN modules.  Drop a line about a little gem of code that does something amazing.  We'll share it with the world. </div></div></span></div>
<br>
<div style="margin: 0px 2px; padding-top: 1px;    background-color: #c3d9ff; font-size: 1px !important;    line-height: 0px !important;">&nbsp;</div>
<div style="margin: 0px 1px; padding-top: 1px;    background-color: #c3d9ff; font-size: 1px !important;    line-height: 0px !important;">&nbsp;</div>
<div style="padding: 4px; background-color: #c3d9ff;"><h3 style="margin:0px 3px;font-family:sans-serif">Things you can do from here:</h3>
<ul style="font-family:sans-serif"><li><a href="http://www.google.com/reader/view/feed%2Fhttp%3A%2F%2Fwww.catalyzed.org%2Fatom.xml?source=email">Subscribe to Catalyzed.org</a> using <b>Google Reader</b></li>
<li><a href="http://www.google.com/reader/?source=email">Get started using Google Reader</a> to easily keep up with <b>all your favorite sites</b></li></ul></div>
<div style="margin: 0px 1px; padding-top: 1px;    background-color: #c3d9ff; font-size: 1px !important;    line-height: 0px !important;">&nbsp;</div>
<div style="margin: 0px 2px; padding-top: 1px;    background-color: #c3d9ff; font-size: 1px !important;    line-height: 0px !important;">&nbsp;</div>