In short: I am against renaming.
The longer story
Once in a while, another round of the non-ending battle starts, and this time, unfortunately, I was the one who allowed to start it from a public stage. There were a lot of noise around the keynote speakers of PerlCon 2019 in Riga, and in the end, two speakers cancelled their participation, and we as the organisers replaced them with other prominent members. Actually, initially we were going to have three Perl 6 keynotes, and in the end it became more balanced: two Perl 6 and one Perl 5 talk.
I was very happy about the presence and the content of the Perl 5 talk, as well as about the Perl 6 Concurrency one. In the third keynote, actually, it was proposed to rename the language from Perl 6 to Camelia.
The same day, an issue in the problem-solving repository was open. Soon after that, a pull request was created to replace all mentions of Perl 6 (including the filename extensions and methods like .perl
) to Raku.
Why Raku? Because the discussion led to the idea that Raku is better then Camelia. (Raku is the name that was proposed a year ago as an alias of Perl 6).
A bit of a history
Let me express what I feel about this all movement. I am following the Perl 6 development for many years, starting from its very beginning. Years ago, I was surprised how easily the development teams change their internal mechanisms. If you can recall that, there were IMC (intermediate code/compiler), PASM (Parrot assembler), PBC (Parrot bytecode) and a lot of other abbreviations which you can only understand if you follow the development of the language and is subscribed to different mailing lists of different development teams.
Originally, it was thought that Perl 6 compiler will use a virtual machine, and Parrot was the first attempt, which failed due to internal communication issues. Later, an attempt to switch to other virtual machines was made, including the JVM. As it was thought that Parrot virtual machine dit not serve the needs of Perl 6 and was instead aiming to supporting other languages, the MoarVM project appeared.
While the Perl 6 language is a beautiful language, the language design is quite complicated to be implemented, which resulted in the fact that we now have only one working compiler, Rakudo. It became very stable and reliable and can even work in production in a lot of applications. Even in those applications that require high performance. Rakudo is slow at compiling, but MoarVM is fast at executing.
Who is the owner of Perl 6
The Perl programming language is created by Larry Wall and it was released in 1987. Since then, it turned to its fifth version, which is still in active development (let me refer you to the Day 1 keynote of PerlCon 2019).
The Perl 6 programming language was originally thought as a continuation of the same Perl language, with a note that it should be a community rewrite. Does that mean that Larry is not the author of Perl 6 any more? No. He still is.
What is proposed in the renaming issue is to rename the language, and to vote on that within the current development team. The development team is working on both Rakudo compiler and the language specification, so it is a valid institute to raise discussion about the language. But. But there is one strong but: Larry is still the author of the language, and it’s his right to keep or break the language name.
In the renaming issue, it was only once mentioned that it is possible to rename the fork (read: implementation) and keep the language name unmodified. To support that, I am referring you to Larry’s words in his keynote given in 2017 at the Perl Conference in Amsterdam. He said there that using different names is fine when it is done for marketing purposes.
Up to date, we have no direct statement by the author of the language that he wants or agrees to rename it.
Do I need Perl 6?
I have been programming for the internet since 1999 and while my native language is C++, I am considering myself as a Perl programmer.
When Perl 6 was announced, I was among the first who wanted to start using that. I created the first web site in the world that was running on Perl 6 (give me a link if you disagree). The site was running on the very first implementation of Perl 6 written in C (even before Parrot) and was using pre-compiled byte code to serve pages.
Since that time, I changed a lot of places of work, being a developer, an CTO, a business owner and a bare life-lover. Today, I am much less connected with writing code (whatever code, not only Perl), and my activities shifted to other fields.
But still, Perl 6 for me is a beautiful language with a great potential. And it is very interesting and pleasant to blog about it, to help organising events, and to promote the language in different ways. So, despite I am not very much able to use it in my practice, I am willing the language to become widespread.
Back and forth
Earlier this year, Perl 6 entered the TIOBE index. Yes, somewhere at the end of the list and not very stable, but it was obvious that we can make its positions stronger if we make some simple SEO correction and include the Perl 6 programming phrase into our publications, as this is how TIOBE ranks the languages.
What is proposed now, effectively cancels all efforts of many people who was working during the recent years to make Perl 6 more popular and to demonstrate how great it is.
Once again, the Perl 6 path is making a sharp turn and loops itself. Intermediate language, Parrot assembler, Parrot bytecode, Java virtual machine, MoarVM, Perl 6, Raku, Camelia. Hey, what’s up? It is an endless game of naming and tool changes or a way to make the language popular? What currently happens, is another round of an idea that renaming can help. This is like inventing a name and buying a domain name for a start-up that has no chances to work as it mostly focuses on its name rather than being the best among the others.
What is behind the scene
Unfortunately, and what is mostly sad for me personally, I have seen a bit more than only public discussions that you can see too.
Conference attendance cancellations are not caused only by those reasons that were publicly announced. There are other things happened under the hood. People are being bullied, words are misinterpreted, and I have no wish to make that public. I can only hope that the current heroes will understand how badly they play.
Titus 3:10-11. 10 Warn a divisive person once, and then warn them a second time. After that, have nothing to do with them. 11 You may be sure that such people are warped and sinful; they are self-condemned.
It is not correct at this point to demand, to vote, and to approve to rename the language.
On a separate line, I want to thank all the developers that made Perl 6 possible. But I want to distinguish between the desire to constantly working on the process flow rather than making the product.
A simple solution
The best solution is to allow the Perl compiler (interpreter, translator, whatever) to accept both Perl 5 and Perl 6 code. This was, actually, the idea of the first Perl 6 compiler projects. It was supposed that the compiler will be able to determine the language even without a use vX
instruction, but by just looking at the code. For example, does the file start with class
? It is a Perl 6 program.
As the Perl 5 and Perl 6 languages became much more separated in their syntax, it is a very simple to determine the language by reading a few lines of code. This is not an impossible task for a computer program, isn’t it? Let the common compiler decide which backend language to use at this particular case. /usr/bin/perl
stays in its place and does the job.
It’s just occurred to me that if this change goes through, I won’t be a Perl programmer anymore. I use Perl 6 all the time, but I stopped writing new Perl 5 scripts a decade ago.
The change just feels weird and stupid and numbing, like a giant self-inflicted wound that cannot be stopped.
I you think that feels weird: I’m working for a company that has “Perl” in its name. Every time I walk to the kitchen, I pass the largest library of Perl books in the world. I have worked with 2 startups in my career that were able to grow because of Perl, and which have made me a lot of money in the end. I have spent more than 6 years of my life working more or less full-time on Perl 6, reporting on Perl 6, promoting Perl 6 and sponsoring Perl 6.
People who have talked to me in person about this, know how much this affects me. I just hope this will cauterise this self-inflicted wound. And yes, cauterising is painful.
I’d like to react to a few points:
> Up to date, we have no direct statement by the author of the language that he wants or agrees to rename it.
The **absence** of Larry from any discussion about the name, and generally being removed from Perl 6 developments (saying that Perl 6 “is getting useful” at TCPiP I found very telling in that respect, if not damaging to Perl 6 and showing disregard to the developers and the people who are actually using Perl 6 in production), is what led me to open the issue, after several **months** of soul-searching. Still, should Larry come out to say that he is against renaming Perl 6, I *will* honour that decision. But that will also have consequences.
> What is proposed now, effectively cancels all efforts of many people who was working during the recent years to make Perl 6 more popular and to demonstrate how great it is.
This is true, but only to an extent. People who’ve gotten to know Perl 6 and like it, will mostly continue to use it whatever the name is. On the other hand, people who did not even want to look at “Perl 6” because of “Perl” in its name, may now have a look at the language after all. Yes, many people are like that.
> Let the common compiler decide which backend language to use at this particular case. /usr/bin/perl stays in its place and does the job.
I would welcome such a common compiler. Renaming “Perl 6” to “Raku” would **not** inhibit such functionality: it would just need to call the right executor using a different name. Surely, that is not an impossible task for a computer program? However, getting p5p to agree to this, appears unlikely. Perhaps Reini Urban’s [cperl](https://github.com/perl11/cperl) could add such functionality to their version of Perl.
What about PerlyGate, PerlySix or just Perly?
The name is not up for discussion. The only discussion is on whether or not to rename to “Raku`.
How about ditching the rename, then ditching the ‘Raku’ alias in favour of an alias ‘6’, and then use the alias widely (as in Perl’s “6” programming language is exquisite) , whilst retaining ‘Perl 6’ as the official name. That way none of the history, web prescence, etc. is lost, and we informally have a language named by a single integer, how cool would that be 🙂
I use Perl 5, and close to switching to Perl 6, given how beautiful it seems. Perl 6 isn’t fully backward compatible, but it seems that Perl 5 code should be able to run on Perl 6 without a major rewrite. Renaming the language can add confusion. I am in favor of having the Perl 6 compiler accept Perl 5 code through various mechanisms, even as little as noting that a certain file/section has Perl 5 code.
Just like any major transformative evolution, I am confident that Perl 6 will be very loved as it becomes more fully baked. Keep up the amazing work with this language! Thanks.
I should add that there is a large amount of Perl 5 code in the world, including serious commercial applications. If you rename Perl 6, it will create an even greater mental block to upgrading. As Perl 6 resolves its minor issues (mostly limited CPAN libraries, slow performance in some specific cases), I expect every Perl 5 project in the world to ultimately upgrade to Perl 6 (unless it gets retired at some point, or gets only minimal maintenance), just like the upgrades from Perl 4 to 5, and so on. I will explain why: a fully baked Perl 6 is superior to Perl 5 in every respect. There is no reason to stick with an older version, when you have a newer, much more powerful, version (other than human power). I hope that this comment can help change the tone in the world, so people would see Perl 6 as a more obvious next step over time. Feel free to correct me if I misunderstood Perl 6.
I am an occasional contributor, proud owner of à a camelia, who loves the Perl 6 language and the people. Too bad I was unable to come to conferences to see them these last few years. Perl 5 community has become a cesspool rotting from its mean and dictatorial current head. I understand the name change was an attempt to appease the discontent of the Perl 5 people. That should be an occasion to sail away as far as possible from the Perl 5 crowd and try to keep the original benign spirit alive. I trust the Perl 6 people, or, should I say, the raku people.
Larry has approved: https://github.com/perl6/problem-solving/pull/89#pullrequestreview-300789072