So I was sitting on my friend Andrea's sofa, talking to one of her other friends, a gentleman who also happened to be a programmer. Turns out he built systems in C. When he asked about what I did, I told him I built systems in Perl. He was confused. "The scripting language?" I replied that a lot of people think that, but it's not true and I build large systems in Perl, far larger than most people think. And his response? "Yeah, but Perl's a scripting language." He was very confused and when the conversation was over, I think he thought I was either lying or just very naïve. Maybe the latter's true, who knows?

You can debate all you want about what a scripting language is or isn't. I'll smile happily and start daydreaming because this discussion is even less useful than strong typing discussions. Instead, I started thinking about PHP. PHP 5 has been out for about 2 years but the majority of PHP code is still PHP 4. What's worse, given my experiences with Perl, I suspect that a lot of PHP 5 code is still being written to look like PHP 4. However, for those not familiar with PHP, I doubt they could even tell you what version it is. I doubt they could tell you what version Ruby or Python are up to.

Why is this relevant? Well, what do I think a scripting language is? Despite my earlier assertion that I'm not really going to pay attention to any debates on the topic (because truth be told, they bore me to hell), the fact is that I still have a mental model of what a scripting language is. That's a language which is suitable for writing smaller "glue" bits of code, but not larger systems. Admittedly this is subjective, but a scripting language is to a "real" language as erotica is to pornography: I know it when I see it (further research is needed in this area).

This was an awfully circuituous way of getting around to my main point. By my personal, highly subjective and faith-based view of what a scripting language is, I would suggest that Perl 4 qualifies. In fact, there's still so much Perl 5 code being written in a Perl 4 style that this code is pretty much indistinguishable from a scripting language. I think many MySQL developers should be sympathetic because there's still a lot of crap being written for MySQL 5, despite the fact that it's becoming a serious database. So when people tell me that Perl is just a scripting language, I think I'm going to reply "you're talking about Perl 4, something that stopped being maintained over a decade ago. Tell your programmers to stop writing Perl 4."

Update: Mutant's response made it abundantly clear to me that I haven't gotten my main point across, but since I never used the word "marketing", that's not surprising.

I understand Mutant's point, but I'm looking at this from a marketing viewpoint (yeah, yell at me later). Instead of letting the "scripting" thing slide when people bring it up, I want to make it clear that they're behind the times and don't know what they're talking about. It's kind of like people saying they won't use MySQL because it doesn't have transactions (it's had them for a while, thank you).

The Perl community has always been rather rotten about marketing and we treat it like a dirty word. However, there's nothing wrong with using it in conjunction with pointing out the technical merits of Perl. There's no way in hell you're going to convince a PHB by tossing "Higher Order Perl" on his desk. That self-same PHB might have a different attitude when he finds out that his programmers are basically writing in a language that should have died over a decade ago.

We can either take a moral "marketing is always evil" high ground and watch while others effectively use negative marketing against us, or we can figure out how to use positive marketing in our favor.


New address of my CGI Course.