Category:Perl 6: Difference between revisions
Content added Content deleted
(update to 2016) |
(Todo) |
||
Line 15: | Line 15: | ||
{{language programming paradigm|object-oriented}} |
{{language programming paradigm|object-oriented}} |
||
{{language programming paradigm|generic}} |
{{language programming paradigm|generic}} |
||
Perl 6 is the up-and-coming little sister to Perl 5. |
|||
Though it resembles previous versions of [[Perl]] to no small degree, Perl 6 is substantially a new language; by design, it isn't backwards-compatible with Perl 5. |
|||
The first official release was at Christmas of 2015. |
|||
Damian Conway described the basic philosophy of Perl 6 as follows: |
Damian Conway described the basic philosophy of Perl 6 as follows: |
||
<blockquote>The Perl 6 design process is about keeping what works in Perl 5, fixing what doesn't, and adding what's missing. |
<blockquote>The Perl 6 design process is about keeping what works in Perl 5, fixing what doesn't, and adding what's missing. |
||
That means there will be a few fundamental changes to the language, a large number of extensions to existing features, and a handful of completely new ideas. |
|||
These modifications, enhancements, and innovations will work together to make the future Perl even more insanely great -- without, we hope, making it even more greatly insane.</blockquote> |
|||
Major new features include multiple dispatch, declarative classes, grammars, formal parameters to subroutines, type constraints on variables, lazy evaluation, junctions, meta-operators, and the ability to change Perl's syntax at will. |
Major new features include multiple dispatch, declarative classes, grammars, formal parameters to subroutines, type constraints on variables, lazy evaluation, junctions, meta-operators, and the ability to change Perl's syntax at will. |
||
The definition of Perl 6 is specified entirely by a test suite, so we could in theory have multiple implementations. |
The definition of Perl 6 is specified entirely by a test suite, so we could in theory have multiple implementations. |
||
The current version of the language is 6.c (short for 6.christmas), as defined by the test suite known as "roast" (Repository Of All Spec Tests). |
The current version of the language is 6.c (short for 6.christmas), as defined by the test suite known as "roast" (Repository Of All Spec Tests). |
||
Compiler releases have date-based versions, and these are typically used in Rosetta Code entries for the "works with" fields. |
|||
The only compiler implementing the full test suite, rakudo, currently runs on either MoarVM or JVM. |
|||
Subsequent language revisions are planned (with provisional names of "Diwali", "Eid", and other such celebrations), but these will only come out once a year or so. |
|||
In 2016 we are primarily working on performance and documentation of the stable 6.c version. |
|||
<br clear=right><!-- Stop the category list and infobox from overlapping --> |
<br clear=right><!-- Stop the category list and infobox from overlapping --> |
||
==Todo== |
|||
[[Reports:Tasks_not_implemented_in_Perl_6]] |