The problem is that when people get told to cut a board to 1 meter and we get handed a .5 meter board we say "fuck you" the program on the other hand needs to be explicitly told how/when to say fuck you, and it needs that for basically every single possible source of error.
That doesn't fit into either of your categories really but it's where so much of the actual complexity comes from.
That doesn't fit into either of your categories really but it's where so much of the actual complexity comes from.