4 ms·
Making reasonable compromises is certainly important. But I think software engineering is different, because the state spaces of programs -- particularly large
by ScottBurson 9y ago
Making reasonable compromises is certainly important. But I think software engineering is different, because the state spaces of programs -- particularly large ones, but even most small ones -- are astronomically larger than those of any other kind of engineered artifact. Most procedures contain one or more conditional branches, which test some aspect of the state of the system and then take one or another action based on that. If you're not careful, you wind up with a system where you have to think about all of those conditionals at the same time, which becomes exponentially difficult as the system grows. Other kinds of engineering certainly involve complexity, but they don't involve this much complexity.