Software Complexity
On this weeks episode of ATP John Siracusa clarified his stance on the relative complexity of programming.
I agree with his reasoning but not his conclusion. First I'll restate the conceit.
A) The product of physical engineers is better than the product of software engineers. B) Given the exponential advance in software engineering A cannot be explained by a wealth of experience argument. C) The best software engineers are not lazy or stupid compared to their physical engineer counterparts D) Given A while B and C, software engineering is more difficult than physical engineering.
John's explanation started with the concept of abstraction. I think it's easier than that; I'd have started with the word soft.
Physical engineering such as building a bridge is confined to the physical world - to the laws of physics.
Software is just that - soft, virtual and crucially entirely imagined. In physical engineering there are objective “rights” and “wrongs” given a specific task. Not so in software, the entire stack is imagined by human brains. This explains the difficulty inherent in software engineering. The only rules are imagined ones and those rules could be flawed.
I think until now I'm agreeing with John. Here's where I disagree. I think all soft human endeavours are comparably difficult. Politics, economics, even simple written and verbal communication. John of all people must appreciate this, the very reason the topic was revisited - complexity of human communication.
Matt













