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

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.
  • (Disclaimer: I'm a Perl apostate.) You seem to be saying that competent Perl programmers are scarce and growing scarcer. It's also non-disputable that huge amounts of Perl code are being written every year. It would seem to follow that the average quality of Perl written over time has been falling, and anecdotally that's exactly what I'm seeing. For at least the last five years, the Perl that crosses my desk has been uniformly godawful--much poorer in quality than the first program I wrote as a kid. Ra
    • confirmation bias much ?

      I think those who *do* care about quality have got on with it, that's why we have some seriously good tools for to help code quality, in every area from profiling, to perl critic to unit tests, to smarter refactoring editors : whether using perlisense or other tools inside vi or emacs, or using Padre, Kephra, Komodo or Eclipse.

      I care about quality, and Perl has delivered, everything from 2 generations of ORM that beat anything available from other dynamic languages, to CPAN modules with near 100% test coverage and a very high quality of documentation, to a wiki that's grown from 0 to nearly 1000 pages in under a year, then there are all the metrics available allowing me to check the quality of dependancies, and know in advance if a version of a module will install and pass tests on any given platform and version of perl.

      All in all, none of the other dynamic languages come halfway close to delivering the kind of quality I expect and have expected of me, and many of the bigger commerical languages can't even match perl in some areas.

      so meh!

      All evidence contradicts TIOBE and the comments you see on reddit, apart from partisan anecdotes of people who have jumped ship and want to convince themselve and/or others that they are smarter.


      @JAPH = qw(Hacker Perl Another Just);
      print reverse @JAPH;
      • Re confirmation bias: No, what I see is clear cut. Better to argue instead that my case is not representative. I work in bioinformatics, and the Perl is pretty uniformly awful--mostly written by biologists I suppose. (When I say "awful", I don't mean "unimaginative" or "not what I would have done", I mean "poke your eyes out and run screaming".) Now, it may not be Perl's fault that a large number of people writing it are not competent, but that doesn't change the fact that randomly sampling Perl code, p
        • I work in bioinformatics, and the Perl is pretty uniformly awful--mostly written by biologists I suppose.

          I suspect that most of what you see is due to the fact that Perl allows non-programmer biologists to get things done without having to be good programmers. No one's devised a system by which you can turn a non-programmer into someone with good code maintenance habits automagically. I'm not sure it's possible.

          • To a degree, perhaps. I think it's more that it gives non-programmers the *illusion* that they are getting things done.

            For example, they can write code like "while { print; }" and feel that their code works. Unfortunately, it fails silently on I/O errors, so to my way of thinking it's far worse than useless.

            Given that there are alternatives that don't suffer from this problem, this seems like a showstopper to me.

            • my way of thinking it's far worse than useless.

              Have you ever noticed empty catch blocks in Java code that trap Exception e? That's because non-programmers who just want to get something done care more about whipuptitude than handling all exceptional cases perfectly.

              I consider myself a decent programmer, and I don't check the results of my close calls all the time, either. Does that mean that my code only works in my illusion-prone mind?

              • Hmm. If I usually don't buckle my kids into their seatbelts, would you say that I'm an inattentive parent (a) most of the time, or (b) only if/when I actually am involved in a wreck and they go the the hospital? I'd say (a).

                I don't always check my results, either, but it's usually on my mind because I know it's important, and I generally try to make my stuff reliable before it leaves my hands.

                • If I usually don't buckle my kids into their seatbelts....

                  If you have novice programmers writing programs where improper coding can produce death, dismemberment, and other disaster, you have incompetent management. (If that's not what you mean, then your analogy is inappropriate.)

        • I've friends who work in bioinformatics, they write Perl, most of it is pretty good, some of them come to Perl Workshops, and the some of the people they work with even give talks at Perl Workshops.

          Not all of the people they work with are good, but there is the community and the support there. If the technical people in your organisation are more interested in petty squabling about languages than helping their own people do their job better by hooking them up with the local perl or bio-perl comminity, that


          @JAPH = qw(Hacker Perl Another Just);
          print reverse @JAPH;
        • As has been noted, bioinformatics has a lot of non-programmers programming in Perl. IIRC, average salaries in bioinformatics is less than what you see in other areas of Perl. The two phenomena are likely related, and both will lead to lower average code quality.

          Incidentally the quality of the Perl code that I've personally been seeing over the years has been going up, not down. That's because as my career has advanced I've been working with more experienced groups of competent people. While this is a go