Slash Boxes
NOTE: use Perl; is on undef hiatus. You can read content, but you can't post it. More info will be forthcoming forthcomingly.

All the Perl that's Practical to Extract and Report

use Perl Log In

Log In

[ Create a new account ]

Ovid (2709)

  (email not shown publicly)
AOL IM: ovidperl (Add Buddy, Send Message)

Stuff with the Perl Foundation. A couple of patches in the Perl core. A few CPAN modules. That about sums it up.

Journal of Ovid (2709)

Wednesday October 05, 2005
12:53 PM

Criticizing Perl

[ #27030 ]

I love the Perl language. Unfortunately, there's quite a bit to criticize about it. Most of the issues which dissatisfy me are being fixed in Perl 6, but that's a long way off. So for the time being, I work around the problems.

There are two major camps of those who criticize Perl: those who know the language well and those who know the language poorly. Their criticisms do not generally overlap. It's gotten to the point where when someone says "I don't like Perl", I usually say "many people don't" because most people who don't like Perl don't know much about the language and didn't bother to learn. They see sigils on the front of variables and say the language looks like line noise. They see examples of Perl from bad programmers and generalize that to all of Perl. They "know" that only strongly typed (whatever the hell that is) languages are worth considering so Perl "must be bad".

Anyone whose thought processes are that simple-minded is someone I don't want working for me. There are plenty of reasons to dislike Perl. The three aforementioned ones aren't in that list.

One issue which amuses me the most, though, is how some people think Perl is so bad but keep mum on the subject of PHP. Most folks with only a passing familiarity of either language would be hard-pressed to tell them apart.

I wonder, though, if part of the problem lies in Perl's power? To really exploit the full richness of the language, you have to know it well. How many will stick with it long enough to get there?

The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
More | Login | Reply
Loading... please wait.
  • Unfortunately, there's quite a bit to criticize about it.

    You are such a tease!

    I myself don't really have a lot of complaints about the language, except that it sure would be nice to have a spiffy IDE sometimes... and it mostly doesn't because it is so dynamic as to make that difficult.

    But, I am interested in hearing what you *would* consider a "legitimate" complaint. (Would I be correct in assuming most lie in the OO area?)
    • There are plenty of valid complaints about Perl. You're right, a lot are in the OO department (how may ways are there to define a class?) But there's also the slew of weirdly named globals. And the lack of proper named parameters. I think inconsistency is probably one of the biggies too (how many global variables do you need for error handling?) Like you say, Perl 6 will (eventually) rectify a lot of these. Or you can look at Ruby [] today to get some of them fixed. ;-)

      As to an IDE, probably the best t

    • In addition to Dom's comments, I would also add a complaint that, ironically, I also have with Java: mixing objects and primitives (Perl's less of a pain, but still a pain).

      Lately I've been thinking a lot about allomorphism (think "duck typing" in Ruby) and how it relates to programming. Consider the following snippet:

      foreach my $method (@methods) {
        foreach my $object (@objects) {
          next unless $object->can($method);
          $object->$method( $args_for{$method} );

      • As a rule of thumb, having to check isa() indicates a design flaw.

        There is Scalar::Util::reftype(), which would make the code slightly less ugly and broken, but your theoretical alternative would be nice also.