There are other OO critics out there that may be more to your liking. Casey’s main point is that performance should be considered an important architectural factor and that Martin’s flavor of OO doesn’t care about performance at all. And Martin actually agrees with this. If you never needed to move more than 500 sprites at once, then performance might not be high on your priority list and you may consider what Muratori says to be irrelevant. However his criticism extends far beyond that. He in fact managed to show that “Clean Code” doctrine is bad in respect to other classic architectural “benchmarks”, like scalability for example.
Here’s an epic exchange between Casey and Uncle Bob. It’s a worthy read if you can endure it. As it unfolds, Muratori slowly and methodically dismantles Bob’s doctrine to pieces right in front of his eyes, on a real world example, basically proving that “dirty” enumerant-switching based architecture beats “clean” virtual call class hierarchy in both: cpu-cycles and “programmer-cycles” (Martin’s term)
part 1
part 2
Bob backed off from the discussion in the “agree to disagree” fashion at a point where it became obvious that Muratori is right.
If you can’t be bothered to read, here’s a nice commentary video:
Uncle Bob is a great showman, a convincing communicator and a decent writer, but he’s not that good of a software architect. It’s a dangerous combination as he can easily mislead many people into unknowingly becoming crappy architects themselves.
Needless to mention that due to Bob’s popularity, his design/coding philosophies probably permeated LLMs in a big way, spreading the “damage” even further.