Complexity should scale.
If it does, then simple things are easy and complex things are hard.
If, when it is simple, there is some degree of extra complexity that is making it hard, then it is likely artificial complexity that can and should be removed somehow.
Reducing complexity is tricky. You can reduce it by hiding it, but while that pulls it out of focus and encapsulates it elsewhere, it does not reduce the overall complexity.
You can reduce complexity by normalizing. That works really well, but if you take it too far, while the complexity is gone, it is harder for humans to understand it. We seem to have our own necessary baseline for intrinsic complexity.
If there are ‘gaps’ and ‘overlaps’, they add artificial complexity, but for ‘gaps’ they seem to be indirect complexity. It’s not what is there, but instead what is missing, so a negative form of complexity.
Some artificial complexity is redundant. You can remove it without change to the surroundings. That is the easiest form of complexity to remove.
If you are going to optimize the complexity of something, you would start with simple examples and reduce them as much as possible. Then gradually scale it up to the extremes, while ensuring that the associated complexity scales in a similar manner.
No comments:
Post a Comment
Thanks for the Feedback!