He has a point for smaller-scale programming. Certainly, even when designing part of a larger system, one should aim to be as clear and well-structured as possible.<p>But beyond a certain scale, complex systems, including complex software, must be grown and not master-planned. This is one of the main advantages of iterative design and development.<p>Organic life passed this level of complexity long ago. Yes, evolution is dumb enough that it has passed up some obvious improvements. But humans are not (at least not yet) so smart that they could design even a bacterium from scratch, without resorting to iteration, and trial-and-error.
I think the argument is totally flawed. Brains and eyeballs are biological. Perhaps biology is more bottoms up than top down or more like generate and test, yet it produces systems of incredible complexity that are remarkably robust. For example a human heart beats ~ 1 billion times, I've yet to see a human designed and architected pump do that. We just don't understand very well yet how the liver and pancreas work and western medicine is particularly weak in taking a holistic or systems view to the body.<p>Software, bad or good, is not like biology and it's not like construction. Software is mathematics.
I don't think that characterizing biological systems as having no order whatsoever is exactly accurate. I understand the point he is making, but I'm not sure the parallels hold up particularly well.
-> <i>"A good developer would never put the end of the digestive system right next to the start of the reproduction system - not even if that would require fewer lines of code (which it undoubtedly did)."</i><p>Whatever point he's trying to make in this post - and I'm not going to take the time to try to figure it out - I'm sure there's a simpler way of saying it.