|
Perl 6
Perl 6 Executive Summary: Revision 10
{image: camelia.jpg}
* Perl 6 is a comprehensive redesign of Perl that aims to {greatly streamline and powerfully extend} the Perl 5.++ ecosystem. ** Perl 6's many new built-in features greatly advance the Perl tradition of highly-capable, feature-rich programming. Here are some of those features: *** Multimethods, coroutines, continuations, currying, signatures, captures, threading *** Powerful yet convenient object-oriented programming, generics, roles *** Functional programming primitives, {lazy and eager} evaluation, junctions, hyperoperators (vector operators) *** Module aliasing and versioning, optional static/gradual typing *** {Extensible and overridable} {Perl 6 primitives and Perl 6 grammar}, language-level macros *** Definable grammars for pattern matching and processing, with many other powerful extensions. *** Advanced introspection and meta-programming *** Full Unicode processing support *** Garbage collection *** Greatly-improved foreign function interface ** See [The Long Perl 6 Super-Feature List] for the long overview. * Perl 6 has a fun-driven community: writing Perl 6 compilers is fun, developing applications in Perl 6 is fun, and so is dealing with friendly, intelligent people. * Perl 6 will support it's still-advancing Perl 5 big sister, and future versions of both languages will support increasing degrees of interoperability. * Perl 6 is defined by the Perl 6 test suite (which are in turn based on the Perl 6 language design documents), not by conformance to a reference implementation (as Perl 5 was). * While Perl 6 has been an infamously long time in development (see below), it has been relentlessly advancing along the long road to "industrial strength" in the last few years. ** New pre-1.0 releases of Perl 6 are now made on a routine monthly schedule. ** This long gestation period has allowed Perl 6 to make many important refinements on the basis of early implementations. ** The [Rakudo Star] release of Perl 6 on Parrot is due out in spring, 2010. This pre-1.0 release is intended to be practically usable by early Perl 6 developers. {image: Perl_6_timeline.png} |