I'm somewhat glad he's writing it...
OOP has become a "bad word" the last 5 or so years as newer programmers tend to favor data flattening and transformations in a map/filter/reduce style.
I've had discussions about OOP with competent programmers before and my counter is always "Ok, you say OOP is 'bad' but which notion of it"?
This is usually met with the C++ or JavaScript lineage of it. And then I go into CLOS and Smalltalk notions eventually dipping into implementing it in Scheme from nothing but lambda.
Without going into it too far, Clojure and Lisps descended from it outright reject OOP culturally favoring more poorly defined hash table blobs passed around 3rd party libraries.
My concern grows as this continues. Lisp should enable ANY paradigm the programmer sees fit to explore in his approach.
Historically we've seen Lisp OOP (In at least 6 forms LOOPS, CLOS, Flavors, SRFIs, Racket, EIEIO), we've seen Logic/Rules programming, we've seen Functional Programming.
Looking back to Scheme (a very minimal language), there are solid examples creating forms of objects with owned methods from simple closures and nothing more.
I think the Scheme example is particularly good because Scheme is essentially a camping trip in the woods with a pocket knife and hatchet.
You can draw an "object system" from the primordial pool of conses and lambdas. This is different from a Class system baked in.
This is a toy, it doesn't approach the depth of the examples in the book. Hopefully my comments are good-enough-p.
https://pastebin.com/D2UmpBjiI could probably do the same exercise with Interlisp currently - dipping into Common Lisp's
lexical scope (FUNCTION would have also worked but alas the second
argument is dropped now).
As a back of the napkin exercise, I did make a small example of OOP in Clojure adhering to the bizarre cultural rules of no mutation and no classes.
This is not a whitepaper grade demonstration but it was meant to make people feel a bit uncomfortable about their rejection of OOP as I made a pure Functional form following the proper dogma.
https://github.com/RyanBurnside/verbotenSincerely,
Ryan