vision alive 2000

Perl 5 Raku (Perl 6)

Originally announced as Perl 6 in 2000, this complete language redesign diverged so far from Perl 5 that it was renamed to Raku in 2019. The 15-year development period and broken backward compatibility caused a dramatic community split and contributed to Perl's decline.

What it is

Raku runs on MoarVM (primary) or the JVM via the Rakudo compiler. Features include grammars (built-in parsing), gradual typing, multiple dispatch, meta-object protocol, concurrency primitives (promises, channels, supplies), lazy evaluation, and a completely redesigned regex engine. No code-level compatibility with Perl 5.

The story

At the 2000 Perl Conference, Larry Wall announced Perl 6 in his 'State of the Onion' address, declaring it would be 'the community's rewrite of Perl.' The goals were ambitious: remove 'historical warts,' make easy things stay easy while hard things get easier, and completely overhaul the language's internals and APIs. Crucially, backward compatibility with Perl 5 was explicitly not a goal — code valid in Perl 5 might not compile in Perl 6.

What followed was a 15-year development odyssey that many perceived as vaporware. Perl 6's first stable release (v6c 'Christmas') did not arrive until December 2015. During this extended development period, many developers permanently abandoned Perl for Python, Ruby, and other languages, contributing to the perception that 'Perl is dead.' The Perl 5 and Perl 6 communities were approximately 90-95% disjoint — they were essentially separate communities sharing a name.

The naming conflict became a persistent source of hurt feelings and strife. Perl 6's existence created confusion about whether Perl 5 was still being developed (it was, with annual releases since 2010). In August 2019, the Perl 6 community proposed renaming the language to 'Raku.' Larry Wall approved the rename in October 2019, invoking a Biblical parable about not putting new wine in old wineskins. The name 'Raku' came from the alias that Wall had reserved for Perl 6 on CPAN.

Raku is technically not a code fork of Perl 5 — it is a clean-room redesign. However, the community split it caused, the resources it diverted, and its impact on Perl's trajectory make it one of the most significant 'fork-like' events in programming language history. The communities are now working to establish full independence from one another while acknowledging shared origins.

Timeline

Larry Wall announces Perl 6 at the Perl Conference

Pugs, first experimental Perl 6 compiler (in Haskell), generates early excitement

Rakudo Star (usable Perl 6 distribution) first released

Perl 6 v6c 'Christmas' — first stable release after 15 years

Larry Wall approves renaming Perl 6 to Raku

Key people

Larry Wall
Perl creator, announced Perl 6, approved Raku rename
Damian Conway
Major Perl 6 / Raku language designer
Patrick Michaud
Lead developer of Rakudo (primary Raku compiler)
Jonathan Worthington
MoarVM developer, major Rakudo contributor
Elizabeth Mattijsen
Raku rename proposal author

Impact

The prolonged Perl 6 development contributed significantly to Perl's decline as developers migrated to Python and Ruby rather than waiting. The community split drained energy from both Perl 5 and Perl 6/Raku development. The rename to Raku was a rare case of a major language officially acknowledging it had diverged into a separate language.

Lesson: Naming a complete redesign as the 'next version' of an existing language creates identity confusion and community conflict that can last decades. Ambitious rewrites that break all backward compatibility risk alienating the existing user base. Sometimes the most honest thing is to acknowledge a new language is a new language, not a version upgrade.