理性主义和实证主义
人们通过什么样的方式认识这个世界?理性主义和实证主义是认识论的两种不同方法。
「理性主义者」认为人类具有良好的判断力,即使会犯错误,也可以通过学习和训练来完善。只要设计者有良好的教育,成熟的经验以及足够的思考一定可以设计出完美的东西。
而「实证主义者」认为犯错是人类不可避免的。所以设计者的主要任务是发现问题,并需要保证设计的作品可以不断的迭代与提高。
可见理性主义和实证主义相当对立。
❝人人都会犯错,很多时候,大多数人容易在兴趣与激情的诱导下犯错。 — 约翰.洛克
人类两种最基本的认知方法 — 直觉和推理,都需要以渊博的知识作为坚实的后盾。 — 笛卡尔
❞
笛卡尔和约翰洛克分别是理性主义和实证主义的代表人物。
很多科学家们就是理性主义者,因为那他们的理论产生就是通过严格的数学推导过程完成。比如爱因斯坦的相对论就是通过严谨的推导,在大脑中完成的思想实验。
软件的代码也可以看成数学过程,如果我们把软件开发看做成单纯的数学模型,那么我们就可以通过严谨的思考和完美的设计就能开发出一套完美的软件。
但实际上现代的软件工程理论中包含了大量实证主义的要求,比如原型迭代,冒烟测试,回归测试等。
我是一名实证主义者,相信需要不断的测试与迭代来提高工程质量,所以我们怎么在一套复杂的软件系统中检查出全部的问题,就是非常重要了。可是完善的软件测试它的难度不亚于开发一套系统,因为不仅要考虑到软件内部的可能会出现的种种问题,还要考虑到外部环境、运行系统的问题。
1993 年汉莎航空 2904 号班机在华沙机场着陆时,因为系统的故障飞机滑出湿滑跑道时撞到了尽头的矮墙,飞机燃烧,导致副机长和一名乘客死亡。事后调查发现,系统代码虽然遵循了软件设计的规范,但因缺少考虑到异常情况,以至于当在湿滑的地面降落时,系统误判定为水上滑行,没有启动制动装置,因此造成了悲剧。
可见软件设计虽然不能适用理性主义,但实证主义在软件工程的实践上也是困难重重。
版权声明: 本文为 InfoQ 作者【王泰】的原创文章。
原文链接:【http://xie.infoq.cn/article/56fe77dca0bf26f6e4ee0b624】。文章转载请联系作者。
评论