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.


Dave


In reply to Re: Argument for Perl ( again and again ) by davido
in thread Argument for Perl ( again and again ) by heatblazer

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.