[Late reply.] On January 23rd, Matthias Felleisen wrote: > > On Jan 23, 2014, at 2:38 AM, Patrick Useldinger wrote: > > > 2) My (unqualified) first impression is that the OOP layer in > > Swindle is way more powerful than the "standard" OOP layer in > > Racket. Is there a reason why Swindle has not become the > > standard OOP layer in Racket? > > Racket, at the time PLT Scheme, came with an OO system of its own > from the very beginning. It was an integral piece of the system, > added in support of the GUI component. By the time Swindle was > added, this OO system was on its second iteration and may have been > on its third one. > > Also keep in mind that expressive power comes with a significant > cost. It really is a trade-off. > > I will let Eli respond to the first question, concerning the state > of the docs and his continued commitment to Swindle.
It's "weakly supported" in the sense that it works and will likely continue to work -- but it could use some work in revising it to support more types that have been added since it was written. But note Matthias's comment about the cost: one aspect of this cost is that the kind of dynamic dispatching that Swindle is doing can be very slow, even with some optimizations that it's already doing. A more "severe" kind of cost is the fact that CLOS is inherently doing a side-effect whenever you define a method via `defmethod' -- when you do that, it actually is not defining anything, but rather creates a new method and adds (using mutation) it to the list of methods contained in a generic function. This means that you can get things to behave in a surprising way and also break other people's code -- and that's in addition to the usual kind of code spaghetti that OOP gives you. -- ((lambda (x) (x x)) (lambda (x) (x x))) Eli Barzilay: http://barzilay.org/ Maze is Life! ____________________ Racket Users list: http://lists.racket-lang.org/users