开放源码软件的不利之处

CyangenMod死了,是被母公司Cyanogen杀死的。社区正试图收拾残局,并基于代码创建一个新项目LineageOS。但它提醒人们,开源软件并不都是阳光、彩虹和稳定的:事实上,它往往非常混乱。

即使一个项目是开放源码的,它也不一定会对社区做出响应,更不用说可以依赖的可靠软件了。项目各不相同:一些是由一两个开发人员作为爱好运行的,另一些是由许多大公司支付报酬的开发人员聚集在一起的,而另一些则是由一家母公司驱动的。每种情况都有自己的问题和戏剧性。

我们热爱开源软件--别误会我们--但它带来了一定数量的挑战。我们来看几个。

开源经常遭遇延迟和冰川般的发展步伐

许多开放源码项目似乎都受到开发速度缓慢的困扰,新版本无休止地延迟,新功能即使有,也很慢,而且很难确定困难但重要的功能的优先级。

只要看看Ubuntu试图推出Unity8桌面和Mir显示服务器,就能实现其“融合”的愿景。这个新版本的Linux桌面在很多年前就应该是稳定的,现在仍然不是。这个项目进展缓慢,以至于Canonical被微软抢先一步,微软在Windows10之前宣布了自己的愿景-智能手机驱动的PC-并在上面交付了产品。Canonical还没有兑现其许诺已久的愿景。也许再过几年它就会稳定下来。

相关:以下是Firefox仍落后Google Chrome数年的原因

Mozilla在优先顺序上也遇到了一些困难,他们还没有在Firefox中提供多进程和沙盒功能。这些功能对于确保浏览器安全、防止崩溃导致整个浏览器崩溃以及更好地利用多进程CPU至关重要。所有其他主要浏览器都提供了这些功能,包括令人憎恨的Internet Explorer。Mozilla创建了“电解”项目来添加这些功能,但在2011年暂停了,因为太难了。Mozilla随后不得不在2013年重新启动它。这一功能看起来将在2017年推出-这真的,真的很晚了。与此同时,Mozilla浪费了时间在Firefox OS上,这是一个失败的智能手机操作系统。

当一个项目使用了这么多志愿者开发人员时,它可能很难找到人来做那些没有乐趣的艰苦工作。

内部戏剧催生了分叉,分叉和更多的分叉

任何人都可以更改开放源码项目的源代码。这就是重点!如果开放源码项目以您不喜欢的方式进行更改,那么您-或者社区-可以采用旧的源代码,并将其作为新项目继续工作。但是,社区项目经常被内部戏剧性事件缠绕,导致事情分裂成多个项目,让用户感到困惑和疏远。

例如,当GNOME3发布时,许多GNOME2用户并不高兴,没有一条直接明显的路径。开发人员不得不将GNOME代码分叉到其他项目中,如Mate和Cinnamon。一个桌面环境变成了三个,开发资源在项目之间更加分散。因此,社区花了一些时间才让这些新项目开始运作。

相关:OpenOffice与LibreOffice:有什么区别,应该使用哪种?

同样,当甲骨文收购Sun时,OpenOffice社区也不高兴。甲骨文甚至将其专有的、非开源的办公套件StarOffice短暂地更名为“Oracle Open Office”。社区不得不基于OpenOffice代码创建一个新的分支LibreOffice。对于许多人来说,它已经成为事实上的开源办公套件,但其他人仍然在使用OpenOffice,因为他们没有意识到更好的分叉和围绕它的戏剧性。OpenOffice只是有很多内置的知名度。

当然,还有氰基生成模块。Cyanogen Inc刚刚终止了CyangenMod的在线服务-这意味着他们宁愿杀死最受欢迎的第三方Android ROM,也不愿将其交给社区,而是迫使社区创建一个名为LineageOS的CyangenMod新分支。为什么Cyanogen不干脆把CyangenMod项目交给社区呢?答案似乎是内部戏剧性的(您在这里看到模式了吗?)。毕竟,Cyanogen是一家公司,其首席执行官承诺,他们将“一枪打穿谷歌的脑袋”。取而代之的是一颗子弹射穿了氰基恩莫德的头部。

这一切最终只会伤害CyangenMod的用户,在CyangenMod的服务器和服务将被关闭之前,他们几乎没有收到任何通知。手机将继续工作,但方便的更新和其他服务几乎在一夜之间化为乌有。用户只需希望LineageOS项目能很快成为替代品。

并不是所有的开源项目都是社区驱动的

开源项目并不总是由社区驱动的。说一个程序是开源的,只是意味着代码可以用来做您喜欢做的事情。开发该软件的公司不一定要将其作为社区项目运行,否则他们可能会有兴趣使用该项目来推广他们的其他软件。

氰基生成模块就是一个很好的例子。曾经的氰基公司。出现的时候,他们并不真的关心氰基生成模式。Cyanogen的新目标是向制造商营销Cyanogen Modular OS平台,利用CyangenMod在扼杀该项目后的巨大知名度进行交易。也许这就是钱的所在。

甲骨文从来不关心OpenOffice,但最初想用它的名字来推动其StarOffice专有办公套件的销售,将其命名为“Open Office”。然后,在大多数志愿开发人员离开后,它将该项目捐赠给了阿帕奇。

谷歌也并不真正关心Android作为一个完整的开源项目,这就是为什么越来越多的“Android开源项目”(或“AOSP”)被抛在后面。谷歌希望保持Android的开放性,这样制造商就可以很容易地进行定制,但像键盘和拨号器这样的开源应用程序正变得越来越过时。在消费安卓设备上,谷歌只是捆绑了自己的封闭源代码键盘、拨号器和其他应用程序。谷歌似乎致力于Android开源核心,但并不是没有谷歌软件和服务就能让人们使用的整个开源操作系统。毕竟,改进Android开源项目只会帮助亚马逊的Fire OS,它是谷歌Android设备的竞争对手。那有什么意义呢?

尽管被数百万人使用,但开源可能缺乏真正的人力资源

相关:心脏出血解释:为什么您现在需要更改密码

如果一个项目是开源的,任何人都可以使用它而无需贡献-即使是大型公司。当一个重要的、广泛使用的项目严重缺乏人力和资金时,这就会导致问题。

我们在2014年的心脏出血安全漏洞中看到了这一点的结果。心脏出血利用OpenSSL中的漏洞进行攻击。OpenSSL是许多大型科技公司和数十万Web服务器使用的重要加密库。但它只有一名全职员工,没有外部雇佣,每年有2000美元的捐款。该项目确实从商业支持合同和咨询中获得了额外的资金,但对于谷歌(Google)和Facebook等价值数十亿美元的公司使用的关键基础设施而言,仅有一名全职员工似乎低得令人震惊。

心脏出血引起了人们对这款关键软件资金多么不足的关注,因此大型科技公司承诺每年投入资金,为OpenSSL和其他重要项目的开发提供资金,作为“核心基础设施倡议”(Core Infrastructure Initiative)的一部分。

当然,这个特别的故事有一个好的结果-但只是因为它吸引了如此多的关注。当您依赖开放源码项目来启用您的基础设施时,很容易最终依赖于它,并假设其他人对其进行了足够好的维护。还有什么重要的开源项目资金严重不足?在出现另一个大问题之前,我们可能不会注意到这一点。

图片来源:Snoopsmaus

相关文章