Is Perl 6 Being Renamed?
By now, many of you have seen the Perl 6 Github issue "Perl" in the name "Perl 6" is confusing and irritating. The issue suggested renaming Perl 6. While some may think that the name of the issue is trolling, or offensive, the actual issue was created by Elizabeth (Liz) Mattijsen, one of the core Perl 6 developers, a long-time Perl 5 developer, and with her spouse, Wendy, has long been an enthusiastic support of Perl 5/6. There is no trolling here. There is a lot of deep thought, careful discussion, and a genuine desire to find a way to bypass some deeply divisive issues in the Perl community.
While the proposed name was "camelia", Damian Conway made a strong argument in favor of "raku" and it appears the community is leaning towards this name for various reasons.
This post is my attempt to summarize what's going on for those who have missed it. Any errors are, of course, Damian's. (just kidding!)
What follows isn't about facts. It's about opinions. If someone feels that X is awesome, it doesn't matter if you disagree. That's still their opinion. Further, you can try to change their mind, but be aware that when someone strongly disagrees with you, you usually want to start discussion from the points you can agree on and then slowly move to the points on which you disagree. However, that's not been the story of Perl 5/6. People disagree and immediately jump to disagreements rather than trying to find common ground.
The far, far too terse backstory: the Perl 6 community seems to be split between those who view Perl 6 as a sister language to Perl 5 and those who view Perl 6 as a successor to Perl 5.
The Perl 5 community, meanwhile, is split between "f*ck yeah" and "f*ck you".
To say that this issue has been bitterly divisive would be an understatement.
When Perl 6 was announced, it was seen the way that Perl 2, Perl 3, Perl 4, and Perl 5 were seen: replacements for "$VERSION - 1". Over time, it became clear that though Perl 6 was in the same family as Perl 5, a straightforward migration path was unlikely. One only needs to look at the problems with Python 2 and Python 3 and the upgrade obstacles with their minor syntactic differences to understand that an upgrade from Perl 5 to Perl 6 isn't trivial.
It was, if I'm not mistaken (if I am, remember that it's Damian's fault 😃), that Carl Mäsak, is the person who first suggested that Perl 6 be considered a sister language to Perl 5 in the way that C++ might be a sister language to C (though the upgrade path on the latter is probably easier). But that didn't satisfy some people. In fact, there were/are still people in the Perl 6 community who view Perl 6 as the successor language. To many people in the Perl 5 community, this says "Perl 5 is dead; wait for Perl 6".
Not only have many Perl 5 developers been offended by effectively being told by some Perl 6 developers that their language is dead or dying, but it had real-world financial consequences. I can't tell you how many times I've talked to potential clients who've told me "yeah, our Perl 5 codebase is old and we want to upgrade, but we have to wait for the next version (Perl 6) because any upgrade will be throwing money away."
And they've been waiting two decades. Many of them have stopped waiting and abandoned Perl.
The BBC, the world's largest broadcaster, had Perl everywhere. They decided to
ditch it. MongoDB claims that their clients aren't developing any new
projects in
Perl,
so they're ditching Perl 5 support. Other companies are continuing this trend
and this is, as potential clients have told me, because they're tired of
waiting for Perl 6. They think Perl 6 is the successor to Perl 5 and given
the name, it makes perfect sense. Combine that with the negative press about
Perl 5 and you get into "nobody got fired for buying IBM" territory, but
s/Perl/$other_language/g
.
Also (I can't remember if this was said publicly or not), but there are those who've suggested Perl 6 solutions and been rejected out of hand because "Perl".
Liz summed it up succinctly as follows:
Perl 6 was initially conceived to be the next version of Perl. It took way too long to mature to an initial release. Meanwhile, people interested in taking Perl 5 along, took back the reigns and continued developing Perl 5.
Having two programming languages that are sufficiently different to not be source compatible, but only differ in what many perceive to be a version number, is hurting the image of both Perl 5 and Perl 6 in the world. Since the word "Perl" is still perceived as "Perl 5" in the world, it only seems fair that "Perl 6" changes its name.
Since Larry has indicated, in his video message to the participants of PerlCon 2019 in Riga, that the two sister languages are now old and wise enough to take care of themselves, such a name change would no longer require the approval of the BDFL.
This is the video to which she refers:
Out of the 143 emoji responses to her initial post, 134 were clearly supportive with only 5 being unsupportive (4 being neutral).
What's worse is that Perl 6 is often tainted by the name "Perl". Routinely I see in numerous online discussions that people refuse to even consider Perl 6 because they hate Perl. Or there are younger people who think of Perl as "their grandfather's language" (in much the same way people in my generation view COBOL). So there are people in the Perl 6 community who want to change the name simply to avoid an unjustified negative perception of the language. In fact, it's been suggested that the rename of Perl 6 might allow more people to come into the language by side-stepping this issue.
So yeah, there's bitterness and the Perl community not only needs to heal, but we need to find a way forward for both languages. The suggestion to change the name of Perl 6 to "raku" is effectively designed to make this happen. Perl 5 can figure out how to get beyond the branding issue that's been plaguing it and Perl 6 can do the same thing.
Perl 6 performance has now gotten to the point where it's often comparable to Perl 5 or surpasses it. It still needs some work in this area, but the work is clear, the goals are straightforward, and Perl 6 is going to easily oustrip Perl 5 in terms of performance. If the Perl 6 community wants to rename, it's perhaps the perfect time to do so. It doesn't look like a bad choice if performance is a primary concern.
But all of this brings me to the most important point.
We're in a bubble. If you're reading this, you're probably part of the Perl commmunity. Most of what I've said above isn't news to you. But who's outside the community?
People who sign contracts. People who decide what their next project will be built in. People who decide if they're going to rebuild their legacy Perl 5 system in Perl 5 or a language they don't have to justify to their bosses.
In short, for many people the debate comes down to whether or not they have a financial future in working with a language they love. But they don't get to make that decision; people who control the purse strings do. Trademark law often deals with the concept of confusing similarity because the market can easily get confused when two names are so very similar. And as any competent salesperson can tell you, when your customer is confused, they don't buy.
So that's where we are. We have a very confusing issue which, it appears, that much of the Perl 6 community agrees needs to be sorted. Much of the Perl 5 community appears to feel the same way.
None of this should be intended as a critique of what's gone on in the past because, frankly, I don't think anyone expected that this confusion would drag out for two decades. The various shifts we've made over time (from successor, to sister language, to creating an alias for the language), have led to the point we're at now.
As for myself: I would definitely program in Perl 6 if I could make a living at it. Right now that's not possible, so I'm still developing in Perl 5. I think Perl 6 corrects many core issues with Perl 5 (powerful OO, gradual typing, working concurrency, robust signatures, a cleaner syntax, etc.), but I also love the quirks of Perl 5. Sue me.
So let me end with a quote from Neo from the Matrix:
I know you're out there. I can feel you now. I know that you're afraid... you're afraid of us. You're afraid of change. I don't know the future. I didn't come here to tell you how this is going to end. I came here to tell you how it's going to begin. I'm going to hang up this phone, and then I'm going to show these people what you don't want them to see. I'm going to show them a world without you. A world without rules and controls, without borders or boundaries. A world where anything is possible. Where we go from there is a choice I leave to you.
Update: The above quote from the Matrix was intended solely to be vaguely humorous, vaguely relevant, and not at all serious. However, as my 8-year old daughter is quick to remind me: "your jokes aren't funny, papa." As with my daughter, please take it as a joke that lay there and twitched (though I suspect she wouldn't phrase things quite the same way).
f*ck yeah
Long but good read. Thanks @Ovid
Agree, I've met someone (of younger age) who hates perl, because it's perl. The sigils and all! I am new to perl 6 and I am in awe with its performance and effort to clean up the syntax with OO style.
Long but good read. Thanks @Ovid
Agree, I've met someone (of younger age) who hates perl, because it's perl. The sigils and all! I am new to perl 6 and I am in awe with its performance and effort to clean up the syntax with OO style.
A strength of perl5 has been its gradual evolution, with care to break things slowly, and CPAN providing the Lab and democracy for new ideas to become popular.
The evolution of Moose then Moo is a good example.
It's a good thing that people can scratch an itch, throw something up on CPAN, and it gradually become popular (or not). In contrast to languages with very rigid control over their evolution (Go, Java, etc)
Coming back to my point...
Perl 6, I think, breaks dramatically from this key strength. It may too evolve in such a way, but with such a gap between the too languages, it seems like a very sensible idea to rebrand perl 6 to something. I have no stake at all in it, but merely offer the advise as to ensure its an "available" name in terms of other projects, trademarks, copyrights, prior art, domain names, seo etc.
Why not call it Perl++?
As a long time Perl4/5 hacker, I have gone from more customers than I can satisfy "fine" with Perl solutions, to 1. No one will entertain Perl-based solutions in part because of perception that Perl 6 is the upgrade-to-wait for; but mostly because while Larry et. al. are having fun being philosophical and asking "What is Perl 6?" business has too evolve, and languages have to evolve, and others have done that. Go's dep model is distributed CPAN. You can run Go as source or compile it. Go handles modern hardware and scales like a dream.
I miss Perl, but I need to eat. Perl 6 had a window to "modernize Perl", but it shut a while ago, and will be relegated to an academic project. What is Perl 6?
They should call the new language Swine, because Perl's before Swine ;P
Did you mean to write, “not in the same family”? If it’s in the same family, I’d think this would have been obvious from the beginning.
Chris: thanks for pointing that out. I've fixed the sentence:
As a former Perl dev, I see this as a lame attempt at keeping Perl relevant.
I had the same idea with "Perl++" some years ago, and i was not the only one. This is a perfect fit to describe the relation of Perl-5 and Perl-6, which is something similar as C and C++. As Perl-5 is a good rapid-prototyping tool for C, Perl++ could be a good rapid-prototyping tool for modern C++ with its object-orientation. I hope, this solution wins one day ...
Christian: you may be happy to know that I've been working on a solution to this. No idea if it will fly, though.
Further to my prior comment.
If things remain as they are, nothing will change. The downward decline will continue.
If perl6 is renamed, and perl5 "officially" has its own future. Things might change.
Of course there are many other factors, but the choice seems binary and the "do nothing" option seems to have a certain outcome.
This is a very positive discussion for the Perl community. Bravo!
now pray it's not too late for both Perl and Raku (Perl6). cause it took too long and the race had long started. too many languages compete already.
If Perl 6 is incompatible with Perl 5, what's the need for it, at all, beyond Python, Ruby, and the sundry new languages available from Google and Microsoft?
Since, best case, this is creates two Perls, why not call it Plerl?
I too have supported perl++.
But I actually do like the name 'swine' suggested by Keira. Or even better - call it 'pearl' and call the new perl6-cpan 'swine'. That would at least give the language some publicity.
It is unfortunate but perl has acquired a stigma - but this is indicative of how iconoclasm in general is being steamrolled by consensus as part of an unfortunate homogentrification of everything.
In terms of names - what about '!perl' or simply 'Not'. :)
I think "Perl++" is a really bad idea: poor differentiation between "Perl" and "Perl++" from an SEO/TIOBE/Google perspective, and people will just end up writing Perl/Perl++, lumping them together in a way that the renaming of Perl6 is trying to avoid.
I'd suggest renaming Perl 6 to Simon, after Simon Cozens.
There is nothing wrong with the name 'Perl' - the fact that some hate it is no reason whatsoever to change it. A name is ultimately WHAT YOU MAKE IT, although it is true that some names sound way cooler than others. I have the greatest respect for Damian, but "rakudo" always sounded hokey to me :/
To change the name from 'Perl 6' would not only belie its origin and insinuate that there is indeed something wrong with being a 'Perl'.
Its interesting that python or ruby don't get this "it's so old" crap. Language haters gonna hate, it is in their semantics ;)
To send a clear message to the world, it may be better to simultaneously rename Perl6 and move Perl5 to a next major version (Perl 7 ?).
I think this would send several messages to the outside world:
Thoughts ?
I also think that it is a good idea to rename Perl 6 to something that cannot be confused with "Perl" and - at the same time! - rename Perl 5 to Perl 7, as ddumont suggested.
If Perl 5 doesn't want to go to 5.70, 5.99, 5.102 or whatever, it has to adopt a new major version number at some point, and later it would just be confusing.
I think the renaming is long overdue. I hope it's for the good.
As for the new name I don't particularly like Raku. For a Brazilian Portuguese speaker it sounds harsh. But I think it's mostly about having time to get used to it.
Some time ago I thought that "Gerl" would be a nice name for Perl 6:
On the other hand, the new name should probably be very different from Perl in order to avoid perpetuating the confusion. Raku fits this bill very well.
So be it.
“joke that laid there”
What did it lay? An egg, presumably?
I think that you mean ‘lay’ (pp of ‘lie’).
"Perla" ⒫
Shenanigans: thanks, fixed! :)
In general, I think the "rename Perl 6 to Raku / rename perl 5 as perl 7" is a good solution, but I would suggest that the Perl 5 -> Perl 7 bump should happen only when there is at least something notable to include in it that would otherwise justfy the change. (Native OO system, non-experimental signatures with named parameters, something like that.)
I mean, the big user-visible improvement in Perl 5.30 was "The upper limit 'n' specifiable in a regular expression quantifier of the form '{m,n}' has been doubled to 65534", which was pretty underwhelming. And so far, the most notable change in the dev releases is that "vec" is not allowed on code points above 0xFF. I'm sure these are good and valuable changes, and yet at the same time, it's not exactly what I'd want to see in a "What's new in Perl 7" document.
why bump Perl 5 to 7 ?
Bump it to the minor number, same as Java, Emacs and others did.
I propose 'Qerl', arter p come q. And it is a Nice name.
In reply to Aaron
While I agree, I think Perl5 long ago earned bumps to 7 and 8, maybe even 9.
This should be a no-brainer. This has been experimental since 5.20 (I think).
Perl5 has a native OO system. What it lacks is the trappings of a class system. A big reason for that is lack of agreement on those trappings should be. So we have Moose, Mouse, Moo, Class::Tiny, Class::Struct and many more. None of which would work without Perl5's underlying OO system.
I don't want to break any of these. Still, a "native" class system could be provided. (I have ideas, but not disccusing here.)