A plan for Perl's branding - let's free all the butterflies


Perl 6 has been officially renamed to Raku.

Now it's Perl 5's turn ...

I'm collecting potential sub-brand names for Perl 5 (see criteria and rationale below) and will pass them onto Larry Wall and the Perl Foundation for consideration. Here is a list of suggested names collected so far:

Name No ™ [1] No ® [2] Short Googlable [3] Typeable Version-less Suggested By
hiro nige
juro nige
kiln ducktape
mayu nige
pumpking mst
rafu nige
raptor nige
  1. no confusion with another computer language or major software product ™
  2. no existing registered trademarks ® in international classes: 9, 16, 41, 42
  3. less than 20 million hits on Google

Please email your suggestions to: nige@nigelhamilton.com and I'll add them to the list (see criteria for a good name below).

A Branding Plan for Perl

It's good when brands are honest and clear and make room for growth.

The Apple brand has grown from referring to one type of computer in the early 80's to lots of products: Apple Watch, Apple iPhone, Apple iPad etc.

Apple creates distinctive sub-brands under the Apple parent/umbrella brand. The "iPad", for example, is strongly associated with "Apple". The "iPad" and "iPhone" are associated too. All these associations happily co-exist. Apple's sub-branding strategy means:

  • Apple marketeers get to be clear in their messaging.
  • Apple lawyers get to be clear in what they are protecting.
  • Apple customers get to be clear in what they buy / search for / talk about etc.

Sub-branding is successful in the open source world too. Remember when Apache just referred to a popular web server?

Fast-forward to now and Apache is a parent trademark that protects the 'Apache Way' and a thriving ecosystem of subprojects: Apache Ant, Apache Cassandra, Apache Hadoop, Apache Hive, Apache Ignite etc etc.

The Apache Software Foundation (ASF) provides sub-branding guidelines that encourages each Apache $sub-project to have its own distinctive sub-identity and branding. Their brands and ecosystem are flourishing as a result. Apache's branding strategy made room for growth - Perl's should too.

The truth is, the Perl brand has outgrown its original use - a designator of just one computer language. Like Apple and Apache, Perl has grown into a parent trademark.

Perl 5 and Perl 6 are two distinct dialects of Perl. Yes - they both share the Perl spirit - but the two dialects are different and it's good to be clear about that. Separating the two by just a version number does a disservice to both and is potentially confusing.

Having two distinctive sub-brand names will mean honesty, clarity and no collisions on the command-line. Both Perl 5 and Perl 6 have distinct stories to tell and need room to evolve - separate sub-brand names will help.

The Perl Foundation is doing a good job of protecting the Perl® trademark already - it's registered and protected. The next step is to take inspiration from the Apache Software Foundation (ASF) and start using Perl as a parent brand to protect the Perl languages (Perl 5+6), sub-projects and conferences.

To avoid collisions on the command-line both Perl 5 and Perl 6 can create distinctive sub-brands for their respective runtimes/dialects and the whole community can move forward sharing the Perl umbrella brand.

TMTOWTDI after all! ;-)

Perl $new_dialect_name_for_perl5_goes_here (tm)
Perl $new-dialect-name-for-perl6-goes-here (tm)


$new_dialect_name_for_perl5_goes_here Perl (tm) 
$new-dialect-name-for-perl6-goes-here Perl (tm)

Ideally the new runtime/dialect name(s) should have the following features:

  • be Perlish
  • distinctive
  • shortish (< 6 characters)
  • good Google find-ability
  • command-line type-ability
  • works with the Perl® parent trademark
  • easy to read
  • straightforward to pronounce
  • easy to spell
  • avoid hardwiring version numbers into the name (e.g., red6)
  • not cause confusion
  • not used by other major software projects / companies
  • not trademarked already (in international classes: 9, 16, 41, 42)

Each distinct runtime name is used on the command line to invoke the selected Perl interpreter. For example:

shell> raku HelloWorld.pl    # runs Perl 6 interpreer
shell> rafu HelloWorld.pl    # runs Perl 5 interpreter - acts as an alias to 'perl'
shell> perl HelloWorld.pl    # runs Perl 5 interpreter for legacy reasons

The registered Perl® trademark protects the overall Perl Way and can work in combination with Perl-related projects and conferences etc.

Perl $project-name (tm)
Perl $conference-name (tm) 
Perl $mongers-group (tm)

Together the combination of the Perl® parent mark and sub-brands can help strengthen the protection for all Perl dialects, projects and conferences.

It's time for Perl's branding strategy to evolve - to accommodate the different Perl dialects, community and conferences. Let's free all the butterflies! Please share your support for a new branding plan for Perl.

Larry Wall has chosen "raku" as the stage name for Perl 6. Here is a list of suggestions that were collected:

Name No ™ [1] No ® [2] Short Googlable [3] Typeable Version-less 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
onyx Zephyr
ofun SmokeMachine
p6 raiph, Joel Roth
perl++ vstemen
perl-ng flexibeast
psix TimToady
qdo Nige
rak Nige
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
  1. no confusion with another computer language or major software product ™
  2. no existing registered trademarks ® in international classes: 9, 16, 42
  3. less than 10 million hits on Google