Rob Kinyon skribis 2006-01-19 9:15 (-0500): > OOP is all about black-box abstraction.
This is probably the fundament of our disagreement. OO is about objects, which CAN BE but DO NOT HAVE TO BE black-box/opaque. It is customary, and good style, to treat objects as black boxes, but their actual implementation can differ, given proper abstraction. > To that end, three items have been identified as being mostly > necessary to achieve that: I'd say these are extremely useful and highly desired, but theoretically optional. > P5 excels at #1, does #2 ok, and fails completely at #3. Now, one can > argue whether the programmer should make the decision as to whether > strong encapsulation is desirable, but the point is that you cannot > create encapsulation in Perl that someone else cannot violate. Neither can you in any language that lets you poke into its internals. However, that means that the internals define a property of the language, which I think is reversed logic. > it seems silly (to me) to cripple P6 out of a misguided effort > to maintain backwards compatibility with P5. It's as useful as Inline::Java. That means different things to different people. To me, it means I can re-use code more easily. Juerd -- http://convolution.nl/maak_juerd_blij.html http://convolution.nl/make_juerd_happy.html http://convolution.nl/gajigu_juerd_n.html