in reply to TMTOWTDI... and most of them are wrong

I think Anno has a very good point, and it is certainly something we have been thinking about a lot in the design of Perl 6. The Damian quote is good as far as it goes, but you have to allow for the fact that it was written more than four years ago, in explanation of one of the earlies Apocalypses, back when people were still in a panic that things were changing too rapidly. Heh.

Anyway, if you read up on the design of Perl 6 since then, you'll discover a lot of things that will (hopefully) make Perl 6 a good language for both the wizards and the non-wizards. There's a lot of power in Perl 6, but we've tried to add that power in such a way that people just trying to get their job done are unlikely to fall into traps. In particular, the entire OO design is based on the notion that there should be one fairly complete and fairly standard way to do OO in Perl 6, so that people aren't obliged to roll their own OO systems. The hooks are still there underneath to break out of that, but ordinary folks aren't going to be tempted to do that if the standard way is nice enough, and just sort of "lays under the fingers".

Perl 5 has a lot of power too, but it tends to make all the options equally likely. It's almost too orthogonal in that respect. In contrast, Perl 6 gives you a default OO system, a default switch statement, a default exception system, a default grammar system, and so on. It gives you standard ways to extend the language without negatively impacting other people's code. Concepts that are confusing in Perl 5 because of excessive overloading are detangled in Perl 6 by use of separate keywords or operators. You can define your own operators, but we try to give you most of the operators you need by default so that you don't need to define your own except for specialized needs. And, of course, strictures and warnings are on by default (though you can still turn them off).

In short, Perl 6 is designed to be just as good for small programs, and much, much better for large programs. People can still write screwed up Perl 6 code and put it into CPAN, but it won't happen by accident nearly as often as it does in Perl 5, and even when it does happen, you'll be much better isolated from its effects because Perl 6 takes lexical scoping much more seriously than Perl 5.

Since the language is designed to much more mutable, it's actually quite likely that stricter subsets of Perl will develop and be enforced by local policy. I doubt ANSI will ever get involved, though. If such a dialect arises it will be by common consent of the community that uses it, not because some standards body decided it knew was good for the community.

  • Comment on Re: TMTOWTDI... and most of them are wrong