[ 14/9/20 ]
Reality does actually seem to be complex.
What we need is programming languages that give power, and coders who understand when it is powerful to constrain that power and when those constraints need to be relaxed.
That is always (eternally) going to be a contextually defined set of conditions, and there will be potentially for indefinite extension of the levels of complex systems present. The driving style required for crossing an 8 lane city highway is very different for that required to get a 4WD across a fast flowing stream safely. Both can be require of the same vehicle driver combination in the same day – same goes for us as programmers.
The relevant constraint sets are very different.
In the same day I can be coding for a low power field data recorder for wildlife studies, or for secure transfer of property rights via a government mandated set of cloud based protocols, or a wide range of things in between.
If biology has one lesson we all need to learn as programmers, it is that context is always relevant, and context can change very quickly. Reality normally punishes slow response to rapid change far more harshly than slightly inappropriate responses (at all levels of biology). As human beings we are enormous collections of multiple levels of such heuristic hacks. It seems to be what actually works – in reality. Reality has this disturbing property of sometimes changing in ways that are not predictable or foreseeable. The only appropriate response to such uncertainty is diversity.