4 ms·
That's the point. It's far easier to simply tack on more code to special case something than it is to come up with a simple solution that will gracefully handle
by orib 18y ago
That's the point. It's far easier to simply tack on more code to special case something than it is to come up with a simple solution that will gracefully handle all input.
To take your example of the Windows scheduler, I would expect that the reason that they made it special-case the foreground app instead of coming up with a more generic, algorithm with better interactive performance was because it would have required more hard thinking. (Of course, I can't say this for sure without seeing their code)
This is also the same reason that a beginner's code will be so convoluted. They try to handle everything through adding more complexity in special cases, instead of stopping and thinking about how to orthogonalize the code, making a simpler algorithm.
The same argument applies to UIs -- its far easier to add an option than to make a tool more generically useful. It would be far easier for google to add textfields to their UI for specifying the sort of searches you want to do more clearly than it would be for them to improve their pagerank algorithms.
Things need to be as simple as possible, but no simpler, and simplicity is usually far harder to achieve than complexity for a given problem.