Danger’s my middle name.
In fact rather than being subtitled “Elements of Reusable Object-Oriented Software”, it should have been “21 reasons C++ sucks; 1 embarassment; and an Abstract Syntax Tree”.
Wow, this may be the most serendipitous page I’ve come across on the c2 wiki. It starts with strategies for when generalization is okay, leads into caveman number systems, how many objects the brain can recognize without counting, God as Lisp programmer,
This one is kind of weird but it shows another kick ass capability dynamic languages have: changing and object instance’s class (behavior) at runtime.
Pretty reusable implementation of the Chain Of Responsibility pattern in Python. Very clean.
I’ve always wondered if this was a recognized issue. Premature Generalization (or Abstraction) is like Premature Optimization but is about having too many abstractions in OOP systems.