"Perl 5 was my rewrite of Perl. I want Perl 6 to be the community's rewrite of Perl and of the community."
- Larry Wall, State of the Onion speech, TPC4

A complete rewrite of Perl by Larry and the gang. The internals of Perl 5 were full of kludges, it was very hard to extend, and people wanted new features, so it was decided that a complete rewrite would be in order. Perl 6 separates the parsing from the compilation and runtime, by using the Parrot virtual machine for program execution. Perl 6 will not actually execute code, but instead compile it down to Parrot bytecode and pass it on to Parrot. Parrot is to be a bytecode interpreter for weakly-typed scripting languages in general, so you will be able to share libraries between Perl 6 and other languages that use Parrot. (yes, the name 'Parrot' was originally the name for a joke language, but this is not the same thing, although this is more or less named after the joke language).

Perl 6 breaks a lot of old syntax. For instance, '->' (the class method/attribute accessor) becomes '.'. '.' (the string concatenation operator) becomes '_'. Elements of an array will be accessed by @arrayname[element] instead of $arrayname[element], but that's okay, because the old syntax was kinda goofy. Unfortunately, it will be neccessary to not leave any space between hash names and their subscripts, so as to not confuse them with code blocks. Where before you could say $hashname {subscript}, you will now have to say %hashname{subscript}.

One of the big, fun differences from Perl 5 will be the regex engine. Perl 6's pattern matching features will be quite a departure from the old regexes that we all know and love. The new engine is based on 'rule's, and allows for recursive matching. See apocolypse/exegeses 5 for details.

For what it's worth, Perl 6 will provide native support for different string encodings (unicode strings)

Perl6 will be the one programming language for everything. Not only will it be possible to compile Java bytecode, C# etc.. into Perl6, but allmost any language.

And this is only the beginning...

from http://dev.perl.org/perl6/ :

Perl6 is the next version of the Perl programming language. The project attempts to address the interpreter, the language, and the culture. The internals of the version 5 interpreter are so tangled that they hinder maintenance, thwart some new feature efforts, and scare off potential internals hackers. The language as of version 5 has some misfeatures that are a hassle to ongoing maintenance of the interpreter and of programs written in Perl. And finally, the entire Perl community is invited to participate in the design and implementation of perl6.
"Perl 5 was my rewrite of Perl. I want Perl 6 to be the community's rewrite of Perl and of the community."
--Larry Wall, State of the Onion speech, TPC4

The vision for perl6 is more than simply a rewrite of perl5. By separating the parsing from the compilation and the runtime, we're opening the doors for multiple languages to cooperate. You'll be able to write your program in perl6, or perl5, or any other language that there's a parser written for. Interchangable runtime engines let you interpret your bytecode or convert it to something else (e.g., Java, C, or even back to Perl).

Perl6 runtime is called Parrot and is available from www.parrotcode.org
Parrot is still in development and newest version is 0.0.5, but it already supports many mini-languages such as BASIC, Jako (like c), Cola (like Java)

More information can be found at dev.perl.com/perl6

Log in or register to write something here or to contact authors.