Hi, "Maciek Godek" <[EMAIL PROTECTED]> writes:
> The other is that in GOOPS a method is something > different than what is commonly known in OOP, The design of GOOPS is based on that of CLOS, so GOOPS is surely familiar to anyone familiar with the CLOS flavor of OOP. :-) See http://en.wikipedia.org/wiki/CLOS for details. > because a class doesn't know its methods It does: guile> (length (class-methods <object>)) $4 = 54 But unlike in C++, Java, etc., a method is not bound to the type of its first argument: method dispatching is done on all arguments and on the number of arguments as well. > There is also another issue concerning the fact that > methods are available in global namespace That's not quite true: the namespace, be it for GOOPS methods ("generics" actually) or "regular" Scheme objects, is managed by the module system. Thus, it is possible to hide generics (and, consequently, the methods they contain) from users, simply by not exporting them from the module where they are defined. > But the most important feature of OOP that is missed > in GOOPS (because of global namespace methods) is the lack > of the clean separation of interface and implementation > in the way it's done in java, C# and the like. See above. Does that lessen your concerns? Thanks, Ludovic.