Pretending OOP Never Happened
Usually when I see somebody arguing against object-oriented programming, I don&#x27;t see them arguing for functional programming, but instead arguing for procedural (like Cobol, Basic, or Pascal) programming.  What they usually miss is that there&#x27;s a reason procedural programming was abandoned some time around the mid-90&#x27;s, and for good reason: you can&#x27;t realistically develop useful software in pure-procedural way without introducing a lot of global state.  Even if you look at well-designed non-OO code like, say the Linux kernel, you&#x27;ll see that there are object oriented concepts like information hiding and polymorphism all over the place; they just don&#x27;t formalize them with the &quot;class&quot; or &quot;private&quot; keywords.  Unfortunately, what I see most programmers do is give up on OO design (and never even consider FP) and instead create global state that they call &quot;singletons&quot; to pretend that they didn&#x27;t just create a global variable.  Because, as we all know, global variables are bad, but too few of us actually remember why.