
I wish there was a racket FAQ I could post on reddit. starting questions; REPL, Hygienic Macros, Performance, object/class system, etc.

Consider writing a blog.

I’ll probably do a wiki page, so others can correct my mistakes.

@wcbrown has joined the channel

I learned to really appreciate OOP when I tried some Smalltalk, was almost as enlightening as learning Scheme.

Ideas from Eiffel also helped!

Remember that these days there’s (at least) two largely-different concepts of OOP: The Alan Kay/Smalltalk approach, and the C++/Java inherit-all-the-things approach. The latter is the unpopular one, and the former isn’t very well known (apart from old-school Apple devs - I believe Objective-C included such an approach as part of its core). The point being that while Smalltalk is called OOP, it doesn’t resemble what people who say they hate OOP are usually thinking of. I’m not sure about Eiffel, but I suspect that it’d be similar, especially going by what I remember of a presentation by Bertrand Meyer of its SCOOP concurrency construct.

Smalltalk actually invented “inherit all the things” which is why other ideas like traits were developed to encourage sharing of behaviors outside of inheritance. Smalltalk and Java (ca 2000) are not that different aside from closures, types, and the degree of metaprogramming.

I never really got into C++ so I can’t comment on it.

From what I understand of Smalltalk (I’m no great expert though), it didn’t end up doing the same sort of thing that C++ (which led to Java taking it even further) did which makes people hate what they think is OOP.
Ultimately I think really the problem, much more than anything else, was that certain aspects were taken too far and became holy laws you weren’t allowed to deviate from, even when sticking to them was by far the worse idea.