开源的魅力——《梦断代码》读后感

Bugzilla 项目在进行过程当中陷入了大量 bug 的漩涡当中,自计算机时代的黎明以来,其实并未取得多少进展。计算机先驱莫瑞斯●威尔克斯( Maurice Wilkes )”回忆起1949年他在英国剑桥工作的情形,在拖着打孔纸带上楼给雏形计算机EDASC装载程序时,他看到了未来:“我强烈地意识到,生命中剩下的好日子,都将耗费在给自己的程序找错误上头。”从威尔克斯的时代直到现在,尽管有那许多创新,程序员却- -直陷于调试除错之苦境。工作中只有百分之-的灵感迸发,剩下的是艰难寻找、汗湿重衣;他们的作品永远尚未完成或未臻至善,区别仅仅是“问题更少”的程度不同罢了。

软件就是麻烦一堆。而且我们不能够也不愿意把电脑-关走为上计。给我们带来挫败和束缚的软件,也用更多功能、更快更好的工作与生活方式来引诱我们。无路可回。我们对软件的需要,远甚于对它的仇恨。所以我们梦想着得到更新更好的东西。在现代软件研究领域多有建树的专家弗里德里克●布鲁克斯( Frederick Brooks)在1987年写了一篇题为《没有银弹( No Silver Bullet )》的著名论文。布鲁克斯在论文中称,无论编写计算机程序是如何地令我们倍感挫败,也永远无法找到一种魔法般的突破一我们只能期待渐次前行。 布鲁克斯的观点难以辩驳,但也难以接受;参加计算机业界会议或是浏览程序员网站时,你总会遇到一些坚称其错的人。

布鲁克斯发现,制作软件的大量工作受困于“序列约束",它限制了任务分解的程度:完成某项任务是处理其他任务的先决条件,这与人力投入多少无关。"十月怀胎,"布鲁克斯写道,“无论多少妇女参加都一样。”

 学术计算领域则一直有开放之风:源代码的自由共享,传承了科学研究各领域的自由共享传统。20世纪80年代和90年代,微软问鼎个人计算软件产业之际,开源只余星火之光,但并未熄灭。20世纪90年代中期是互联网出现在上百万台个人计算机桌面.上的全盛期,这是学术界.借助政府资助而培育出的结果。具体而言,学术界开发出一系列协议,让不同公司制造、由不同硬件组成、运行不同操作系统的计算机之间得以互通。将计算的孤岛连接为一-个全球网络的软件概念,并非出自追求利润的企业办公室中,而是根源于在大学或公众资助研究中心辛勤工作的理想主义研究者们“发布且共享”的心态。

《大教堂与集市》从个人喜好和外部环境等方面分析了托瓦茨在5年多时间里管理Linux项目开发的方式,并总结出一系列原则。“好的软件开发工作始于打造开发者本人。”只要是做某种取悦自己或满足己需的东西,程序员就会动力十足,努力做到最好。“ 好程序员懂得写什么。卓越的程序员懂得改写(并复用)什么。”若能取之于现有,程序员决不肯创之于本无。

开源本身,即让程序员学习和扩展源代码的可能性,已经是布鲁克斯描述的世界之一部分。 但是,开源方法论和基于互联网的协作集市,仍然待以来者。瑞蒙德之洞见,更多地体现于看到互联网和托瓦茨式的领导方式在让接触源代码更具有价值方面的重要性,而不在于解释为什么应该让程序员接触源代码。