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