[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]


Dick Gabriel writes:
>I've put my Debunker team on this problem. Here is the latest version of
>the law (I wonder: Will the people whose comments on the law alter it be
>made co-authors on the OOPSLA paper?):

The Law of Demeter for CLOS is the generalization of the Law of Demeter
for message passing object-oriented systems. While the text of the 
Law of Demeter for CLOS has changed based on feedback from the CLOS developers 
and users, the intent of the Law has not changed. The OOPSLA paper:
"Object-oriented programming: An objective sense of style" is
about the Law for message passing systems and devotes only one paragraph
to the CLOS formulation of the Law. Therefore, we find it appropriate to
acknowledge the contributions of the CLOS developers/users in the 
acknowledgement section of the paper.

Dick Gabriel further points out that inline expansion destroys adherence
to the Law. Yes, that is expected. What we need is a smart compiler which
finds the suitable inline expansions automatically. Nothing is for free:
When you follow the Law, you tend to get more methods (see the OOPSLA 
paper for further discussion).

The only way to convince yourself of the benefits of the Law, is to
take a 1000 line CLOS program which contains many class definitions
and make it satisfy the Law. Some programmers will note that they follow
the Law without conscious effort and other will be surprised how their
program gets improved. We have done this exercise with a good part of
the 14000 line Demeter system. 

-- Karl