|Think about Loose Coupling|
Re: Re: Re: Re: Apocalypse 12by TheDamian (Priest)
|on Apr 18, 2004 at 22:11 UTC||Need Help??|
disregard pretty much the whole thing.Well, no. It provides some useful hints as to where there are genuine fears, uncertainties, and doubts. As do the other replies in this subthread. Much appreciated.
The comment was based on thinking about what potential impact this might have on the code of folks who like to use every language feature in every file of code they write.That *is* an issue. But we've taken the view that there's no way to legislate against that kind of...err...over-enthusiasm. Restricting its feature set doesn't stop fanatics from abusing a language. If anything, it encourages them.
On the other hand, the professional programmer – like the professional auto mechanic – needs a wide range of tools. Some are very general, and used all the time; most are highly specialized and only occasionally needed. But when those highly specialized tools *are* needed, they can make a huge difference in how easily, quickly, and competently an unusual task can be accomplished.
Perl 5's OO took the minimalist approach. It used the pliers of packages, the screwdriver of subroutines, and the hex-key of hashes to do most of its work. And that was fine.
But it meant that when you really needed the electroplater of encapsulation, the compressor of composition, the multigrips of multiple dispatch, the die grinder of delegation, or the router of redispatch, then you had to cobble together your own (or else download "an approximation from the...modules of CPAN" ;-).
In designing Perl 6 we wanted to provide the complete OO toolset: better standard tools for everyday work, and much better specialized tools for unusual situations. Even if that means that some folks will misuse our lovely new counter-reciprocating 3/4 Whitworth flange-wrench as a hammer.
*That's* a problem that can only be addressed by educators, not toolsmiths.