Perl6 should be renamed Perl++

I have been a Perl programmer and advocate for almost 20 years. It has saddened me to see Perl loosing ground among newer generations of programmers to languages such as Python, Ruby, and php. Although those languages have their strong points and interesting features, in my opinion, Perl is still a superior language for most general programming applications for various technical reasons, which I will not go into in this posting. That's the subject of a different religious war.

At the very least, Perl should be holding at least an equal standing in popularity to these other languages.

I think that one of the primary reasons for Perl's declining image is the naming of a completely new language with the same name. I believe that calling it Perl6 has been the most destructive thing that has been done to the Perl language and will continue to be so. Never before has that been done with another programming language that I'm aware of. It puts up a big stone wall in front of Perl and blocks it from ever having another major version increase. That alone does ongoing long term damage to Perl. Couple that with Perl6 going on 17 or 18 years without becoming ready for mainstream, and it creates a public sense that Perl is dying.

Case in point. I recently had a debate with a colleague, who has been a Perl programmer for a number of years, about this very thing. He is looking seriously into changing over to Python for his companies projects. And, surprise, surprise, he cited the 17 year stagnation of Perl as one of key reasons. Like most other people, being that this is the next major release number of Perl, he directly associates Perl6 with Perl in general being stagnant. He thinks he can get employees more easily to take over code in Python because he thinks Perl is not attracting new programmers. New programmers don't tend to be attracted to languages that have the appearance of fading away. In the end, I still don't know if I have convinced him that Perl is alive and well.

C/C++ is the closest example of this scenario. Just like C/C++, Perl and Perl6 are two different languages. Perl6 has more integrated object oriented features along with a host of other enhancements, very similar to C++ and C.

Although any name other than Perl would be better for a new language, Perl++ appears to me to be the logical name choice if Larry Wall wants Perl6 to benefit from the momentum and name recognition of the Perl name without creating all the confusion and making it look like Perl version 5.x is deprecated. I found a couple other past blog comments where this was proposed and it had fairly positive response.

Here is another good blog posting on the subject by Zoffix Znet.

The Hot New Language Named Rakudo

And a followup blog entry about it.

6lang: The Naming Discussion Update

In that discussion, it is mentioned that

Larry opined that we could have other terms by which Perl versions or Perl distributions are marketed as. So that gives us an option to pick an alternative name to be the second name with any "official" standing.

I also feel that this is not a good idea at all. You start having third party distributions marketing different names for the language and you are likely going to kill Perl6 for good. Nobody is going to know what the official language is or which one is standard. And if they get associated in any way with Perl[5] then it will enhance the image even more of Perl being disorganized and ad hock. Businesses are not going to want to use a language that has no organization behind it. And if businesses are not using it then new programmers are not going to waste their time learning it.

Names such as "Rakudo" and "6lang" have been proposed. We should really be careful not to choose an obscure, hard to remember, name or especially a name that is ambiguous to pronounce. 6lang, for example, to be pronounced slang. Please No! Nobody is going to know how to pronounce it and the 6 has no obvious meaning other than to tie it to the current major release version of the language.

Names such as Perl, Python, and Ruby are all great names. Catchy, easy to remember, and easy to pronounce. Again, Perl++ fits the bill.

Now, if the powers that be insist on keeping the name Perl6, then I have an alternative proposal.

Bump the latest release of Perl to version 7.x, and just call it Perl version 7.x, removing the stone wall from in front of Perl version 5. Now you have two languages. Perl version 7.x and Perl6 version whatever. But at the risk of repeating myself, I still think that Perl++ is a much more descriptive name for indicating it's relationship to Perl than Perl6 is.

Since it has been made clear that Perl6 is not the next version of Perl, then it would have actually been more logical to call it Perl2 than Perl6. But I doubt that is going to happen.

Actually, any post number in the name is problematic. Too many projects already do that with their names to distinguish incompatible versions of the project. So people are used to always viewing that as the next major version of the same project. You are never going to overcome that perception with the name Perl6.

5 Comments

This discussion seems to come up every few months. I'm all for calling Perl6 not Perl at all. I don't like Perl++ because it implies a better Perl than Perl5 and its nearly the same problem I have explaining to everyone that Perl isn't dead because Perl6 is replacing it and Perl6 isn't ready for prime time. But whether is Perl++ or something else the conversation is pointless because only a Larry Wall has the gravitas to make it happen and he seems uninclined to do so (and in fact in some interviews I've read it seems like he does think of Perl6 as a Perl5 replacement, but that is not totally clear to me his real thoughts on the matter).

I'm not sure it matters anymore, at this point so much damage to the Perl brand has been caused that its probably not recoverable, at least without a mass effort that so far leadership seem un interested in taking on :(

I absolutely love this idea. It makes it immediately clear that:

  • There are two perl languages (just like C and C++)
  • The ++ language is more modern and has a much richer syntax
  • It does NOT imply that Perl++ is better than Perl (in fact a lot of people will argue that C is superior to C++)

Unlike in C/C++, the new Perl++ language is not a superset of the old Perl so in a way the Perl/Perl++ naming makes things appear better than they are. I do not think this is a problem. (And I would not like the idea of Perl-sharp.)

Now, to say that calling Perl++ Perl6 has been the most destructive thing in the development of Perl5 is preposterous. There has been no significant improvement to Perl5 for many years. Changes introduced after Larry went to work on Perl++ turned out to be utter crap (pseudo hashes, smart match, given when, auto-deferences, etc.). All have now been obsoleted. They added function prototypes a release ago but that is too marked experimental.

I remember checking Tcl site a few years ago - and while you can argue that Tcl is also a moribund language - I was surprised to find out how much progress Tcl had made. It had stackless coroutines, asynchronous channels, proper object system, threads. Perl does not have any of that I do not think it ever will.

I think Perl++ is a great idea, it emphasizes that it's not just a newer version of Perl, any more than C++ is "just a newer version of C". It's an entirely different language in the same broad family as Perl. However, I agree with John that this won't happen without Larry Wall getting on board, and sadly he doesn't seem to agree with this viewpoint.

On Bronstein's comment about whether Perl 6 has been the "most destructive" thing in Perl's history or not, I have to say I side with the OP. First, after the long hiatus, it's great to have regular Perl 5 releases again, showing that it's actively maintained and going places. Second, Perl 5 as a mature language has had just about the right number of changes in recent versions IMO. Sure, some of the changes were introduced as experiments and later removed when the experiment proved unsuccessful; but isn't that the purpose of experiments?:-)

Hopefully, function signatures are here to stay, and soon will be non-experimental. Where I do agree with Bronstein is that if all the community energy spent ("wasted" in my view) on Perl6 had been invested in adding new features to Perl 5, we'd probably have lots more new features by now - as Tcl does. In particular, we could have had function signatures 10-15 years ago!

In coordinating C/C++, the Perl5::Inline module makes perl 5 compatible with perl 6 although CPAN is a bit lost.

Leave a comment

About vstemen

user-pic I've been programming for over 30 years and I use Perl for all kinds of projects.