Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Edited preface.
  • Loading branch information
chromatic committed Jul 16, 2010
1 parent 8ac231b commit dc0b883
Showing 1 changed file with 48 additions and 42 deletions.
90 changes: 48 additions & 42 deletions src/preface.pod
@@ -1,21 +1,21 @@
=head0 Preface

Perl 6 is a versatile, intuitive, and flexible programming language in active
development. It embraces several paradigms like procedural, object oriented,
and functional programming, and offers powerful tools for parsing text.

Perl 6 is a language specification for which multiple compilers and
interpreters exist in various stages of completeness. These implementations
have in turn influenced the design of the Perl 6 programming language by
highlighting misfeatures, or features that are unnecessarily hard to implement
with little benefit. From this process we have a more cohesive and consistent
language specification as well as multiple compilers which implement the
language.
have in turn influenced the design of the language by highlighting misfeatures,
contradictions, or features of difficult implementation and little benefit.
This process of iteration has produced a more cohesive and consistent language
specification.

Perl 6 is versatile, intuitive, and flexible. It embraces several paradigms
like procedural, object oriented, and functional programming, and offers
powerful tools for parsing text.

This book introduces the Perl 6 language. These examples will all run run with
the I<Rakudo Perl 6> Compiler, but they are in no way specific to Rakudo--any
sufficiently advanced Perl 6 implementation can run them. Good luck and--as
the Perl 6 community often says--have fun!
=for author

Remove the next paragraph when appropriate.

=end for

This book is a work-in-progress. Even releases will contain some amount of
C<TODO> comments prior to the printing of the book. We've left them in because
Expand All @@ -25,41 +25,43 @@ understanding.

=head1 Audience

This book is primarily for people who want to learn Perl 6. We expect some
experience programming in another programming language, though no
prior knowledge of Perl is necessary. After working through this book, a
programmer should have a solid grasp of the basics of Perl 6. That means
that they should be able to solve their own problems with Perl 6. This
book is not a comprehensive reference; it is a series of tutorials.
This book is primarily for people who want to learn Perl 6. It is a series of
tutorials, not a comprehensive reference. We expect some experience in another
programming language, though no prior knowledge of Perl is necessary. After
working through this book, you should have a solid grasp of the basics of Perl
6 sufficient to solve your own problems with Perl 6.

=head1 Relationship between Perl 6 and Perl 5

Perl 6 is the newest member of the family of languages known as Perl. It
represents a major break in syntactic and semantic compatibility from Perl 5,
and thus has a major version number increase. However, this does not mean that
Perl 5 is going away. In fact, quite the opposite. Both Perl 5 and Perl 6 have
active developer communities which mold the languages. Perl 5 developers try to
extend the language in various ways while keeping backwards compatibility with
past versions of Perl. Perl 6 developers extend the language by adding new
syntactic and semantic features that enable more power and expressiveness
without the restriction of backward compatibility with Perl 5 or earlier
versions.
thus the increase from 5 to 6. However, this does not mean that Perl 5 is going
away. In fact, quite the opposite. Both Perl 5 and Perl 6 have active developer
communities which mold the languages. Perl 5 developers try to extend the
language in various ways while keeping backwards compatibility with past
versions of Perl. Perl 6 developers extend the language by adding new syntactic
and semantic features that enable more power and expressiveness without the
restriction of backward compatibility with Perl 5 or earlier versions.

Some might ask, "Why call it Perl if it's a different language?" Perl is more
than just the vagaries of syntax. Perl is philosophy (there's more than one way
to do it; easy things easy, hard things possible); Perl is customs
(comprehensive testing); Perl is architectural edifice (the Comprehensive Perl
Archive Network); Perl is community (perl5porters, perl6-language). Both Perl
5 and Perl 6 share these attributes to varying degrees. Also, due to Perl's
habit of stealing good ideas, Perl 5 and Perl 6 have converged and will
continue to do so as Perl 5 borrows ideas from Perl 6 and vice-versa.
than the vagaries of syntax. Perl is philosophy (there's more than one way to
do it; easy things easy, hard things possible); Perl is custom (comprehensive
testing); Perl is architectural edifice (the Comprehensive Perl Archive
Network); and Perl is community (perl5porters, perl6-language). Both Perl 5
and Perl 6 share these attributes to varying degrees. As well, Perl is
syncretic. Just as Perl borrows good ideas from other languages, so Perl 5 and
Perl 6 share features.

=head1 Perl 6 implementations

X<Rakudo>

Perl 6 is a specification. Any implementation that passes the official test
suite can call itself "Perl 6". Several implementations exist at various levels
of maturity. All of the code in this book is tested using the Rakudo Perl 6
compiler.
of maturity. All of the examples in this book will run with the I<Rakudo Perl
6> Compiler, but they are in no way specific to Rakudo--any sufficiently
advanced Perl 6 implementation can run them. Good luck and--as the Perl 6
community often says--have fun!

=head1 Installing Rakudo

Expand All @@ -73,19 +75,23 @@ is available from U<http://sourceforge.net/projects/parrotwin32/files/>.
To run a Perl 6 program with Rakudo, include the install directory in your
system C<PATH> variable and issue a command like:

=begin screen

$ perl6 hello.pl

=end screen

=for author

Did the lexical fix get merged?

=end for

If the Rakudo compiler is invoked without an explicit script to run, it
enters a small interactive mode that allows Perl 6 statements to be
executed from the command line. Each line entered is treated as a
separate compilation unit, however (which means that subroutines are
preserved after they are defined, but variables are not).
If you invoke the Rakudo compiler without an explicit script to run, it enters
a small interactive mode that allows Perl 6 statements to be executed from the
command line. Each line entered is treated as a separate compilation unit,
however (which means that subroutines are preserved after they are defined, but
variables are not).

=head1 Getting involved

Expand All @@ -105,7 +111,7 @@ The channel C<#perl6> on C<irc.freenode.net> discusses all things Perl 6.

=item Mailing lists

If you need some programming help with Perl 6, send an email to
If you need programming help with Perl 6, send an email to
C<perl6-users@perl.org>.

For issues regarding the Perl 6 language specification contact
Expand Down

0 comments on commit dc0b883

Please sign in to comment.