On the Semantic Naming of Things

Let’s say I opened a restaurant and people liked it.

Then I add an item to the menu called “Fish and Chips”. My restaurant’s version would serve a smoked salmon with a light butter/caper topping and fresh potato chips (crisps for those of you across the pond). I could certainly do it … but people would be confused.

No amount of explaining to each patron would prevent the next patron from being confused by the name. Even if I explained on several pieces of my printed materials and told customers if they asked, people would still certainly miss it, because they know what “Fish and Chips” means.

If I then claimed that the name wasn’t confusing because I had explained the differences several times, I would be wrong. It still is confusing. Claiming it isn’t doesn’t make it so.


I don’t think anyone’s arguing the name isn’t confusing :) I think the argument is changing it is either pointless or impossible for historical reasons :)

First things first. Food naming in actual restaurants has in my experience been as bad as what you describe and worse. The “chili dog” I was once served in a UK restaurant… there are no words. Horrible.

If I were to develop a project using Rakudo on MoarVM, I could describe it using the constituent parts, or just say “Perl 6”. If I’m asked if Perl 6 anything like the previous versions of Perl, I can say “not really, Perl 6 is a full rewrite with a different architecture” and elaborate as desired. If I’m not speaking with someone who has an entrenched attitude, then it’s possible we’d have a mutually interesting conversation. I do talk to such people in real life. Honestly.

Your blog posting is pure FUD. Neither did you understand Zoffix’s response since “impossible for historical reasons” does mean “NOW impossible”. The reasons are in the past not the possibility of change.

As for your food analogy I’ve seen American “Fish and Chips” (in the sense of English crisps) on sale but much more rarely than the American fries version. Names are confusing!

Do you think it was misleading to call Perl 5 “Perl” since it was quite different to Perl 1?

And the major issue is.. the name!?!

Just check the comments when Perl 5 arrived to the Perl 4 land.

@peco: Was perl4 supposed to live on after perl 5 was launched? Because if you imply that perl6 is going to replace perl5, well, that’s quite a bold thought.

I’m glad you acknowledge at least part of that, Joel :) Maybe now we can start using a different, more useful, metaphors. For example, if you were always driving to work on a Toyota and picking me up on the way, I could say Joel is going to give me a ride in their car. Say, this year you also bought a Nissan. Now, if I refer to Joel’s car, the statement is inherently ambiguous, since there are two of them. They are much similar in the way they look and function. They both belong to Joel.

I may like the Nissan more than Toyota. And were I to say “I love Joel’s new car” and someone would ask whether it was a Toyota, you’d surely agree there would be no issues with my clarifying that it’s actually the Nissan.

Same with Perl 5 and Perl 6. They are similar—even if only in spirit. They were both created by Larry Wall. And they are both referred to as “Perl”, even if the term is now inherently ambiguous and requires clarification when it matters.

Well, I find myself pretty much agreeing with everyone here I guess :) My feeling is that like 10 years ago give or take, once we realized Perl6 was not replacing Perl5 (in the way that Perl5 ‘replaced’ Perl4) and that developing Perl6 was going to take a long time, it would have been better if we’d called it something else, because the truth is this is confusing to pretty much everyone I know outside of the Perl community. I feel it hurt Perl5 although its hard to totally quantify that, and I am very disappointed that it seems a lot of people in Perl6 seem to not care. However as a wise man said, “We are here and it is now. The way I see it is, after that, everything tends towards guesswork.” (Terry Pratchett, Small Gods).

There’s been a number of decent solutions proposed over the years, (mst I think had the best compromise to rename Perl5 ‘Pumpkin Perl’) but none of them gained traction. It would have taken a Larry Wall statement to solve it, but he seems regrettable to not have much opinion on it, although I’ve honestly stopped following news about him for a long time so I could be totally in error. A strong statement of some sort from him could help at least move us toward healing. Or a town hall or something public perhaps, people could get all the animus out in one go and try to move on.

FWIW What I usually say is that I work programming Perl5 version 22, that is to say I don’t say “Perl” I say “Perl5” is the language name. And I say I dabble now in Perl6 version $date, and hope to be able to say its something I’d willing use in a production aimed application something in the next year or so (usually I compare it to early versions of Moose, which had a lot of value but had terrible performance, which was eventually mitigated). However they are separate languages loosely connected by Larry Wall as the founder and out of long term respect the Perl5 community invites Perl6 fans to join us in our conferences, on our blogs, and to share some infrastructure that Perl6 would really need to help it grow. Also many of us working in Perl5 on certain types of applications are very interested in some of the advanced features of Perl6 that probably can never be in Perl5 core such as async, threading, JVM support, etc.

Unfortunately that’s a long statement. It would be better if we could shorten it but its really the most honest thing I can think of. I hope we can all learn to live together under the “Perl” branding, but its going to take some time to work out all the strong feelings.

Both Lisp and Fortran names date from the 1950s and are still used today despite having changed radically since their origin. Why should Perl be any different?

Because unlike some other languages, both Perl 5 and Perl 6 intend to exist side-by-side, both being actively developed, if in different directions.

Which languages are you talking about? Both Lisp and Fortran have actively developed multiple versions.

I briefly looked at Fortran’s wiki and didn’t see the variants section right away, which, I think corroborates the OP’s point of view about confusion. But even after reading the Variants section, it doesn’t seem to say that, say Fortran 6 is an entirely new and different language compared to Fortran 5, which is certainly the case with Perl 6/Perl 5.


Regarding “There’s been a number of decent solutions proposed over the years, (mst I think had the best compromise to rename Perl5 ‘Pumpkin Perl’) but none of them gained traction.”

I thank the atom gods that this never happened. I’ll explain P5 vs P6 any day to a management team, but I would not ever want to explain how squash became involved. Perl developers have enough of a reputation for weirdness as it is, and delving into the hoary old ‘pumpking’ business - forget it. :-)

Zoffix, regarding Fortran et al:

I’d say Perl is a bit unusual in having, from version 1-5, a sort of Highlander mentality. “There can be only one!” This happened despite the fact that its code is freely available. Various people have forked it over the years up until the present day (hello cperl and rperl) but I can’t think of any fork which has been particularly successful in a wider sense.

Fortran, Lisp, C, Pascal, etc. have all had multiple versions being used personally, academically & professionally. Turbo C wasn’t the same as the original cc, gcc or Sun’s cc, for instance. Multiple versions existed long before there was an ANSI standard for it.

Leave a comment

About Joel Berger

user-pic As I delve into the deeper Perl magic I like to share what I can.