五千年(敝帚自珍)

主题:【原创】论开源和修桥-说说我对开源的理解 -- 猪头简

共:💬27 🌺33
全看分页树展 · 主题 跟帖
家园 好的当然有,但大量的是垃圾

最有名的open source项目包括linux kernel,apache,boost等等,这些项目水平当然是相当高的,我或多或少都看了里面的代码,的确是水平非常高的。但上面提到的这3个代表性/标志性的项目,开发模式是典型的外科手术式的做法,是有主刀医生的。而且也绝对不是前文所提到的修桥模式。这些项目的开源,只是利于使用者阅读代码,也许有人会为自己的项目对代码进行调整,但调整不会进入源代码。能够修改源代码的人非常少,而且这些人都是超一流专家,写代码的时候是经过精心设计的。这个过程和大公司里开发商业软件没什么区别——可能还更为精英主义一些。

我前面提到这些软件的代码会被其他人阅读,阅读者可以修改以适应自己的项目。这样的例子很多,但99.9%的修改到此为止,再也没有下家。还有0.1%的修改会被提交到前面所说的那些项目拥有者那里,在经过他们的仔细review之后进入源代码树。请注意是经过仔细review之后,而且review的人通常就是项目拥有者。这种review未必是非常快的,也许要拖很久。

大批的open src软件先天就不足,一方面没有超一流高手,写得代码很烂。另一方面,由于很烂,所以没人会去关注,因此就更烂,因为没有人测试。然后由于没人愿意基于烂代码修改,所以也没人试图修改,即便有人试图修改,也不容易进入代码树。所以它就一直烂在那里。甚至很多著名软件都是如此。

我举一个著名的开源项目的例子。vnc是一个远程桌面控制软件,非常著名,而且衍生出了许多变种。它的用户很多,修改也很活跃,直到最近都有更新。但是里面代码是非常烂的。我除了佩服他们在如此烂的代码基础上居然还能维持下去之外,别的也说不出什么了。事实上,vnc的多个变种,包括realvnc,tightvnc,utralvnc,都开发了商业版本,据说代码彻底重写过。而open src版本,则持续的保持烂的状态。这有点像前文所提到的那座桥。

全看分页树展 · 主题 跟帖


有趣有益,互惠互利;开阔视野,博采众长。
虚拟的网络,真实的人。天南地北客,相逢皆朋友

Copyright © cchere 西西河