Twice in the last month, I have read comments about certain problems being intrinsically hard to solve.
In a fascinating book I just started to read called Algorithms to Live By, authors Brian Christian and Tom Griffiths say:
Life is full of problems that are, quite simply, hard. And the mistakes made by people often say more about the intrinsic difficulties of the problem than about the fallibility of human brains. (p. 5)
And on the blog Walking Randomly, Mike Croucher observed:
I see [a particular] thought pattern in a lot of areas. The pattern looks like this:
It’s hard to do ‘thing’. Most smart people do ‘thing’ with ‘foo’ and, since ‘thing’ is hard, many people have experienced problems with ‘foo’. Hence, people bash ‘foo’ a lot. ‘foo’ sucks!
We run into the question of problem complexity a lot in MATLAB design. For example, many people get confused trying to write a recursive function. Is that because the language design is flawed in some way? I tend to think the root cause can instead be found in the inherent conceptual complexity associated with recursion.
That said, we always have to guard against complacency. Any time we see our users have difficulty completing their tasks, we look for ways to improve our product design.
To leave a comment, please click here to sign in to your MathWorks Account or create a new one.