From: Mathieu Bouchard Date: 2003-11-24T02:22:31+09:00 Subject: Re: Cascading class definitions effect objects On Sun, 23 Nov 2003, T. Onoma wrote: > Analogous to the real world: when I make a cookie with a cookiecutter, all my > previous cookies do magically change because I later change my cookiecutter. If you want a suitable analogy for your real world: when you realize that a cookiecutter can cut cookies, then you think of other cookiecutters as able to cut cookies. I think it's important to discern our models of the real world from what the real world really is. It may be difficult, as we only do see the real real world through our models of it. In the real real world you don't have kitchen apparatus change behaviour in magical ways, but our model of a certain object is can change our way of conceiving it and using it. I think that, in the blossoming of OO techniques, one very important reuse that has been achieved is the reuse of common forms of human reasoning. This is why OO may look more "natural" and "real world" than procedural programming. But by "more natural" we mean "more human", and by "real world" we mean the abilities to compartmentalize, to categorize, to modularize, to interconnect, to abstract, to generalize, as we are used to apply them in thinking about (and solving problems in) everyday life. The programs that are written are very much part of reality, and it doesn't matter how much nonphysical they are. What may make programs less real is how as a shorthand we name objects in a program as if they were the things out of the program that they represent. For example (to use an overused example), if you name a student record class as StudentRecord, then you are not virtualizing, but if you call it just Student, then you are, in some way, playing make-believe that the Student is really in the program. Of course no-one is _really_ mistaken, but still, some subtly mistaken reasonings can arise, if analogies with the "real world" are taken too far. ________________________________________________________________ Mathieu Bouchard http://artengine.ca/matju