SystemNavigation and deprecated methods

Andreas Raab andreas.raab at gmx.de
Fri Aug 15 21:30:51 UTC 2003


Hi Daniel,

> Actually, this example sounds like a good argument for
> stratification. What's a better and more natural "switch"
> than to do myMirror _ ClassMirror on: self. and from there
> on use myMirror? it doesn't seem much longer than a
> method annotation. The use of ClassMirror is a very clear 
> signal of what meta aspect(s) you want to access. No new syntax/
> semantics... again, this is far from immediately applicable to
> Squeak, but while we discussing theoretical examples, I'm not
> sure why stratification can't/shouldn't happen in vanilla squeak,
> exactly through the extra indirection.

Well, there is a short and a long answer to this. I'll give you the short
one since I am slightly tired right now. In short, the use of ClassMirror
_is_ new semantics for a user who has been tought that it is Good Design to
give responsibility to objects which they carry out themselves. The
introduction of mirrors in the way described here is a concept which does
not follow "regular" OO responsibilities. What is more natural than to ask
an object directly some question? Why would you have to introduce a
third-person indirect query to some object which apparently has no relation
to the object you are interested in? From a naive users point of view the
use of mirrors is VERY non-OOP. If we would presume that this style of use
were common in OOP then we may, equally well, program only in terms of
mirrors and I think we all agree that this would be quite against what OOP
is all about - responsibilities given to objects themselves rather than to
third parties. So in this sense, the use of mirrors is not at all what I
would consider a "natural" switch of perspective here.

Cheers,
  - Andreas



More information about the Squeak-dev mailing list