Perl - Perl 6

Perl 6

At the 2000 Perl Conference, Jon Orwant made a case for a major new language-initiative. This led to a decision to begin work on a redesign of the language, to be called Perl 6. Proposals for new language features were solicited from the Perl community at large, which submitted more than 300 RFCs.

Wall spent the next few years digesting the RFCs and synthesizing them into a coherent framework for Perl 6. He has presented his design for Perl 6 in a series of documents called "apocalypses" - numbered to correspond to chapters in Programming Perl. As of January 2011, the developing specification of Perl 6 is encapsulated in design documents called Synopses - numbered to correspond to Apocalypses.

Perl 6 is not intended to be backward compatible, although there will be a compatibility mode. Perl 6 and Perl 5 are distinct languages with a common ancestry.

Thesis work by Bradley M. Kuhn, overseen by Wall, considered the possible use of the Java virtual machine as a runtime for Perl. Kuhn's thesis showed this approach to be problematic. In 2001, it was decided that Perl 6 would run on a cross-language virtual machine called Parrot. This will mean that other languages targeting the Parrot will gain native access to CPAN, allowing some level of cross-language development.

In 2005, Audrey Tang created the pugs project, an implementation of Perl 6 in Haskell. This acted as, and continues to act as, a test platform for the Perl 6 language (separate from the development of the actual implementation) - allowing the language designers to explore. The pugs project spawned an active Perl/Haskell cross-language community centered around the freenode #perl6 IRC channel.

As of 2012 a number of features in the Perl 6 language show similarities to Haskell.

As of 2012 Perl 6 development centers primarily around two compilers:

  1. Rakudo Perl 6, an implementation running on top of the Parrot virtual machine
  2. Niecza, which targets the Common Language Runtime

Read more about this topic:  Perl