软件更像是科学而不是数学。数学表达式是可证明的,科学理论只是可表明的。数学是演绎的。科学是经验的,软件也是经验的。我们可表明,但不证明正确性。
Software is more like science than mathematics. Mathematical expressions are provable, scientific theories are merely demonstrable. Math is deductive. Science is empirical. Software is empirical. We demonstrate, but do not prove, correctness.
banq评论:软件是经验的,也就是通过经验积累表明只有某些方式行得通,但是无法证明为什么只有这种方式才行得通,后者是因果关系的证明,是数学问题。通过不断失败摸索,将软件系统扶上墙运行起来了,然后开始烧香拜神,不要死机啊!这些都是经验的特点。
鲍勃大叔是软件工程与MF齐名的大师,他们的观点与麻省理工等学院派还是有些区别,学院派更注重算法和数据结构,这两者偏重数学,而经验派偏重最佳实践,只有这条路好走无疑是最佳实践,是模式,上升为框架和架构。