3.2 Architectural Considerations
The second
set of principles governs the overall architecture of Perl 6. These
principles are connected to the past, present, and future of Perl,
and define the fundamental purpose of Perl 6. No principle stands
alone; each is balanced against the others.
3.2.1 Perl Should Stay Perl
Everyone agrees that Perl 6 should still
be Perl, but the question is, what exactly does that mean? It
doesn't mean Perl 6 will have exactly the same
syntax. It doesn't mean Perl 6 will have exactly the
same features. If it did, Perl 6 would just be Perl 5. So, the core
of the question is what makes Perl
"Perl"?
3.2.1.1 True to the original purpose
Perl will stay true to its designer's original
intended purpose. Larry wanted a language that would get the job done
without getting in his way. The language had to be powerful enough to
accomplish complex tasks, but still lightweight and flexible. As
Larry is fond of saying, "Perl makes the easy things
easy and the hard things possible." The fundamental
design philosophy of Perl hasn't changed. In Perl 6,
the easy things are a little easier and the hard things are more
possible.
3.2.1.2 Familiarity
Perl 6 will be familiar to Perl 5 users. The fundamental syntax is
still the same. It's just a little cleaner and a
little more consistent. The basic feature set is still the same. It
adds some powerful features that will probably change the way we code
in Perl, but they aren't required.
Learning Perl 6 will be like American English speakers learning
Australian English, not English speakers learning Japanese. Sure,
there are some vocabulary changes, and the tone is a little
different, but it is still—without any doubt—English.
3.2.1.3 Translatable
Perl 6 will be mechanically translatable from Perl 5. In the long
term, this isn't nearly as important as what it will
be like to write code in Perl 6. But during the transition phase,
automatic translation will be important. It will allow developers to
start moving ahead before they understand every subtle nuance of
every change. Perl has always been about learning what you need now
and learning more as you go.
3.2.2 Important New Features
Perl 6 will add a number of features such as exceptions, delegation,
multi-method dispatch, continuations, coroutines, and currying, to
name a few. These features have proven useful in other languages and
provide a great deal of power for solving certain problems. They
improve the stability and flexibility of the language.
Many of these features are traditionally difficult to understand.
Perl takes the same approach as always: provide powerful tools, make
them easy to use, and leave it up to the user to decide whether and
how to use them. Most users probably won't even know
they're using currying when they use the
assuming method.
Features like these are an important part of preparing Perl for the
future. Who knows what development paradigms might develop in a
language that has this combination of advanced features in a form
easily approachable by the average programmer. It may not be a
revolution, but it's certainly evolution.
3.2.3 Long-Term Usability
Perl 6 isn't a revision intended to last a couple of
years and then be tossed out. It's intended to last
20 years or more. This long-range vision affects the shape of the
language and the process of building it. We're not
interested in the latest fad or in whipping up a few exciting tricks.
We want strong, dependable tools with plenty of room to grow. And
we're not afraid to take a little extra time now to
get it right. This doesn't mean Perl 6.0 will be
perfect, any more than any other release has been perfect.
It's just another step of progress.
|