In defense of complicated programming languages
&gt;Encapsulation, modularization, abstraction - let&#x27;s not pick nits about the precise meaning of these terms, they are all about the same thing, really: Managing complexity of your own code.<p>The thing is, code complexity can be managed superbly without the concept of a class.<p>Golang doesn&#x27;t have classes. C doesn&#x27;t have classes. But both have structs and they have functions taking a pointer to, or a struct of type T. (what OO calls a &quot;method&quot; for some reason). So we can have &quot;objects&quot; as in, custom datatypes, and we can have functions to act on them.<p>And on top of that, we have modularization in libs and packages.<p>So, why do we need more complicated languages? &quot;Show a locked door before you show a key&quot; indeed.