Can you elaborate on this OOP for big code bases argument as I&#x27;ve seen it wheeled out in defence of Java and PHP5 many times but I just don&#x27;t buy it. Often classes in OOP languages are used not for instantiating objects, which I would argue is their raison d&#x27;etre, but simply to encapsulate some data and a bunch of methods. What advantage does this have over simply using your language&#x27;s namespacing properly? In Clojure and Python, for example, it&#x27;s easy to place a bunch of functions in a single file, add a namespace and you can manage a codebase of any size. When PHP introduced namespaces in 5.3 I couldn&#x27;t understand why its Java-esque OOP was still so idiomatic as they solved the main problem it was invented for.