FLAWED: Why we use SOLID in static languages and how we get the same functionality for cheap in dynamic languages

I know that dynamic languages like Ruby and Python give you things that you can't get  with languages like C#, and as a SOLID advocate those things seem important, but... why do I go cross-eyed when I read Python and Ruby examples?  

The quote right there is from the first comment on the article.

The article is actually decent and well-written. It's just the flaw is that it's advocating dynamic languages. I get how "monkey patching" is great for testing. But having to read and understand a large project in Python would make me go cross-eyed too. Dynamic languages are anything but well-defined.

Dynamic for test: YES
Dynamic for real world projects: NO