Something exciting is taking place in the Perl world. The language has grown enormously. And although this has made Perl an extremely flexible programming language, it has also made it very hard for developers to work on maintaining the Perl interpreter/compiler system. The Perl core has become too complex.
This has led to the launch of Perl6 - the next major release of the language. This is more than a new release; it is a complete rewrite of Perl's internals, and a major overhaul of the syntax and structure of the language.
To make this as flexible and powerful as possible, it was decided to re-build Perl on top a virtual machine nick-named Parrot after an April Fool's Joke on the O'Reilly web page a few years back. Like Microsoft's VM for the .NET project, Parrot is going to be language neutral, and is designed from the start to be able to accommodate Python and Ruby besides, of course, Perl6 (and Perl5). This VM can be programmed in PASM (Parrot Assembly language) or PIR (Parrot Intermediate language) handled by the IMCC (Intermediate Code Compiler). These are both very high-level abstract assembly languages, which are then translated into Parrot bytecodes.
However, the Perl6 language itself has not been designed yet. This is done through a number of so-called Apocalypses put out by the creator of Perl, Larry Wall. These sum up the various proposals made by Perl users and combine them to a coherent new language. Thus, rather little can be said about this future programming language, except that it will add a number of very powerful concepts, such as continuations, co-routines and multi-methods. But little can be said about how these are to be implemented yet, and the book only gives a brief coverage of them.
As a result, a lot of the information in this book is tentative. A new release of the book is planned every year until Perl6 finally comes out. In the mean time, it serves as an excellent overview of the process and where Perl6 stands. For the latest information, one has to look at the actual code and documentation of it. The book contains plenty of information on how to get this code, how far the project is, and how to participate. It is a very courageous attempt to capture the present state of this highly elusive target.
The book is very well written, with only a few flaws. Mostly, these flaws are inevitable and follow directly from the elusiveness of the Perl6 language. Occasionally, though, one can see that the book is the result of the collaboration of three authors. For instance, the concept of PMCs (Parrot Magic Cookies - the way objects and other kinds of complex data structures are handled) is mentioned quite early, but they are not defined until chapter 6. These flaws do not distract from a very favourable impression, however. Highly recommended.