It's so easy. Use the right tool for the right job and all that, right? We all know this. But do we really believe it?
Bram seems to be advocating thinking in a requirements driven way. Take the requirements, empty your mind, then work on creating an architecture. Know what the real goal is, and forget everything else.
It's not about a prison for your mind, it's about the prison of your mind. You've øwned yourself, there is no spoon.
This approach is similar to what Chuck Moore does with his Forths. His motivation is brutal simplicity, also driven by well defined requirements and the willingness to dispense with anyone and everyone's favorite sacred cows. Do not generalize unecessarily, do not try to solve any problem except the one you are actually supposed to solve. Do not waste time trying to use other people's code, or even your own old code. Refactor, refactor, refactor.
Of course, the general consensus on Chuck Moore (from those that have even heard of him) is that he's kind of a nut. After all, he claims that his approach pretty much solves The Software Problem, and we all know that there is no silver bullet.
There are some smart people working on The Software Problem.
Is it really a Zen thing? Are the biggest barriers the ones you yourself have carefully built up in your own head? It seems possible. After all, we're talking about the thinking involved in writing software here, not levitation. It's all mental.
What if the requirements are bad, or constantly changing? Isn't that the reality in most of the software business? Or is the reality that software written for the large and complex - and thus poorly defined and understood - general case will always do things that we don't expect and don't like in the real world? What would happen if software businesses told their clients as much? Would they simply lose the job to someone who was happy to charge lots of money for what the customer thinks they want? Is off the shelf software more cost-effective than custom software, or does it just distribute the costs so much that it makes it easier to ignore the real problem?
If the customer is always right, does that mean that they are also responsible for what they ask for?
Or are there a lot of programmers who truly believe that the perfect general abstraction scheme is just over the next hill? Is it perhaps often the downfall of the intelligent that they become too comfortable with complexity and learn to court it for its own sake (and/or for simple historical and personal reasons), even when it is not necessary, or even detrimental?
Is software (or life for that matter) complex, or is it what we make of it?