The Hot New Language Named Rakudo
This article represents my own thoughts on the matter alone and is not an official statement on behalf of the Rakudo team or, perhaps, is not even representative of the majority opinion.
When I came to Perl 6 around its first stable Christmas 2015 release, "The Name Issue" was in hot debate. Put simply: Perl 6 is not a replacement to Perl; Perl 6 is not the "next" Perl; Perl 6 is a very different language to Perl; so why does it still have 'Perl' in its name?
From what I understand, the debate raged on for years prior to my arrival, so the topic always felt taboo to talk about, because it always ended up in a heated discussion, without a solution at end. However, we do need that solution.
The major argument I heard (and often peddled myself) for why Perl 6 had 'Perl' in the name was because of brand recognition. The hypothesis was that fewer people would bother to use an unknown language "Foo" than a recognizable language "Perl". Now, two years later, we can examine whether that hypothesis was true and beneficial and act accordingly.
Fo6.d for Thought
The Perl 6 language—to which I shall refer to as Rakudo language, for the rest of the article—is versioned separately from its implementations and is defined by the specification. The current version is 6.c "Christmas" and the upcoming version is 6.d "Diwali"
As some know, despite slinging a lot of code in my spare time, I earn my bread under the banner of Multi-Media Designer. While one of the "media" I work with is Web and so I do get to write some code once in a while, my office for the past 8-ish years has been located squarely in the Marketing Department, not I.T.
As the Rakudo core team was recently penning down the dates for 6.d release, I got excited to have the opportunity to do some design and marketing for something quite different than products at my job. However, I very quickly hit a roadblock. The name "Perl 6" isn't quite marketable.
Ignoring trolls and people whose knowledge of Perl ends with the line-noise quips, Perl is the Grandfather of Web, the Queen of Backwards Compatibility, and Gluest language of all the Glues. Perl is installed by default on many systems, and if you're worthy enough to wield its arcane magic, it's quite damn performant.
Rakudo language, on the other hand, is none of those things. It's a young and hip teenager who doesn't mind breaking long held status quo. Rakudo is the King of Unicode and Queen of Concurrency. It's a "4th generation" language, and if you take the time to learn its many features, it's quite damn concise.
Trying to market Rakudo language as a "Perl 6" language is like holding a great Poker hand while playing Blackjack—even with a Royal Flush, you still lost the game that's actually being played. The truly distinguishing features of Rakudo don't get any attention, while at the same time people get disappointed when a "Perl" language no longer does things Perl used to do.
So did the hypothesis about Perl brand name recognition hold true? Yes, but Rakudo language has very different strengths than those that brand represents. Which leads to a lot of confusion, disappointment, and annoyance.
As the 6.d language release nears, and with it the ability to make large changes, I think it would benefit us to reflect on the issues of the past two years and improve.
"Just Rename It"
Even if the entire Rakudo community would decide a different name is good, there's a teenie-tiny problem of existing infrastructure. Need documentation? You go to perl6.org, not rakudo.org. Need a live, squishy human to help you out? You go to #perl6 IRC channel, not #rakudo. Need a Rakudo book? Why, then go to perl6book.com and pick any of the books with "Perl 6" in their titles.
This is one of the major things that derailed my thinking on the subject
in the past: people saying "just rename it," when clearly it's no easy task.
Domain names, email addresses, bug trackers, Reddit subreddits, Facebook
groups, Twitter feeds, GitHub orgs, IRC channels, presentations, books, blog
posts, videos, hell, even names of some variables ($*PERL
) and env
vars (PERL6_TEST_DIE_ON_FAIL
) would all need to change for a thorough rename
job.
Not only would all those things need a rename, the old versions in many cases would need to be able to redirect to the new name. "Just renaming" perl6.party website and its contents will take me some effort and already incurred a minor expense for a new domain name. The effort required to do the same everywhere would be monumental and in the end we'd still go to The Perl Conference and get sponsored by grants from The Perl Foundation.
I think the ship for "just renaming" it has sailed a few years before first stable language release. However, we don't have to be at the mercy of all-or-nothing tactics, when there are clear benefits to reap from a name tweak.
Rakudo Perl 6
Rakudo is the name of a mature—and to date, the only one that's usable—implementation of the language. If Wikipedia is to be believed, the name means "The Way of The Camel" or "Paradise."
It's also the name that's ripe for the picking to be the name of the language: those who use the language
already have heard the name, so it's familiar; the compiler's repo
is rakudo/rakudo
, not perl6/rakudo
;
newcomers are told to install "Rakudo Star," not "Perl 6 Star"; and having
an already bikesheded name can cut down on irrelevant
discussions when the need for change itself is controversial.
While it's true that re-using the compiler's name for the language creates an
ambiguity, it can be resolved by using all-lowercase
letters for the compiler and title case for the language—Perl 5 has been doing
that for years. In addition, if the executable were to be renamed
from perl6
to rakudo
, there'd be fewer accidents of running Rakudo scripts
with perl
command, which is currently is actually actively fought against by
the recommendation to put use v6
in all of the programs.
The "Rakudo Perl 6" name for the language was suggested by lizmat++, so I assume there's at least one other core team member who's open to the language name tweak. And I do precicely mean tweak, not change. While change would be more preferable, it stands opposed by existing infrastructure naming and, of course, those who believe Perl 6 is a fine name and should be kept unchanged. So by tweaking the language name to be "Rakudo Perl 6," we get the benefit of marketing a new release of a hot new language "Rakudo 6.d" instead of a new release of same-name-but-totally-not-Perl-5 "Perl 6.d"; we get to keep using "perl6" ticket queue on RT, without raising too many confused eyebrows; we get to publish Rakudo blog posts that don't get knee-jerk reactions form non-Perl users; we get to attend The Perl Conference without feeling we don't belong; we get to mention how awesome Rakudo is to our peers without fearing yet-another pointless "Perl is dead" discussion; we save the trees by not reprinting all of the existing "Perl 6" books"; yet we get to... start anew.
It's The Beginning, Not The End
Humans are funny creatures. We don't like to change our minds, lest we appear to not have a clue. We cling to past decisions and things said because abandoning them is admitting you were wrong. However, looking at the past two years, it's very clear to me the name of "Perl 6" has been detrimental to the language. I'm not afraid to admit I was wrong in defending the "Perl 6" name.
It's an indicator that something's wrong, when you spent days writing an amazing technical post but have anxiety posting it to r/programming because it'll inevitably end up with quips and jokes about Perl being late to the party. It's an indicator that something's wrong, when you're apprehensive joining a tech discussion to mention how easy the task is to do in "Perl 6," because even well-meaning people have a hard time realizing Perl 6 is an entirely new language.
I'm under no delusion that merely changing the name would instantly make everyone love the language. There are still performance problems to tackle. More bugs to fix. More documentation and tests to write. All these things need humans to work on them and humans care about perception. The assumption that many humans will start using Rakudo simply because it's a better product just does not match reality.
It would be beneficial to change the perception of the Rakudo language. Ignoring the problem won't do that. Including boiler plate text about Perl 6 being new language that's totally different from Perl 5 at the start of every conversation won't do it. Tweaking the language name to be unique will. It doesn't have to be a dramatic event, but...
I can't do it alone
Last night I registered rakudo.party and changed my Twitter bio to no longer refer to the language as "Perl." In the coming days, I'll update all mentions of "Perl 6" on rakudo.party to read "Rakudo" or "Rakudo language" where it's ambiguous with the rakudo compiler. My IRC hostmask and module descriptions on GitHub will follow suit. My conversations, Twitter hashtags, Facebook posts... all will refer to Rakudo instead of Perl 6, just as I've been doing in this post.
However, that is about the end of my unilateral control of the whole thing. I can't change docs.perl6.org or the next blog post you'll write, which is why I strongly encourage those who care about The Name Issue and especially those who care about success of the Rakudo language to do the same active language name tweak I'm doing.
Acknowledge that language's full name is "Rakudo Perl 6". Yes, there's a compiler with a similar name, but it's the next best thing after nothing. Shorten the full name of the language to just "Rakudo," to differentiate it from THE Perl; you don't even have to worry about spacing issues if you do! Tell people about Rakudo's unique features, not about how it's trying to catch up to the things Perl 5 does well.
Rakudo has many strengths but they get muted when we call it "Perl 6". Perl is a brand name for a product with different strengths and attempting to pretend Rakudo has the same strengths for the past 2 years proved to be a failed strategy. I believe a name tweak can help these issues and start us on a path with a more solid footing. A path that invites newcomers, not scares them with knee-jerk reactions and fear of using an outmoded product.
I may be wrong about it. I may be the only fucking idiot on the planet with a "#Rakudo" hashtag in their Twitter bio. But... I think I'm right about it, and I hope you'll join me and use the tweaked language name.
-Ofun
Hi
I almost agree with you!
But firstly I'd like to know who's sitting on the domain rakudo.com. I just tried to register it for you. Anyone we know? And I see rakudo.net is a Japanese-language site.
rakudo.org is Rakudo so that's ok.
So, I'd recommend a new name for which we can grab $x.org, $x.net and $x.com. $x = your_homework().
And as for the cost of domain names, I'll pay for 2 years for those 3 with x filled in.
Cheers
Ron
Hang the expense. Make it 4 with $x.info.
Thanks for the offer. I don't know who owns rakudo.org
For an entirely new name, we probably should see what Larry Wall thinks of changing the name, first. "Rakudo Perl 6" is an easy name only because everyone is already using those terms.
Although, I do understand there's pushback against using implementation's name as language name. My hope is we can avoid doing so, but that would need Larry's blessing for it to have any chance of sticking around.
The issue with naming this new language Perl6 is two fold:
1) The vast majority of people in IT that are outside the Perl community see the slow development of Perl6 as proof the language is a dead end. I can't tell you how many times I've had to explain to a new boss (typically some ruby or python guy that got promoted to be in charge of a Perl team) the difference between P5 and P6 and how P5 is still alive etc. There is little doubt in my mind that P6 development and branding has hurt working P5 developers who often have to deal with anti Perl sentiment on the job. I realize that a lot of people working on P6 and in leadership positions in P5 are not exposed to this issue on the job to the degree that many of us are, and as a result lack sympathy or urgency around the problem, but it definitely exists. In 20+ years as a Perl developer I've only had one job where I didn't have to explain or defend Perl as a good choice for the project. It seems to me this is the #1 problem the community has and anything we do that makes it worse or that steals available resources from working on is a negative. So for me, calling this language Perl anything has been a big negative, and I'd prefer to see greater separation between the communities so that Perl5 can focus on our serious branding and advocacy issues.
2) Calling it Perl6 then steals the namespace from Perl5 and as a result we are stuck with incrementing the the major various (5.26, 5.28, etc.) Again its mostly a branding issue. It gives the impression to the vast majority of people outside the community that P6 is intended as the next version of Perl. Indeed back around 2000 when the project was first announced it was seen as a replacement for Perl5 (in the way that Perl5 replaced Perl4). However due to the extended development time Perl5 developers who had jobs and so forth were forced to restart Perl5 development. Yet the naming convention continues to vex and confuse.
I'd say at this point only Mr Wall could do something about this but he seems to not be inclined. I wish he'd at least acknowledge the trouble caused to working Perl5 developers over this. That would be a good start toward reconciliation. FWIW I think the Perl6 community would be well served to abandon the "Perl" branding which is damaged.
It seems clear that there is no intention on the part of Larry Wall to rename Perl 6, no matter what benefits that renaming might have for both the Perl 5 and Perl 6 communities.
Perhaps, rather than doing nothing, it would be better to rename Perl 5. Perl 5.26 could be the last version released by the Perl 5 Porters, and version 5.28 could be called something else. ("Nacre," perhaps.) At this point, my view is that it is largely the confusion around Perl 6 that has caused the problems with the Perl brand, so perhaps it's appropriate for Perl 6 to be stuck with it.
Funny enough mst floated a proposal around that that was a great idea but nobody got excited by it enough (or the leadership didn't care about it, I guess its not a problem form them)
http://shadow.cat/blog/matt-s-trout/pumpkin-perl-breakdown/
Just search for 'mst pumpkin perl' and you'll find a bunch of articles around the idea. FWIW I'm still 100% behind that idea as the best compromise to date.
I appreciated the effort on the part of mst to push the idea to rename Perl 5 as a compromise we have more control over. But do we really? Perl 5 has over 20 years of mindshare in the programming world, in system administration, in regex libraries, and so on. In the mind of the community at large, Perl 5 is Perl.
Additionally, while renaming Perl 5 does potentially mitigate confusion in indicating that Perl 5 has no intention of being replaced, renaming Perl 5 wouldn't solve one of the primary issues discussed in this blog post: that people turn away from Perl 6 when it doesn't act like Perl, or because of their feelings associated with the name, instead of being receptive to what it does bring to the table.
Excellent idea zoffix.
Because Perl 6 contains the word 'Perl', most dev simply refuse to look at it due to association with Perl 5. It is not cool or modern.
Rakudo sounds good as well, which should help its marketing. If the logo could change as well, it might even be appealing to under ~40yo devs.
The Rakudo Programming Language sounds great.
There is no doubt the "Wall" in front of Perl 5 should be removed so it can proceed.
Also it will help the new language to move forward.
My two points:
1) For Perl
Remember Java 1.5 was marketed as Java 5 and it was easier to proceed from there on.
Similary Perl 6 can be skipped for Perl.
Perl has been in Perl 5 for very long time. The next major version should be released as Perl 7 which will give a fresh beginning and surely every perl programmer will leap in joy. (Perl 6 can be skipped similar to Java which skipped 3 and 4)
Language Name: Perl
What is the latest and greatest version? 7
2) For Rakudo Perl
When facebook was registered it was "theFacebook".
Why "the"?
It changed to "Facebook" and it was neater.
Similarly "Rakudo Perl 6".
Why 6?
Simply "Rakudo Perl"
Name of Language : Rakudo Perl
Name of Compiler : Rakudo
and all references internally in language, documentation and compiler should be like Rakudo is the language.
Only title of books and conferences can have "Rakudo Perl" so it will have a link with Perl name.
Also just try saying...
What language u use?
I use Perl.
What about you?
Oh. I use Rakudo Perl.
Absolutely no confusion and both will grow.