I think there&#x27;s a kind of naive reductionism that runs throughout CS.<p>You can avoid complexity by ignoring it in the proverbial Dunning-Kruger kind of way - where you don&#x27;t know what you don&#x27;t know, but you try to turn your toy misunderstanding of some domain into code anyway.<p>Or you can avoid it by creating over-systematised technologies that try to barricade &quot;impure&quot; unpredictability behind a big wall of abstraction and insider-only jargon.<p>They&#x27;re both defensive moves against the messiness of the real world.<p>There may be other approaches that trade off accessibility with useful results in other ways.