主题:【原创】论开源和修桥-说说我对开源的理解 -- 猪头简
最有名的open source项目包括linux kernel,apache,boost等等,这些项目水平当然是相当高的,我或多或少都看了里面的代码,的确是水平非常高的。但上面提到的这3个代表性/标志性的项目,开发模式是典型的外科手术式的做法,是有主刀医生的。而且也绝对不是前文所提到的修桥模式。这些项目的开源,只是利于使用者阅读代码,也许有人会为自己的项目对代码进行调整,但调整不会进入源代码。能够修改源代码的人非常少,而且这些人都是超一流专家,写代码的时候是经过精心设计的。这个过程和大公司里开发商业软件没什么区别——可能还更为精英主义一些。
我前面提到这些软件的代码会被其他人阅读,阅读者可以修改以适应自己的项目。这样的例子很多,但99.9%的修改到此为止,再也没有下家。还有0.1%的修改会被提交到前面所说的那些项目拥有者那里,在经过他们的仔细review之后进入源代码树。请注意是经过仔细review之后,而且review的人通常就是项目拥有者。这种review未必是非常快的,也许要拖很久。
大批的open src软件先天就不足,一方面没有超一流高手,写得代码很烂。另一方面,由于很烂,所以没人会去关注,因此就更烂,因为没有人测试。然后由于没人愿意基于烂代码修改,所以也没人试图修改,即便有人试图修改,也不容易进入代码树。所以它就一直烂在那里。甚至很多著名软件都是如此。
我举一个著名的开源项目的例子。vnc是一个远程桌面控制软件,非常著名,而且衍生出了许多变种。它的用户很多,修改也很活跃,直到最近都有更新。但是里面代码是非常烂的。我除了佩服他们在如此烂的代码基础上居然还能维持下去之外,别的也说不出什么了。事实上,vnc的多个变种,包括realvnc,tightvnc,utralvnc,都开发了商业版本,据说代码彻底重写过。而open src版本,则持续的保持烂的状态。这有点像前文所提到的那座桥。
- 相关回复 上下关系8
压缩 2 层
🙂开源整个一套体系你没看见啊 littles 字54 2009-09-03 09:12:30
🙂好的当然有,但大量的是垃圾
🙂就所谓开源的Linux kernel说明一点 mmq 字472 2009-09-04 20:47:07
🙂开源 伊霜 字330 2009-09-04 22:30:11
🙂俺看过一篇分析写的很有意思 伊霜 字375 2009-09-04 22:22:48
🙂你这话讲的非常没有道理啊 littles 字179 2009-09-04 07:11:18