Stories
Slash Boxes
Comments
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 ]

scrottie (4167)

scrottie
  scott@slowass.net
http://slowass.net/

My email address is scott@slowass.net. Spam me harder! *moan*

Journal of scrottie (4167)

Friday July 27, 2007
09:16 PM

Java, in stark terms. Why I hate Perl programmers.

[ #33901 ]

Sometimes the Perl community is pathetic.

Here's one way in that it's pathetic: not reading Object Oriented Design & Analysis books.

I hear a lot of arguments for not doing so. Many of them, given in all seriousness, aren't even on topic.

"I don't need to study Object Oriented Design because OO means strong typing and you don't need strong typing to do OO". What the FUCKING HELL!? Apparently Perl is the language for crack babies.

"Plan to throw one away". Yes, this is an ideal, and ideals are good. Assuming that the ideal scenario will play out is foolish. It's foolish to assume that you'll be willing to demand it even as you begin to have doubts about your job security if you demanded it and whether it's really in line with the clients interests. Over and over again I see development teams who are going to "do it right" setting out but then reality sets in and kicks their ass. So be smart, not idealistic, or else have really good job security and the authority to actually make the ideal happen, as well as the confidence to follow through.

"Design is of limited use". This one I strongly agree with -- "planning is NP complete", as I say. But I didn't say anything about planning the whole thing from the onset. That's a presumption inserted by the aruger to excuse themselves from studying OO design. If they don't need it up front, they can do it later, but they won't do it later either, because they don't know how because they won't frickin' read the classic texts on it!

Then there are an infinite number of arguments that take the form of "Java is known for that being serious about OO stuff, and Perl is better than Java, therefore Perl doesnt need it". Unlike the first example which was merely self contradictory, this one is actually circular, which you'd know if you studied formal logic, makes it invalid.

It's these blatent attempts at weaseling out of the less than fun parts of our *jobs* (read: paid to do them) that turned the industry off to Perl programmers. And I hate you for being lazy and causing the industry to go cold on Perl. Ignorance is false laziness. Don't do it. Go read _Object Oriented Design Heuristics_ today! It's language agnostic, it's classic (before this trendy dumbed down "OO is easy!" movement), it doesn't pull punches, it admits when things are hard, doesn't cock up silver bullets for you to try to lean on (and fail), and it'll make you a lot better programmer.

Point of clarification: the hatred doesn't apply to the parts of the Perl community that are actually working to bring (optional) strong typing to Perl, or otherwise steal from Java rather than hide from it and pretend it doesn't exist.

For nearly any programmer, there are some things that you just plain need, regardless of what language you're working in:

* Relational database design theory and the five normal forms
* Security -- validation, race conditions, in-band versus out-of-band signaling, other things
* Algorithms theory -- otherwise every program you make will be a mash up
* OO Design -- (or alternatively, the sort of meta-programming and software engineering taught in the wizard book) -- or else your program will start to seriously suck beyond a surprisingly low level of complexity

I know most of you guys didn't get a CS degree, and you used to be the sysadmin, or the typesetter, or the janitor... but if you're going to adopt this field, at least dig enough into the topics on which its founded to understand *why* they're needed. Honestly, it's easier than constantly arguing (first to yourself, then your boss, then to interviewers, then to the unemployement officer) why *you* don't need to know them.

-scott

The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
 Full
 Abbreviated
 Hidden
More | Login | Reply
Loading... please wait.
  • Do you think there are language features which encourage more respect for OOAD in Java versus Perl? Do you think the way that people approach and learn both languages lead to different types of programming?

    (I ask because I suspect that there's one strong trend involved, but I'd like to hear your thoughts here, if the questions are at all interesting to you.)

    • Hi chromatic,

      I was thinking of emailing you to suggest plugging perlsurvey.org.

      "Do you think there are language features which encourage more respect for OOAD in Java versus Perl?"

      In some regards. The language, by design, treats it as important, so it encourages respect. And you'd have to have some respect for it to use the language, or be willing to learn respect for it, or else be willing to put up with a lot of pointless fuss for no good reason. The language itself doesn't help you with OODA, but the
    • "(I ask because I suspect that there's one strong trend involved, but I'd like to hear your thoughts here, if the questions are at all interesting to you.)"

      I'm curious. What trend do you suspect?

      -scott
      • What trend do you suspect?

        Java ended up as the de facto teaching language because Pascal was the teaching language of the previous generation, C++ was too baroque, Smalltalk was too much unlike Pascal, and when "How to Use Excel" is a CS class, there's no way you can think about teaching undergraduates Scheme.

        Though there were still a few books written about Smalltalk or Lisp in this era, non-theoretical CS programs moved to Java in the late '90s, hence Design Patterns mixed C++ and Java examples (and

        • Whoa.

          I think this deserves a post on your O’Reilly weblog. Seriously, that’s an excellent bit of insight that deserves to get some wider attention than a comment somewhere on use Perl.

  • Look, I tried to learn Object-Oriented design. I really did. I knew software engineering was absolutely the most important area in my studies. I shelled out thousands of dollars for a bachelor's degree and most of a master's degree. I took software engineering as an undergrad and got a jerk of a professor who didn't teach a thing. He was the only unsatisfactory professor I had. At the end of the course I seriously considered going to the dean's office and demanding my money back and credit for the cou

    --
    J. David works really hard, has a passion for writing good software, and knows many of the world's best Perl programmers
    • I've read (okay, skimmed) a lot of software design or OO design texts, and I've found similar things. Most of them suck, a lot. ( Even our books have occasional howlers [oreillynet.com].) If I'm right and the design of Java can mitigate some of the damage of bad use of OO, then this doesn't matter so much for Java users; their programs will tend to converge on the local maxima which happens to be only slightly better than the global minima.

      For programmers in languages which lack the "Everybody buckle up" philosophy by d

      • J. David has an advantage in that he works really hard, he has a passion for writing good software, and he knows many of the world's best Perl programmers.

        I think I'm going to put that on my resume. :)

        --
        J. David works really hard, has a passion for writing good software, and knows many of the world's best Perl programmers
      • Anyone know if O'Reilly's Head First Object-Oriented Analysis and Design [oreilly.com] is any good or not?

        --
        J. David works really hard, has a passion for writing good software, and knows many of the world's best Perl programmers

    • Yeah. I hear ya. I don't think universities can teach computer security either. Sometimes, in some fields, the text books rock. I adored anthropology. The algorithms book I walked away from CSci with was... well, it was technically correct, but within the confines of that, it was as utterly unhelpful as it possibly could be. Java programmers, being interested in a career, go through Csci, but it's in the field, and from books off amazon.com, that they learn this stuff, just like the C++ programers bef
      • Thank you!

        --
        J. David works really hard, has a passion for writing good software, and knows many of the world's best Perl programmers