|Think about Loose Coupling|
Re: Argument for Perl ( again and again )by davido (Archbishop)
|on Oct 17, 2012 at 18:34 UTC||Need Help??|
Don't try to convince someone by trotting out a list of things you think make Perl cooler than other languages. Chances are good that the person who knows "other language" better than you will already know how to accomplish the same thing in a more "other-language-ish" way. Any Turing-complete language can find a way to achieve the same goal. Sure, more work goes into writing an HTML parser in C, but the C folks have undoubtedly accomplished it at some point along the way, and they may have actually invented something the rest of us could learn from.
...which brings me to the main point of my post: Other languages aren't the enemy. They're neighbors. They're influencers. They're co-innovators. Perl was born out of a desire to take some of the best ideas of other languages and combine them in a way that turned out even better. As soon as we dismiss another language as being a fool's errand we're no better than those who scoff at Perl, dismissing it because of some misguided, under-informed reasoning, and in so doing, missing out on some really cool things.
Perl moves forward when people bring fresh new ideas to it. Moose wasn't invented in the vacuum of a Perl-only world. It took some of the better features from other languages, invented a few of its own, and combined them all in a way that gives us one of the better object systems available to a multi-paradigm language. Regular expressions weren't a Perl invention. But PCRE has become the de-facto standard because Perl took some of the best Regex features, added some more cool ideas, stole a few cool ideas from other languages later on, and developed one of the richest, most powerful (and most difficult to master) regex syntaxes available. Perl's generic containers weren't a Perl-only phenomenon, even back in the 80's when Perl was invented. And more recently, Plack is an idea lifted directly from another language, and made our own.
What does this have to do with defending Perl? Well, if there's a point I'm trying to make, it's "Don't!". Instead, ask the individual if there's anything in Perl he thinks might provide inspiration for the betterment of his favorite language. Play to his interest in his own language. But above all, listen to what he has to say. We all benefit from an open dialogue, free from defensiveness.
As an example, C++ might actually be a better language if someone could just figure out how to give it anonymous subroutines and closures. C++11 did just that, and there are lessons we can learn from the C++11 implementation back here in the Perl world. This open dialogue thing is a two-way superhighway (or it should be).
If you want Perl to continue to move forward, don't defend it. Innovate. And encourage others outside of the Perl world to innovate as well. Furthermore, encourage others inside and outside of the Perl world to explore each others' languages, and bring the best things they find back to their own language. As we watch that evolution we'll learn some new tricks too.