Skip to content

Instantly share code, notes, and snippets.

@japhb

japhb/ready.md Secret

Last active December 14, 2015 12:38
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save japhb/c51ee251868680bd01aa to your computer and use it in GitHub Desktop.
Save japhb/c51ee251868680bd01aa to your computer and use it in GitHub Desktop.

Is Perl 6 Ready?

Overview

                STATUS       GOALS
-------------   ----------   --------------------------------------
Community       *********    Friendly, helpful, responsive, large
Features        *******      Complete, bug-free, concise, powerful
Portability     *****        Several VMs, many platforms, most OSen
Documentation   ***          Complete, precise, readable, helpful
Ecosystem       **           Broad, deep, vibrant, high-quality
Performance     *            Fast, scalable, efficient
-------------   ----------   --------------------------------------

Major News

  • 2013-03-01 -- Portability: NQP now runs self-hosted on JVM
  • 2013-02-11 -- Performance: Launch of Rakudo-focused 'sixparrot' Parrot project

More Info

Community: Perl 6's strongest asset is its community, which is already one of the friendliest and most helpful you will find. Community members are responsive at all hours, but most active from 8 AM to midnight UTC. See Community.

Features: Rakudo and Niecza both sport majority, but not yet complete, feature coverage. Significant remaining weaknesses include fine- and coarse-grained concurrency, NFG (Unicode grapheme) support, portions of the C/native type system support, and the multi-versioned module system. See Features.

Portability: Between Rakudo and Niecza, support exists for the three major desktop operating systems, and the .NET/Mono, Parrot, and (soon) Java VMs. NQP (the basis of Rakudo) is being actively refactored for VM portability, and has recently become self-hosting on JVM; additional work is in progress to port NQP to other VMs, such as V8, and to support Rakudo on any platform NQP runs on.

Documentation: Most of the Perl 6 design is specced and stable; some remaining portions of the spec which lack multiple implementations are slushy and incomplete. Online/local documentation exists, but is incomplete and sometimes hard to search. Tutorials, presentations, examples, and a free introductory book all exist, but can be fragmentary, incomplete, and assume much previous knowledge. See Documentation.

Ecosystem: Perl 6 currently has a small ecosystem, with a simple module installer (panda). There is a sizeable ecosystem "most wanted" list, and work is progressing sporadically to complete these. Neither Rakudo nor Niecza can natively use Perl 5 modules, but there is recent discussion about how to support this effectively. See perl6-most-wanted.

Performance: Existing Perl 6 implementations are still too slow and memory intensive for many common/traditional applications. However, they can be faster in areas where Perl 6 offers capabilities that are external libraries in other languages. We're working steadily on speed improvements; significant progress has been made here and more is coming. Niecza has some support for threading but not Perl 6's fine-grained parallelism; Rakudo's first concurrency work is expected in the Rakudo-on-JVM port.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment