4 ms·
Smalltalk (which was a revelation to me when I played with it on Tektronics and Lisa) which the author mentions as a "real" OOP language, is actually a good exa
by thelazydogsback 7y ago
Smalltalk (which was a revelation to me when I played with it on Tektronics and Lisa) which the author mentions as a "real" OOP language, is actually a good example of a code maintenance nightmare as a is one of those languages that promotes "image saving"-based incremental development in the context of some unreproducable soup of classes. Also its single-dispatch nature (copied by most non-Lisp OOP systems) makes the intended receiver (and dynamic casting semantics) rather arbitrary.
Any extremeism/fundamentalism taken too far tends not to work - and oop got just ridiculous at one point.
It's also not just the idea, but how it is expressed and the level of abstraction that can be brought to bear. Unfortunately, Java, being a "class-orientated language" rather than an object-oriented one (not my original observation/coinage) and not supporting lambda/closures, etc., was both the reason and solution that we needed these baroque oop patterns in the fist place. (Even C# 1.0 had delegates before proper lambdas and didn't require realized nested inner classes to represent event handlers, etc.) Java's verbose solution to the simplest problems was (is?) frustrating, and is only matched by C++'s complex semantics of copy/assignment/... ctors and value/reference semantics which is more clearly make explicit rather than implicit in a vanilla C program.