Language Advocacy Considered Harmful

stephen on 2003-02-13T21:35:09

A little while ago, I was at a meeting where someone asked for help working on a web application. After the meeting, I approached him to find out if I could help. I briefly ran over my credentials, and said that I primarily worked in Perl right now. He said that the application was currently in PHP, but he would perhaps be interested in rewriting it in Perl. Some other folks jumped into the conversation, and some interesting ideas were surfacing, when someone I didn't know walked into the conversation and started lecturing me. The conversation went something like this, condensed down:

She: Perl is terrible. You should leave it in PHP.
Me: Um...
She: PHP has feature X.
Me: I'm sorry, but I don't know PHP--
She: You should learn it. Its syntax is simple, very similar to C. Perl is unreadable.
Me: I don't want to argue about languages.
She: No, it's true! I have lots of experience.
Me: (tiredly) I was just offering to help, I don't care what--
She: Perl is unmaintainable.
Me: I don't c--
She: I've had to work on too many crappy Perl scripts.
Me: So have I.

At that point I decided that I had enough to do already, and quietly made my departure.

My point is not that she was wrong. She wasn't. It's possible to write hideous scripts in Perl. In fact, it's possible to write hideous, unmaintainable scripts in any language worth knowing. I've written some scripts so difficult to deal with that I had to stop development for months just to go back and refactor my own code until I understood it again.

Instead, I've got two points. First, language advocacy is really, really irritating. To me, it's like jingoism-- "the way I do things is better than anyone else's, and I want to squelch anyone who does things otherwise!" Perl language advocacy is as irritating as any other kind. This person was trying to convert me to the One True Way of PHP, which no doubt has its advantages and disadvantages. I was just trying to help accomplish a task. If, instead, she had offered to help me learn PHP, I would have been more receptive. I can be as guilty of overevangelism as anyone else. "Use strict or die!"

Secondly, Perl does have a reputation for being as unintelligible as a cartoon swear. The more often we have people that don't pay attention to code readability, the more anti-Perl zealots we create. Irritating as it is, we need to listen to our critics.