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 ]

Ovid (2709)

Ovid
  (email not shown publicly)
http://publius-ovidius.livejournal.com/
AOL IM: ovidperl (Add Buddy, Send Message)

Stuff with the Perl Foundation. A couple of patches in the Perl core. A few CPAN modules. That about sums it up.

Journal of Ovid (2709)

Tuesday August 08, 2006
03:27 AM

Let's face it, Perl *is* a scripting language

[ #30565 ]

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 stop being maintained over a decade ago. Tell your programmers to stop writing Perl 4."

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.
  • Why exactly is C supposed to be better than Perl for large systems (ignore speed of execution, assume that both can in principle satisfy your requirements)? What large-scale development advantages does it, as a language, have? What if you had raised an incredulous eyebrow and asked this gentleman, "you write large systems in *C*???" What would his response have been?

    It's kind of the thing I (try to) have in mind when I hear the word "enterprise". When a system gets big enough and lasts long enough, the

    • I agree, writing large programs in pure C is nuts. Writing large systems in anything that doesn't have automatic garbage collection, is nuts. OTOH other people argue you should only use a strongly typed language for large systems. So, we can't all agree. :)

      Despite the fact that he dislikes Perl, I largely agree with this guy [caltech.edu]. (I don't remember who pointed me to that article, it could easily even have been you (Ovid).)

      Anyway, if you define "system" as something that is really big, then I strongly feel that C
      • Despite the fact that he dislikes Perl, I largely agree with this guy.

        Thanks for the reference to that excellent article, (Scalable computer programming languages) [caltech.edu] by "this guy" (Mike Vanier).

        Given that he dislikes Perl, I noticed a couple of glaring omissions:

        CPAN doesn't even "come close" to Jarballs?

        Java libraries are wonderful, but no mention of CPAN anywhere in the article.

        Julian Morrison sent me this email:

        There's a very important feature you missed, and it's the real explanati

    • C is better for generating Heisenbugs. Which fact alone makes me strongly dislike it for large projects.

      Heisnbugs are trivial bugs that show up in one part of your code, will move around as you recompile for different platforms, change unrelated code, etc, will often disappear for an extended time, and then will pop up when you least expect it.

      The most common cause is a bad pointer, causing a fairly random point in memory to get overwritten. If that point has nothing particularly important, then everythin
  • I've stopped referring to Perl, Python, Ruby, etc, as "scripting" languages and have started referring to them as "agile" languages. The word "scripting" has a pejorative connotation that I don't care for, especially coming from the staticly typed crowd, who mostly consist of Java fuckwits and die hard C/C++ programmers.
  • 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.

    We're re-watching Coupling season one at the moment (the real one, from the BBC), and all of this reminds me of Jane's pronouncement: "

    • Which, in hindsight, disproves Joel’s dictum to Never Rewrite Code.

      No, it doesn’t. Joel wrote about this in one of his recent weblog posts, but I would have said the same thing even before he opined on this precise issue.

      Joel’s dictum is not to forever keep the code you have – it’s to never throw it all away to start from scratch. Couldn’t Mozilla have improved their codebase one module at a time? Did they need to junk the rendering engine and the UI library and the

  • Yeah, and C is *just* a portable assembler language.

    Live with your preconceptions or grow beyond them.