阅读作业2
No Silver Bullet: Essence and Accidents of Software Engineering
开篇这句话非常喜欢——The first step toward the management of disease was replacement of demon theories and humours theories by the germ theory——不能害怕,不能轻敌,战略上藐视敌人,战术上重视敌人才是王道。
看完了这篇文章,最大的感想是,我们为什么要找到这个silver bullet?
硬件上的花销越来越小是一种必然,科学的发展提供了更廉价和耐用的材料,技术的进步使用更小的成本以更快的速度生产更好的产品成为了可能,所有的硬件生产者的核心竞争力就体现在谁能做出更好更便宜的东西。
而软件呢?随着计算机的应用越来越深入,各种各样的用户对计算机提出了各式各样的要求,所以软件必然要复杂化,简单的软件满足不了用户所有的要求必然会被淘汰。
希望软件像硬件一样发展这本身就是一种病态的想法。就像科学发展的终极目标是统一,是用一个最简单的方程表达最复杂的事物;而艺术发展的终极目标是发散,百花齐放百家争鸣。
就像作者说的,本质的问题无法解决,所以不可能找到这样的silver bullet,不可能从根本上解决问题,一劳永逸,每开发一个新软件,就一定会遇到这些问题,所要做的就是针对具体情况找到好的解决办法,并积累经验和教训。适者生存。
The Cathedral and the Bazaar
大教堂的模型:在大教堂模式中,每一个版本的源代码都是可以被用到的,但是在不同版本间的已经开发好的代码被限制在一个专有的软件开发团队中。
集市的模式:在集市模式中,代码的开发是通过互联网以大众的视角来开发的。
大教堂的模式适合专业的以营利的软件公司采用,一个版本一个版本的推出可以一次次的收益,为了收益的最大化,就要有单一的开发商;而集市的模式更适合学习开发软件和追求进步喜欢探索的编程爱好者使用,人多力量大,更多的人一起交流一起改进会使软件更完美,但是,不可避免,收益也会少很多。个人认为,两种模式存在本质的差别,一个追求收益,一个追求软件的完美,非此即彼。