大教堂与集市,比喻两种软件的开发模式。大教堂:比喻开发软件像建造大教堂一样,在与世隔绝的环境下,由天才式专家或几个行家里手精心打造。集市:比喻开源社区里面,充满了各种不同的计划和方法,就像一个乱糟糟的集市。可能我们会认为后者是不可能开发出什么像样的软件的,然而令人难以置信的是,集市这种模式其实有着很多好处,事实上这种模式也开发出了诸如Linux操作系统这样复杂且有用的软件。
那么为什么会诞生这两个模式呢,Linux又是如何创作出来的呢?在计算机届的上古时代,有一种叫做“真程序员”,那个时候的程序员没有各种轮子可用,做着难度相当之大的工作,当然他们也能力超群,不像现在程序员的入门门槛越来越低,大部分人做的工作是调用别人写的接口,使用各种开发框架。黑客那时候指的是一群有着超凡能力的计算机人,对软件开发有着极大的热情,Linux就是在这种环境中诞生出来的。读到这里,还是非常有感触的,虽然自己也自称程序员,但是实际上做出的工作可能微不足道,反观那个时候的真程序员是真的值得人尊敬,不仅能力出众而又有着极大的热情。
书中也提到了集市模式的几个特点,可以很好地转变我们的观念:1、拥有用户的重要性;2、早发布,常发布;3、多少只眼睛才能驯服复杂性。第一条,因为很多用户本身就是开发者,或者说是黑客,让更多的用户参与进来可以很快地完善代码。第二条:传统观点认为,最终发布上线的版本必须是经过周密测试的,以防带来不必要的损失,但在集市模式下,早发布以为这问题可以更早地得到解决。第三条,看上去可能与Brooks法则相矛盾,到向项目中增加人手到底是会降低系统的复杂性还是提升系统的复杂性呢?事实上集市模式确实打破了Brooks法则的规律,这也正是集市模式吸引人的地方。
比较著名的开源事件之一就是:网景公司为了对抗微软的IE浏览器,选择将Mozilla开源,而有效地反击了微软垄断浏览器市场的可能。这算是一次十分成功的开源行动,也让开源这种模式得到了广大的认可。后面大家也可以看到,许多互联网巨头都会选择性地将它们的产品开源,这也给广大的用户带来了便利。
现实中我们常用的开源软件一部分来源于互联网巨头,一部分来源于分散的软件爱好者。前者可能是出于公司战略的考虑,通过开源来扩大公司的影响力,占领市场等等。当然他们的开源也将为其他的软件从业者带来极大的便利,尤其像我们这样的新入门者,从开源软件中学到的东西将会很多。后者,由软件爱好者经营的软件也并不意味着软件的低质量,文中也提到,人出于爱好做的工作往往会更可靠,这些由开发者出于爱好开发出的软件,完全不会比互联网巨头推出的东西差,例如我们用到的一些开发框架,这个框架可以从github等社区轻松地获取到,而且完全是由各地的开发者自发地去维护,而这些框架甚至也被那些互联网巨头所采用。
可能有人会有疑问,将软件开源,是不是意味着软件从业者将得不到回报。然而开源并非意味免费,实际上开源软件有着多种多样的收费方式。有句俗语:免费的往往是最贵的。这通常就是一些企业的运营模式:先通过免费的噱头来吸引用户,当用户养成的对产品的依赖,或者需要获取更多的内容和功能的时候,就需要付费。开源可以用来拓展市场,对抗公司间的竞争。毫无疑问开源的方式可以鼓励软件的传播推广,极大地降低使用门槛。而且上文也提到开源并不意味着不能盈利,实际上只要经营得好,开源的方式带来的价值将超乎想象。
既然开源有着这么多好处,那么是不是所有的软件都应该开源呢?实际情况当然不是如此。大部分情况下,在现代的互联网公司里面都将他们的软件源代码视为它们的商业机密,我之前在一家游戏公司实习的时候,电脑的机箱都是用柜子锁起来的,也不能留多余的接口,员工入职的时候也要接受详细的安全培训。实际上,公司出于商业盈利的考虑,只会选择性地将一部分软件开源,而将其他大部分的软件都视作绝对的机密。其实我觉得公司做种做法也无可厚非,谁也不想市场上突然冒出一个和自己几乎一样的产品。
读完此书,确实感觉收获挺大。既感叹集市模式的强大,也感叹那些黑客们的开发热情。如今我们所使用的各类开发工具,开发框架带来的便利可能都要感谢集市模式。希望自己之后也能像这个黑客们一样,将软件开发当做一种乐趣,而不是一项差事。
大教堂与集市读书笔记
最新推荐文章于 2021-06-05 21:23:49 发布