libera/#commonlisp - IRC Chatlog
Search
9:48:35
akater[m]
Yesterday I had a little conversation about CLOS usage in Emacs. And I formulated something I've been thinking about for a long time. The purpose of Lisp object systems — at least Flavors and CLOS — is to enable modular design via flexible and predictable code reuse. When you don't reuse code by means of inheritance and don't see how and why it would happen, there is no point in using CLOS, at all. Agree?
9:51:24
semz
Code reuse need not happen through inheritance specifically, generic functions can do that just fine.
9:53:10
beach
akater[m]: Also, people may avoid code reuse and may fail to see how and why it could happen, out of ignorance. Ignorance is a bad excuse for avoiding CLOS.
9:54:12
White_Flame
especially since CLOS goes way more powerful than typical simplified object systems
9:54:58
semz
I'd actually say that inheritance is the most overrated aspect of OOP. I rarely ever find myself using it. There's also the aspect that classes are redefinable at runtime while structs are not, but this is more of a CL quirk than anything general.
9:56:35
borodust
etimmons: hmm, it seems for quicklisp type of a source, clpm expects there to be present *-versions.txt file
9:57:51
hayley
Inheritance is one way to get mixins, which are underrated (though perhaps over-represented in CLOS).
10:00:27
hayley
I admit I made too much spooky action at a distance for myself by using :after methods to achieve some sort of "reactive" programming. But it was only a problem because I need the behaviour of a concurrent program written down in (close to) one place so that I can model it.