<i>We don’t have a direction, a path or an overall goal for programming!</i><p>We (who do we mean when we say &quot;we&quot;, anyway?) don&#x27;t have a direction, path or overall goal for life, society, the human race and so on. I don&#x27;t even have a plan for what I&#x27;m going to have for lunch next Tuesday.<p>Programming is contingent and incremental because rationality is bounded and the future is uncertain. We don&#x27;t know what will be successful in the next few years or how the world will want to use it or what it will be prepared to pay for.<p>We can build jewel-like systems that are perfectly adapted to their use case using technology to the utmost. This nearly always results in a stranded evolutionary dead-end. The BBC Domesday Project (live video database on an 8-bit micro using PAL laserdisc!) is my favourite example, but there are many.