A two-language community sharing one name was causing confusion. This post laid out a sub-brand plan in 2018, gathered name suggestions from the community, and helped move Perl 6 forward to its own identity.
Update — October 2019. Perl 6 was officially renamed to Raku. Larry Wall chose raku from the suggestions gathered below. The sub-brand approach worked. Perl 5's own sub-brand discussion is captured at the end of this page.
Good brands are honest, clear, and make room for growth.
The Apple brand grew from referring to one early-80s computer to a portfolio of products: Watch, iPhone, iPad. Apple uses distinctive sub-brands under the parent. The iPad is strongly associated with Apple. The iPad and iPhone are associated with each other. All these associations co-exist happily — marketers stay clear in their messaging, lawyers stay clear in what they're protecting, customers stay clear in what they buy and search for.
The same pattern works in open source. Apache used to mean a popular web server. Today it's a parent trademark protecting the “Apache Way” and a thriving ecosystem of subprojects: Cassandra, Hadoop, Hive, Ignite. The Apache Foundation's sub-branding guidelines encourage each subproject to have its own distinctive identity. Apache's brands and ecosystem are flourishing as a result.
The Perl brand had outgrown its original use as the name of one language. Perl 5 and Perl 6 were two distinct dialects. They shared the Perl spirit, but the languages were genuinely different — and separating them by a version number alone did a disservice to both. Distinctive sub-brand names would mean honesty, clarity, and no collisions on the command line.
The Perl Foundation already protects the Perl® trademark. The next step was to take inspiration from Apache and start using Perl as a parent brand — one that protects the Perl languages, sub-projects, and conferences:
Perl $new_dialect_name_for_perl5 (tm) Perl $new-dialect-name-for-perl6 (tm) OR $new_dialect_name_for_perl5 Perl (tm) $new-dialect-name-for-perl6 Perl (tm)
Each runtime name would be invoked on the command line. So the name needs to be Perlish — but also genuinely usable:
red6-style names)On the command line:
shell> raku HelloWorld.pl # runs Perl 6 interpreter shell> rafu HelloWorld.pl # runs Perl 5 interpreter (alias to 'perl') shell> perl HelloWorld.pl # runs Perl 5 interpreter (legacy)
The registered Perl® mark continues to protect the overall “Perl Way” and combines with sub-projects and conferences:
Perl $project-name (tm) Perl $conference-name (tm) Perl $mongers-group (tm)
The community contributed a long list of candidates. raku — suggested by several people including Damian Conway and others — was eventually chosen by Larry Wall.
| Name | No ™1 | No ®2 | Short | Googlable3 | Typeable | Suggested by |
|---|---|---|---|---|---|---|
| 6lang | ✓ | ✓ | ✓ | ✓ | ✓ | Alex Daniel |
| albus | ✓ | ✓ | ✓ | × | ✓ | The Damian, Moritz |
| beril | ✓ | ✓ | ✓ | ✓ | ✓ | Steve Mynott |
| camelion | ✓ | × | × | ✓ | ✓ | geekosaur |
| century | × | × | × | × | ✓ | Jo Christian Oterhals |
| kudo | ✓ | × | ✓ | × | ✓ | raiph |
| lmoth | ✓ | ✓ | ✓ | ✓ | ✓ | Christian Torstensson |
| lusk | ✓ | ✓ | ✓ | ✓ | ✓ | tux68 |
| mu | ✓ | × | ✓ | × | ✓ | — |
| onyx | × | × | ✓ | × | ✓ | Zephyr |
| ofun | ✓ | ✓ | ✓ | ✓ | ✓ | SmokeMachine |
| p6 | × | × | ✓ | × | ✓ | raiph, Joel Roth |
| perl++ | × | ✓ | × | × | ✓ | vstemen |
| perl-ng | × | ✓ | × | ✓ | ✓ | flexibeast |
| psix | ✓ | ✓ | ✓ | ✓ | ✓ | TimToady |
| qdo | ✓ | × | ✓ | × | ✓ | Nige |
| rak | ✓ | × | ✓ | × | ✓ | Nige |
| raku | ✓ | ✓ | ✓ | ✓ | ✓ | Nige & community |
| rakudo | ✓ | ✓ | × | ✓ | ✓ | Zoffix, El Che, The Damian et al |
| rokudo | ✓ | ✓ | × | ✓ | ✓ | The Damian |
| star | × | × | ✓ | × | ✓ | Nige |
| xel | ✓ | ✓ | ✓ | × | ✓ | Nige |
| xeqt | ✓ | ✓ | ✓ | ✓ | ✓ | Nige |
| zeta | ✓ | × | ✓ | × | ✓ | The Damian |
| zlang | × | ✓ | ✓ | ✓ | ✓ | Zoffix |
| þerl | × | × | ✓ | ✓ | × | JJ Merelo |
With Perl 6 settled as Raku, attention turned to a sub-brand for Perl 5 itself. The legacy perl command stays, but a typable sub-brand name would mark Perl 5's continuing evolution and sit cleanly alongside Perl® as parent. These were the candidates collected:
| Name | No ™1 | No ®2 | Short | Googlable3 | Typeable | Suggested by |
|---|---|---|---|---|---|---|
| hiro | × | × | ✓ | × | ✓ | Nige |
| juro | ✓ | × | ✓ | × | ✓ | Nige |
| kiln | × | × | ✓ | × | ✓ | ducktape |
| mayu | × | × | ✓ | ✓ | ✓ | Nige |
| pumpking | ✓ | ✓ | × | ✓ | ✓ | mst |
| rafu | ✓ | ✓ | ✓ | ✓ | ✓ | Nige |
| rapt | ✓ | × | ✓ | ✓ | ✓ | — |
| raptor | × | × | ✓ | × | ✓ | Nige |
On the command line, the proposal looked like this:
shell> raku HelloWorld.pl # Perl 6 / Raku shell> rafu HelloWorld.pl # Perl 5, sub-branded shell> perl HelloWorld.pl # Perl 5, legacy alias
No Perl 5 sub-brand has been adopted at the time of writing. The list stands as a record of the conversation.
In October 2019 Larry Wall announced that Perl 6 would be renamed Raku. The sub-brand strategy was adopted: Perl stays as the parent mark, Raku takes its own legally protected identity, and the two languages no longer share a command-line collision or a public-perception muddle.
Both communities can now tell their own stories without stepping on each other.