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 ]

Saturday March 03, 2007
03:58 PM

What do you hate most about your language?

[ #32556 ]

Try this question the next time someone tries to push a different programming language on you, or even when you want to hire someone: "What five things do you hate most about language X?"

If they can't find five things to hate, they don't know the language well enough to either advocate it or pull in the big dollars using it. They might get to be an entry-level programmer, but that's up to you.

I was talking with someone this week about language advocacy. To most people, that tends to mean that if I don't choose their favorite technology, I'm wrong.

Whatever. I don't care that much. Don't want to use Perl? Then don't. Want to make an informed choice? I can help. Still don't use Perl? Fine. Sometimes the right answer is "You have a strong programming team with good practices and a lot of experience in Java. Changing to Perl would be stupid".

In code reviews for clients, I often ask "If you could start over on this project, what would you do differently?" In this fantasy land, users and programmers get to bitch about anything and everything they don't like. "I want a better interface", "I want to separate the model from the view", "I'd use this module instead of this other one", "I'd rename this set of methods", or whatever they really don't like about the current situation.

If you don't know what you don't like about something, indeed, even Hate Hate Hate about something, especially software, I tend to think you're either covering your ass and don't really use it enough. If you don't have things you hate about your own code, for instance, you probably have an ego problem and are unwilling to admit your limitations and poor decisions. Look at my older code. It's crap. In five years I'll probably think the code I wrote this year is crap. That's just life.

The same thing applies to language advocacy. When someone wants to push another language onto me, I ask them "What are five things you hate about that language." I can tell you five things I hate about Perl, certainly. I can't be an effective advocate if I'm just a cheerleader.

I'm not going to list any reasons here, but try that the next time that someone tries to push another language on you, or even when you interview people for a job.

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.
  • ...I'd rephrase your inquiry to "What 5 things annoy you most about your favorite language ?"

    The net effect is the same, but is less confrontational. "Hate" tends to raise barriers of the religous sort; but we can all admit to occasionally being annoyed by even our favorite languages, things, even friends and family (tho its best not to admit the latter in public...).

    • I defintely mean "hate". Annoyances are easy to get over. The things I hate make me want to stick pencils in people's eyes. :)
    • I agree with you. Hate is too strong a word.
      • Nope, I definitely meant hate. I used that word on purpose. I don't care what annoys you, I care about what you hate about your language.

        • What I meant to say is that many people might just say that 'I dont hate anything, but there are few things which I dont like of language X'. It is arguably safe to say that if someone can say 5 things they hate of, they know the language well. But it is not safe to say that if someone can't say 5 things they 'hate' of, then they are either a beginner or can't pull in the big dollars using it. I remember once someone asked Tomek Czajka a similar question, and he said he has got nothing that he hate of c++ b
  • Period should always go across a pointer if pointer addressed. The pointer should be a part of the typing. No period returns the pointer, period returns the entire structure and period then element returns the element in the structure. Type Vector2D
    X AS INTEGER
    Y AS INTEGER
    END TYPE

    DIM u AS Vector2D ptr, v as Vector2D ptr
    # u will point to the same location as v
    u = v
    # u will hold a copy of the contents of the structure pointed to by v
    u. = v.
    #u holds a copy of the element x in the structure poin
  • This is precisely what I was thinking when I wrote this journal entry. [perl.org]
  • In no particular order.
    1. No try/catch facility other than eval, which is suboptimal for various reasons.
    2. Cumbersome signal handling.
    3. Slow startup time for scripts with lots of modules, etc.
    4. Performance penalties for OOP, tie, and similar, which unfortunately can limit their use in certain environments.
    5. Very hard to follow the exact relationships of classes to each other.
  • Are now in my journal [perl.org].