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.