开源项目的选取
授权协议
对商业闭源软件“友好”的协议,BSD、MPL(Mozilla)、Apache、MIT。这些协议不但允许项目的使用者使用开源库,有些还允许对开源库进行修改并重新分发。上述这几个协议在细节上有些小差异,可以官网看一下。另外,有些开源软件使用公共域授权(Public Domain)。简单说,就是不作任何限制,软件的使用者可以为所欲。
技术层面
如平台版本、性能指标、安全问题(如缓冲区溢出的 bug、比如跨站脚本注入等)
普及程度
开源项目的用户占有率, 某个项目普及度高,至少说明(但不绝对)比较成熟、稳定、安全。而且用的人多了之后,相应的文档也会多一些,碰到问题也容易找到人咨询。
活跃程度
一个项目越活越,则新功能的推出越快,对提交 bug 的响应也越快。还有些项目,由于开发人员不再继续开发(可能开发人员厌倦了、可能开发人员太忙了),从而导致活跃度很低。不过也有例外——有些项目由于已经非常完善了,因此反而活跃程度很低。印象中:最近几年 bzip2 就很少有更新,但它是非常优秀的压缩库。
商业风险
还有些开源项目被商业公司收购后,由于种种原因(商业、管理、政治等)导致该开源项目受到不利影响。比如上星期听说 Michael Widenius(MySQL 共同创始人)和 Marten Mickos(MySQL 前任 CEO)从 Sun 离职。再加上去年10月走掉了的 David Axmark(MySQL 共同创始人)。估计对 MySQL 的影响不小。
单点故障
很多项目过于依赖个人英雄主义 =》依靠一两个大牛完成整个项目。一旦大牛出现意外,必然导致整个项目受到严重影响。典型的例子就是 ReiserFS 文件系统的创始人 Hans Reiser。这位老兄由于谋杀妻子的罪名成立,被判入狱15年(对 IT 八卦有兴趣的同学可以看“这里”)。导致 ReiserFS 项目受到严重影响。这类风险在开源界有个专门的术语叫“Bus Factor”,翻译成“巴士因子”或“卡车系数”。指的是——项目中有多少个关键人物【同时】出车祸,才会导致项目瘫痪。
示例表格
对比表格 | tinymce | wangEditor | UEditor | kindeditor | simditor |
---|---|---|---|---|---|
授权协议 | |||||
活跃程度 | |||||
普及程度 | |||||
商业风险 | |||||
单点故障 |
转载信息
https://github.com/XL2014/suixiang/blob/master/2009/02/how-to-choose-opensource-project.md