Adding a new design constraint to D
Paulo Pinto
pjmlp at progtools.org
Sun Jun 19 06:46:17 UTC 2022
On Sunday, 19 June 2022 at 06:22:57 UTC, forkit wrote:
> On Sunday, 19 June 2022 at 02:39:52 UTC, Paul Backus wrote:
>>
>> ...
>> If you are willing to bite the bullet here and say that CLOS
>> is "not OOP" because it lacks encapsulation, then fair enough,
>> but at that point I think you must admit that your idea of
>> what counts as OOP is not shared by most developers (including
>> Alan Kay himself, who cited Lisp as an example of OOP done
>> right).
>
> I know nothing of CLOS.
>
> A quick read of CLOS wiki, and it seems you can turn a ceramic
> aardvark into a graceful Old World ruminant, at runtime!
>
> That doesn't sound like my understanding of the open/closed
> principle, which is what most of us (I guess) would associate
> with OOP.
>
> i.e.
>
> "Software entities (classes, modules, functions, etc.) Should
> be open for extension, but closed for modification."
I advise getting a copy of The Art of MetaObject Protocol, a CS
OOP literature gem that describes the genesis of CLOS.
https://en.m.wikipedia.org/wiki/The_Art_of_the_Metaobject_Protocol
Additionally a look into LOOP, the Xerox PARC Interlisp-D based
OOP, used on their Lisp Machines variant.
https://www.softwarepreservation.org/projects/LISP/interlisp-d
Or speaking of them, the Flavors system,
https://en.m.wikipedia.org/wiki/Flavors_(programming_language)
As I already mentioned on the other thread, CS literature is full
of various understandings of what is OOP all about.
More information about the Digitalmars-d
mailing list