Clarity is hard to define. You seem to argue that a simpler language such as C gives rise to more convoluted code while more complex languages such as Java can deliver more terse code.<p>That&#x27;s not always the case. Take GUIs for example. In pre-C++&#x2F;Java times the user interface declaration was often data. Now it is code. Whatever data is still necessary to function, such as button texts, are now object attributes. That code can then grow functionality and that&#x27;s when you get non responsive UIs and hard to debug callback spaghetti. So things are done differently in less expressive languages, but it&#x27;s hard to argue it&#x27;s less clear in the general sense.<p>Another example is &quot;application servers&quot; and the rise of enterprise programming where object factories instantiate other objects in order to keep dependencies unidirectional. In a more simple language none of that would exist, and that particular problem would not be there to solve. But would it mean more complex, and perhaps unique, solutions elsewhere in the software? I&#x27;m not sure. Git won out over the more engineered and more complex alternatives for example.