除了直接捐钱,各大企业支持开源项目的方式还有很多,比如捐献自己员工的时间。任何一个开源项目中,都有来自各大公司工程师的贡献,这些公司给自己员工发薪水,他们写的代码会回馈给开源项目,比起捐款,这是更直接的支持。比如去年发会的直接雇员,但这份由Google买单的全职劳动成果是贡献给了OpenSSL项目的,说所有大公司都没支持过这个项目,未免太不公平。而这种错误言论,正是界面文章宣传的论调,按照这篇文章的说法,一个中国小公司救了全世界互联网用户,这是何等荒唐。
说到这里,再说说捐款问题。我非常反对界面渲染的这种捐款情绪,这是利用人们的愧疚捐款。钱是非常宝贵的资源,需要用钱的地方太多了,正确的捐款是在捐款者对项目的充分了解后,基于对其价值观和方向认同,按照自己的愿望进行长期而小额的固定捐助。在这个过程中,税务问题也是必须要考虑的,这直接决定了资金利用率,比如美国税务居民,捐赠给OpenSSL,资金的利用率就很低,而捐款给CII再由他们资助OpenSSL,就可以得到一部分免税,利用率高了很多,如果是加拿大税务居民,想对操作系统方面的项目捐款,应该首选OpenBSD,因为它是加拿大注册的非盈利组织。捐款是一个非常理性的行为,隐藏部分信息,利用人们对开源项目的不了解,煽情,制造愧疚感,这是不可持续的,也是不公平的,这些都是界面的文章和之后的运营所做的事情。
OpenSSL的问题和未来
界面的文章中说基层程序员批评他们的代码“令人作呕”,实际上,说这句话的人是TheodeRaadt,是OpenBSD项目的创始人,他可不是“基层程序员”,而是操作系统领域最好的计算机科学家之一。OpenBSD开发者们并没止步于批评,而是立刻决定从当前OpenSSL版本创建一个叫做LibreSSL的独立项目,从清理OpenSSL的代码重新开始。他们在第一周就删除了9万多行代码,OpenSSL整个项目只有38万行,相当于删减了近1/4的代码。可见Theo的批评并不是顺口胡说。几年来,OpenSSL出过各种漏洞,在“出血“之后,仍然有隐藏了10年以上的漏洞被发现,很多熟悉这个项目的人看法都是“除了重写别无办法”。
OpenBSD有一份文档说明了他们在清理过程中遇到的问题,去掉其中的技术细节,我把主要观点列在这里,这些也基本是业内主流看法:
OpenSSL的代码混乱不堪,难以阅读。开源软件一般通过让更看到代码来发现bug,如果代码难以阅读,这个办法就失效了。
他们使用了大量自己的代码封装和编程风格,这些代码有的有bug,有的不符合现代主流做法。这让常见的检测工具没法应用于他们的项目,更难以发现Bug。
他们的开发者更关心增加功能,而不是维护和修补。
其他开发者提供的修改和贡献,一般不会被合并到最终代码里。
很多用户指出的Bug,包括一些相当严重的,公开放在追踪系统里面长达几年,没被修补。
其中存留了大量无用的旧代码,比如给windows2000之前的16位系统写的兼容代码,仍然包含在最新版本的OpenSSL中。
基于以上原因,OpenBSD认为这个项目已经没法维护了,必须要重新开始。这就是他们创建一个分支,从清理代码这种基础工作开始的原因。可见,这个项目根本不是钱的问题,而是管理方式和社区文化有问题。比起来其他项目,他们在有一个全职开发者和一个全职基金会主席的情况下还能响应如此缓慢,实在更令人沮丧。顺便说一句,做清理代码这件事的OpenBSD开发者,也不是全职工作,他还在这份文档前面特别注明了“可以被雇佣”。一年之后的今天,LibreSSL已经基本算可用了,除了清理和改变了原有代码风格,他们也增加了一些更先进的特性,看起来很有前途。另外,这个项目也很需要捐款,如果更认同他们的做法,可以捐款给他们。
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/tongxinshuyu/article-47342-3.html
太好看了