Beefy Boxes and Bandwidth Generously Provided by pair Networks
laziness, impatience, and hubris

Re: TMTOWTDI... and most of them are wrong

by TimToady (Parson)
on Jun 27, 2005 at 02:39 UTC ( #470140=note: print w/replies, xml ) Need Help??

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

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://470140]
[ambrus]: choroba: heh heh... I have such a doc bug report somewhere. fixed by now.
[Corion]: Once upon a time I had automatic tests for checking the synopsis, but I stopped doing that because the setup was too fragile on CPAN testers for extracting code from the SYNOPSIS.
[Corion]: Maybe I should move the extraction of the code from the SYNOPSIS section into the author tests, or something like that...
[choroba]: Corion Sounds reasonable
[Corion]: choroba: Yeah - I basically have the same for regenerating README and README.mkdown already, except that I do that in Makefile.PL, but I guess one or the other thing should somehow work ;)
[ambrus]: was this bug: https://rt.cpan. org/Public/Bug/ Display.html?id= 59814

How do I use this? | Other CB clients
Other Users?
Others browsing the Monastery: (8)
As of 2017-02-27 12:12 GMT
Find Nodes?
    Voting Booth?
    Before electricity was invented, what was the Electric Eel called?

    Results (383 votes). Check out past polls.