Chapter 7 of 9

Perl 6 also travelled through people, Parrot and debates on language change

N.B. This material was collected and structured automatically, and may contain unintentional mistakes. Every claim links its source: please check it before relying on a detail.

Some of Perl 6's influence does not show up as borrowed features. It travelled through the people Pugs brought to Haskell, through Parrot's place in virtual-machine research, and through the part Perl 6 plays when other languages plan big changes.

Pugs and the Haskell community

What the sources say 2
  1. Paul Hudak, John Hughes, Simon Peyton Jones and Philip Wadler, Haskell designers A History of Haskell: Being Lazy with Class, HOPL III, section 12.3 source ↗

    Names Darcs and Pugs as the open-source projects that began attracting people to Haskell, tells how Tang chose Perl 6 after reading TAPL, and says Pugs had about 200 contributors within a year.

  2. Audrey Tang, Pugs creator, interviewed by Andrew Shitov Interview with Audrey Tang, andrewshitov.com source ↗

    Says Pugs chiefly drew newcomers to Haskell, some of whom, including Edward Kmett, went on to energise its community, and that Pugs's feedback helped firm up several GHC extensions.

Parrot in virtual-machine research

What the sources say 3
  1. Roberto Ierusalimschy, Luiz Henrique de Figueiredo and Waldemar Celes, Lua's authors The Implementation of Lua 5.0, J.UCS 11(7) source ↗

    Cites Perl 6's planned register-based Parrot VM as a sign of growing interest in register machines, while claiming Lua 5.0 as the first widely used register-based VM.

  2. Yunhe Shi, Kevin Casey, M. Anton Ertl and David Gregg, VM researchers Virtual Machine Showdown: Stack Versus Registers, ACM TACO 4(4) source ↗

    Says the stack-versus-register debate resurfaced because Parrot, the intermediate representation for Perl 6, was designed as a register machine rather than a stack machine.

  3. Wikipedia article Parrot virtual machine source ↗

    Says none of the languages hosted on Parrot made it their primary implementation, and that active development was declared over in August 2021, with MoarVM having taken over for Perl 6.

Perl 6 in debates about language change

Perl 6 was a bold, compatibility-breaking redesign. When other languages weigh big changes, their leaders often bring it up as the reference point:

LanguageWhoWhenWhat they said or did
PythonBarry Warsaw24 July 2000A language cannot be designed by committee vote, and the Perl 6 and Tcl teams should learn from that (Warsaw6)
PythonGuido van Rossum31 January 2005Python 3000 should be less sweeping than the Perl 6 redesign (python-dev7)
PythonGuido van Rossum5 April 2006With a smiley: the Python 3000 process aims not to repeat Perl 6 (Artima8)
PythonGuido van Rossum20 April 2006In the thread that led to keyword-only arguments, set aside a bracketed parameter syntax as copying Perl 6 (0010949)
PythonGeorg Brandl1 April 2007An April Fools' PEP about matching Perl 6's Unicode operators (PEP 311710)
PythonGuido van Rossum16 May 2007Answered a call for Unicode characters used for fun by pointing to Perl 6 as where that path leads (00768911)
PythonGuido van Rossum1 October 2008Contrasted Python 3 with Perl 6, an entirely new language and implementation (Linux Journal12)
PythonŁukasz Langa17 August 2014A new language called Python 4 should not repeat Perl 6's path (Langa13)
JavaScriptBrendan EichMarch 2008Nobody on the ES4 effort intends it to resemble Perl 6 (esdiscuss 200814)
JavaScriptBrendan Eich12 August 2014Perl 6 is rich in good ideas that could only arrive by breaking compatibility (esdiscuss 201415)
GoIan Lance Taylor2018The Go 2 transitions design doc traces Perl 6 from 2000 to its 2015 specification, as a deliberately incompatible and evolving design. It lists avoiding that path among Go's lessons, beside meeting deadlines and not changing everything at once (28221-go2-transitions.md16)
GoGo teamFebruary 2019Go 1.12 gates language changes by the go directive in go.mod (Go 1.1217)
GoRuss Cox14 August 2023No Go 2 will break existing Go 1 programs (Go blog18)
SwiftDouglas Gregor18 January 2023Set Perl 5 → 6 beside Python 2 → 3 as a transition to learn from in planning Swift 6 (Gregor19)
ScalaMartin Odersky4 March 2019Contrasted Perl 6's long time between announcement and release with Scala 3's coming feature freeze (Odersky20)
RustSteve Klabnik18 December 2015Hoped Rust would avoid a transition like Ruby 1.9's, Python 3's or Perl 6's (Klabnik21)
DWalter Bright14 March 2015Compared D's own D1-to-D2 change with Perl 6's (Bright22)
PHPAdam Harvey21 August 2014PHP 7 should not become the Perl 6 of its decade by changing everything at once (7675523)
PHPAndrea Faulds and Zeev SuraskiJuly 2014The RFC to skip version 6 cited Perl 6 among its reasons (PHP RFC: php624)
PHPStanislav Malyshev30 April 2016Objected that a pipe operator moved PHP's syntax toward Perl 6 (9296825). The |> operator later shipped in PHP 8.5 (pipe-operator-v326)
RustRFC commenters2017Mentioned Perl 6 with Python 3 as a transition a Rust 2.0 should avoid (rfcs #88627), and, in the editions debate, as the model for separating a language (Perl 6) from its implementation (Rakudo) (rfcs #205228)
PerlNicholas Clark7 June 2021Perl's PPC process sets out to avoid proposals nobody knows how to implement, as in the Perl 6 RFC round (PPC motivation29)
What the sources say 24
  1. Barry Warsaw, Python core developer python-dev, Evolving Python thread source ↗

    Argues that a language cannot be designed by committee, since every proposal put to a vote would fail, and says the Perl 6 and Tcl teams should learn from that.

  2. Guido van Rossum, Python's creator python-dev mailing list source ↗

    Says the Python 3000 work should be less sweeping than the Perl 6 redesign.

  3. Guido van Rossum, Python's creator Artima weblog, Python 3000 – Adaptation or Generic Functions? source ↗

    Describing the Python 3000 process, says with a smiley that its aim is to keep Perl 6 from happening again.

  4. Guido van Rossum, Python's creator python-3000 mailing list, Type Expressions thread source ↗

    Dismisses proposed bracket notations for parameter lists, reminding the list that Python does not want to imitate Perl 6.

  5. Georg Brandl, Python core developer PEP 3117, Postfix type declarations source ↗

    Unicode makes it possible to express much more with much less characters, which is in accordance with the Zen ("Readability counts."). Additionally, it eliminates the need for a separate type declaration statement, and last but not least, it makes Python measure up to Perl 6, which already uses Unicode for its operators. [Footnote:] Well, it would, if there was a Perl 6.

    The PEP is an April Fools' joke, dated 1 April 2007.

  6. Guido van Rossum, Python's creator python-3000 mailing list, PEP 3131 discussion source ↗

    Replying to a call for Unicode characters used purely for fun, in the PEP 3131 identifiers debate, warns that this path ends in Perl 6 and Python must stay a sane alternative.

  7. Guido van Rossum, interviewed by James Gray Linux Journal interview source ↗

    Answers a suggestion that Python 3 is unusual in breaking compatibility by pointing to Perl 6, which he calls an entirely new language with a wholly different implementation.

  8. Łukasz Langa, Python core developer python-dev, PEP 4000 thread on ruling out another Py3k-style break source ↗

    Jokes that if anyone ever designs a new language and calls it Python 4, they should be stopped from repeating what happened with Perl 6.

  9. Brendan Eich, JavaScript's creator es-discuss, complexity tax thread source ↗

    Assures the list that nobody on the ES4 effort intends the language to resemble Perl 6.

  10. Brendan Eich, JavaScript's creator es-discuss, Thread about ES6 on reddit source ↗

    Likens the situation to Perl 6 versus Perl 5, calling Perl 6 rich in good ideas that could only arrive by breaking compatibility.

  11. Ian Lance Taylor, Go core team Go design doc 28221, Go 2 transitions source ↗

    Its Perl section traces Perl 6 from a 2000 start to a 2015 specification, calls it deliberately incompatible and ever-changing, and lists not being Perl 6 among Go's lessons, with keeping deadlines and gradual change.

  12. Go team Go 1.12 release notes source ↗

    Says the go directive in a go.mod file now records which language version the module's files are written in.

  13. Russ Cox, Go tech lead Go blog, Backward Compatibility, Go 1.21, and Go 2 source ↗

    States that no Go 2 will ever break existing Go 1 programs.

  14. Douglas Gregor, Swift Language Workgroup Swift Forums, Design priorities for the Swift 6 language mode, post 57 source ↗

    Cites the Perl 5 to 6 move, which never took place, beside Swift 2 to 3 and Python 2 to 3 as lessons for planning Swift 6's language mode.

  15. Martin Odersky, Scala's creator Scala Contributors forum, Move slowly and iterate, post 23 source ↗

    Contrasts Perl 6, which he says stayed announced but unreleased for ages, with Scala 3, due to reach feature freeze that summer.

  16. Steve Klabnik, Rust core team (quoted) Rust users forum, TWiR quote of the week thread, post 187 source ↗

    Puts forward as quote of the week Klabnik's remark that he does not want a situation like Ruby 1.9's, Python 3's or Perl 6's.

  17. Walter Bright, D's creator D newsgroup, thread on choosing between Go and D source ↗

    Saying the D1 to D2 change nearly destroyed D, asks whether Perl 6 had not suffered a similar convulsion, and with less success than Python 3.

  18. Adam Harvey, PHP core developer php.internals, Integer Semantics RFC thread source ↗

    Warns that PHP 7 could become the Perl 6 of the decade, an example of what happens when a project discards everything at once.

  19. Andrea Faulds and Zeev Suraski, RFC authors PHP RFC: Name of Next Release of PHP source ↗

    Among its reasons for skipping version 6, notes that both the abandoned PHP 6 and Perl 6 had failed; the vote chose PHP 7 by 58 to 24.

  20. Stanislav Malyshev, PHP core developer php.internals, pipe operator RFC thread source ↗

    Objects to the 2016 pipe operator RFC that it pushes PHP syntax too far in the Perl 6 direction.

  21. Larry Garfield, RFC author PHP RFC: Pipe operator v3 source ↗

    Proposes the |> pipe operator for PHP; the RFC passed its vote and is marked implemented for PHP 8.5.

  22. ssokolow, Rust RFC commenter rust-lang/rfcs PR #886, must_use on functions source ↗

    Suggests keeping a list of features that later Rust-inspired languages should adopt, describing such a language as a Rust 2.0 spared the turmoil of Perl 6 or Python 3.

  23. internetionals, Rust RFC commenter rust-lang/rfcs PR #2052, Evolving Rust through Epochs source ↗

    Notes that the Perl 6 community separates the language, Perl 6, from its canonical implementation, Rakudo, and proposes versioning Rust's language and toolchain separately.

  24. Nicholas Clark, Perl core developer Perl PPC process, docs/motivation.md source ↗

    Lists the Perl 6 RFC round, whose proposals nobody could see a way to build, among the failures the new proposal process should avoid, linking a critique of it.

Rust, for its part, modelled its RFC process on Python's PEPs (Rust RFC 000230).

What the sources say 1
  1. Rust project, RFC 0002 Rust RFC 0002, RFC process source ↗

    Setting up Rust's RFC process, suggests drawing on Python's PEP process if a stricter procedure becomes necessary.

How other languages tell their own history

What the sources say 2
  1. Allen Wirfs-Brock and Brendan Eich, ES2015 editor and JavaScript's creator JavaScript: The First 20 Years, HOPL IV source ↗

    Credits Perl for JavaScript's regular expressions and several array and string methods, and Python for generators, destructuring and comprehensions; Perl 6 is never mentioned.

  2. Chris Lattner, Swift's creator Chris Lattner's homepage, nondot.org source ↗

    Names Swift's influences as including Haskell, Rust, Objective-C, Python, Ruby, CLU and C#, plus many unnamed others; Perl is absent.

What reference works record

What the sources say 5
  1. Wikidata item Q2052676, Raku source ↗

    Raku's item lists ten languages it was influenced by, Python and Haskell among them, while no language item names Raku as an influence.

  2. Wikipedia article Raku (programming language) source ↗

    Its infobox lists Perl, Haskell and AntLang as languages Raku influenced, citing Audrey Tang's 2010 post for the first two; the body makes no such claim.

  3. Audrey Tang, Pugs creator How to Implement Perl 6 in '10, PerlMonks reply reposted on her blog source ↗

    Recounts that Pugs work led to Moose and other CPAN releases for Perl 5, and that Pugs needed Haskell features later adopted in Haskell 2010 or implemented in GHC.

  4. GHC team GHC 4.08.1 User's Guide, pattern guards source ↗

    Documents pattern guards as a GHC language extension, presenting them as a shortened form of a proposal by Simon Peyton Jones.

  5. Wikipedia article Haskell source ↗

    Its infobox counts Raku among the languages Haskell influenced, footnoting a glossary page on a Perl 6 wiki; the article text mentions Pugs only in a list of Haskell applications.

What the Raku community claims

The Raku community has been modest about its influence. Across 1,088 Weekly and Advent posts from 2009 to 2026, 133 6guts posts, raku.org and the docs FAQ, no author claims that a language outside the Perl family borrowed from Perl 6 (rakuweekly.blog; raku-advent.blog; Raku FAQ38). The Weekly never reported PHP's increment RFC or C#'s chained-comparison proposal. The one outward claim on record is Sidef, a single-author language whose readme names Raku among its inspirations (Sidef39).

What the sources say 2
  1. Raku documentation Raku FAQ, docs.raku.org source ↗

    Describes Raku as a sibling of Perl and makes no claim that Raku influenced any language beyond the Perl family.

  2. trizen (Daniel Șuteu), Sidef's author Sidef README, GitHub source ↗

    Presents Sidef as a language drawing on Ruby and Raku, plus built-in computer algebra and exact rationals by default.

Larry Wall's view

Larry Wall presented Perl 6 as a borrower. In 2016 he said other languages had taken Perl 5's regexes, and that a language borrowing enough of Perl 6 to be consistent would simply have reimplemented it (Slashdot 201640). In 2006 he predicted that everyone would move from PCRE to Perl 6 regexes; Swift is the language that went furthest in that direction (OSDC::Israel 200641).

What the sources say 2
  1. Larry Wall, interviewed by Slashdot readers The Slashdot Interview With Larry Wall source ↗

    Says other languages took Perl 5's regexes, jokes that a PHP borrowing enough to be consistent would have reimplemented Perl 6, and credits C#, Erlang, Go and Haskell for Perl 6's concurrency ideas.

  2. Larry Wall, Perl 6 language designer Present Continuous, Future Perfect, OSDC::Israel talk transcript source ↗

    Observes that everyone borrowed Perl 5's regexes and predicts that people will abandon PCRE in favour of Perl 6 regexes.