| No, because there isn't one way of doing OO. Just go read the Xerox PARC papers on how to do OO in Lisp, for example. Back when OO was new there were multiple ways of how to do OO. Some languages used the Smalltalk approach. Others took the Simula approach where objects were an evolution of modules that could be extend and manipulated. And there were lots of other options scattered around OOPSLA papers. What happens is that there are now a couple of generations of new developers that didn't live through the procedural to object oriented programming revolution, nor were doing their CS degree in those days, so many understand OO as C++, Java et al do it and think no other way is possible. The way Lisp does it, is quite common in the OO languages that offer multi-dispatch in method binding. Since all method arguments types are used in the method resolution, it doesn't make sense to bind the methods to a specific object. LOOPS and CLOS books/papers are pretty clear that they are doing OOP. |