I recently went 9 months unemployed. Without having actually kept records, I'd say that upwards of 80% of web programming jobs I saw listed for San Francisco or the East Bay were evenly split between Java and MSFT technologies. PHP was most of what's left -- probably half again as many listings wanted PHP than wanted Perl. I only recall seeing Python mentioned once.

We have lost a lot of mindshare to PHP. PHP has some advantages for small or medium web apps one intends for wide distribution, due to ease of installation over a mod_perl app.

But I recently evaluated PHP as a candidate for a large project at work, and I really can't understand why anyone would choose PHP for a large project... It has a global namespace for functions, giving rise to an expectation that you should manually prefix every function name with its module name, and leaving you to hope for the best that everyone did the same if you use more than one third party module. It has three thousand built-in functions, with wildly inconsistent naming schemes, and inputs and outputs, guaranteeing a trip to the manual to do anything. It has a large dependence on global variables.

One of the things that strikes me about PHP is that lots of the criticisms of Perl are a hundred times more true about PHP. The core language is bloated and tries to do too much, it's inconsistent, it's impossible to know the whole language, it lends itself to poor practices...

I think PHP's a classic example of worse is better. It has a lower barrier of entry than anything else (well, except probably ASP, but I haven't used that) for someone wanting to start doing web programming. It did something lots of people really wanted, that seemed much harder in other languages. So it spread like kudzu until, today, there are large web companies doing their development in PHP. I think we're going to see a lot of buyer's remorse in 3-4 years when they've had to maintain these.

Something that does worry me, though, is that there are people who will never even try Perl because they've heard so much FUD about how ugly it is, or how it's write-only code that's impossible to read or maintain, or how it's wildly inconsistent. Sadly, some of those people no doubt should be Perl programmers by temperament, and might never know it.

I think we could really use more visible Perl applications, to implicitly convey the message of how useful Perl is. I'm not convinced Perl couldn't fall into decline. I think countering the FUD and changing the perception of Perl that exists among much of the non-Perl programming world is needed to avoid that. Perl 6 and Parrot should help a lot in that regard (though some of Perl 6's choices, like the unicode operators, are going to make for awfully easy cheap shots.)


In reply to Re: Another prediction of Perl's demise by Zed_Lopez
in thread Another prediction of Perl's demise by bradcathey

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.