开源批判

来源:互联网 发布:杜兰特2016季后赛数据 编辑:程序博客网 时间:2024/05/01 16:55

十几年前,FSF(自由软件基金会)的成立,吹响了软件自由的号角。自由软件运动的缔造者宣称,软件应该让每个人自由地使用。他说,最早的时候软件都是大家分享,自由使用的,所以软件天生是自由的。是啊,多么美好的景象啊!不由想起我们的祖先,那时候人们一起打猎,分着吃肉。现在呢,喝水都要钱。

不久,我们就看到这是一个谎言,自称让每个人自由使用的开源软件对商业用户并不自由。虽然开源本身并不是坏事,但是把开源置于商业的对立面上,是幼稚的,更是不明智的。

 

开源的政治阴谋

今天的开源社群已经走得太远,几乎完全偏离了最初的技术初衷。打开FSF的首页,就能闻到一股刺鼻的火药味,崇尚技术自由的开源每个毛孔里都散发出浓厚的政治气息,在软件行业中,再一次挑起了共产主义和资本主义的政治角逐。开源完全把一个美好的愿景变成了险恶的政治斗争。

这场没有硝烟的战争已经由软件行业慢慢扩散到整个出版业。不仅是Windows,连DRM(数字版权管理)也成为了开源社群臆想中的风车。看起来开源社群的目标就是要让整个出版业提前进入共产主义。只不过,关于开源软件的图书可还是要收版权费的。

开源的阴谋不仅于此,专利保护也是开源社群要颠覆的另一个要地。且不论目前的一些专利纠纷孰是谁非,那是法律需要解决的问题。开源社群面对软件专利所表现出的那种“造反有理,革命无罪”的大无畏态度,俨然就是伟大的无产阶级革命小将的真实写照。这足以说明他们心理很不健康。专利保护已是法律现实,如有不满,也应通过正常的司法修订程序解决。在专利还名正言顺地受到法律保护的时候,理应小心回避才是正道。

种种形迹让我们认识到,开源社群根本就是对现有社会制度极度不满,意图创造人类社会新秩序。但他们并不打算实现世界大同的崇高理想,而只想维系一个与现实社会隔离的乌托邦。他们所倡导的也并非是共产主义,而是想让我们的社会回退到以物易物的原始形态,正如那个自由软件的旗手所说的“最早的时候”。

 

开源与收费

开源并不代表不能收费,只是一旦开源,收费就成为了技术性困难。索性咱们摆个姿态吧。于是开源社群说:“我们的软件不收钱,要收只收合理的发行成本。”

做软件行业的都知道,开发软件不但需要成本,而且成本相当地高。现在造汽车都机器人全自动了,写软件可还是个彻头彻尾的体力活。21世纪,什么最贵啊?程序员也需要衣食住行,吃喝玩乐。谁来为他们的生活买单?有成本就应该收费,这不是丢脸的事情。

这就是为什么业内一直在寻找所谓开源软件的商业模式。开源社群又说了:“软件就是服务(SaaS),我们不收软件费,只赚服务费。”所以我们知道了,为什么开源软件都这么难用。像Windows那样,傻瓜都会用的话,他们问谁收服务费?

很明显,开源社群并非不需要要经济利益,他们只是不喜欢堂堂正正地收钱。要饭就要饭了,非要说是化缘。这种做了婊子还要立牌坊的行径着实更让人呕吐。

 

开源是反商业的吗?

开源社群和商业公司之间真的那么苦大仇深吗?

几乎所有开源组织都是靠着商业公司的资助助才得以维持。即便是靠着某个基金会生存,也不要忘记基金运作本身就是商业行为。

一些开源项目是商业公司捐献给开源社群的,比如Eclipse,IBM运作不下去本来要扔掉的,后来一想,不如日行一善吧,捐出去了。开源社群如获至宝,从此有了像模像样的IDE。

一些开源项目本身就兼具商业与开源的双重身份。像MySQL,一边扮演开源的亲善大使,一边做着大腹便便的精明商人。

一些开源项目完全就是商业机构含辛茹苦喂养长大的。比如Sun,即便负债累累,还要供养Open Solaris,Open Sparc,Open Office。

由此可知,开源与商业有着剪不断理还乱的千丝万缕的血脉联系。当开源社群跳出来要公然反对商业软件时,我们只能想到四个字:“大逆不道”。

开源社群本可以和商业软件和平共处地友好发展,却因为自己的偏激与狭隘,让这个和谐的世界平添了动荡的因素。而开源社群在与商业软件的斗争中,高举着自由的大旗,挥舞的却是免费的大刀,着实很不厚道。

 

自欺欺人的骗局

开源社群说我们的软件都附送源代码。

有多少用户会在乎有没有源代码?99%以上使用开源软件的人不是因为它开放了源代码,而是因为它不要钱。况且很多开源项目只提供源代码,你必须拿回来自己编译。这可不是咱们普通老百姓能玩的了。享受自由也需要有专业技能的。老早的时候,买电视机都带有线路图的,据说坏了可以自己修……

开源社群自称开源让每个人都有按照自己的意愿修改代码的自由。

这是典型的痴人说梦。有多少程序员可以看懂那些浩如烟海的代码。读别人的代码往往比自己写还累。不要说个人了,即使一个组织来消化这些源代码也需要投下大量的人时,往往要用人·年计。再说改代码这件事也不是随心所欲能够做的,指不定你改了领口,却发现袖子短了。没有吃透人家的设计思想,修改代码是很危险的。

开源社群说我们的软件有全世界的软件工程师维护。

那只限于少数热门的软件。在sourceforge上,大部分开源项目都处于无人维护的状态。而开源更严重的问题是,没有人对他们的软件承担责任。这就意味着如果你找不到人帮你维护的话,就自己一个人哭吧。

如果开源可以拯救世界,我们买到的每块CPU芯片上都应该附有IC版图,每辆车都应该有整车的机械和电气结构图。

 

谁是开源的帮凶

开源社群说如果没有盗版,那么商业软件就没有那么高的普及率,他们就可以获得更大的占有率。他们错了,盗版对航母级的软件公司没有实质的打击,Bill依旧蝉联全球首富。到是那些新兴的中小软件公司在盗版泛滥的市场环境下,完全丧失了竞争资格,造成目前行业内一家独大的寡头垄断局面。如果没有盗版,竞争会更加充分,软件价格会更加趋于合理,免费的开源软件就未必会有那么多人追捧。

另一方面,不少软件之所以开源,是因为他们不开源也赚不到钱。没有盗版,会让不少个人和公司选择商业发行,有钱赚,谁还开源?毕竟高尚的人是少数。

盗版在事实上为开源运动起到了推波助澜的作用。而开源与盗版的相同点是,他们共同培养了这个社会使用免费资源的习惯,这让更多的人漠视别人的劳动价值。我并不认为这对社会进步具有积极意义。无私奉献是高尚的,但是让所有的付出都有回报,社会才更健康。

 

开源许可的效力

开源许可的效力源自著作权保护法。离开法律框架,任何许可协议都是一纸空文。

著作权保护法的核心法理是:每个人对自己的智力成果拥有绝对的处置权。任何人都不得以任何理由干涉他人对自己(后者)劳动成果的处置。开源世界引以为豪的病毒式传播许可协议恰恰违背了这一原则。在许可条款中,权益人只能就自己的权益提出主张,而无权干涉他人权益。这就是说,你可以决定你自己的代码是否开源,是否商业化。但是,你没有权利要求别人的代码开源或非商业化。就这一点而言,链式传播的开源许可是不应得到法律支持的。对此有异议的朋友可以与小姐签订服务合同,看看你的嫖娼行为是否会受到法律保护。

从另一个角度看,如果失去链式传播机制的开源软件无法良性地生存发展下去,那么我们不得不质疑我们开源的动机究竟是为了让更多人用上自由的软件,抑或是为了show me yours,I‘ll show you mine。

即使有人把你的开源软件拿去卖钱,或者修改了你的代码却没开放出来。这丝毫不影响你的开放代码能够被所有人自由使用。难道有人因为有付费版本就不用你的免费版本了?唯一的可能是人家付费版做得比你免费的好。做得好,收费也是应该的。因此,链式传播条款根本就是多余的。它存在的唯一解释就是:我不能用它赚到钱,你也别想拿它赚钱。开源社群的小人心态可见一斑。

 

缺乏创造力的开源社群

曾经和朋友讨论为什么开源社群偏好C语言,而不是C++。朋友说C语言有更好的迁移特性。我想这很有道理。有相当一部分的开源项目就是把以前的项目从一个平台迁移到另一个平台,从一中语言迁移到另一种语言。对,这就是开源社群的创造力。

现在的开源社群是一群匠气十足的程序员的天堂,带着与生俱来的劣根性。这是长久以来黑客文化浸淫所致,也是他们虚伪开放的证明——他们的意识形态并不像他的的代码那么开放。面对帝国主义的商业软件,他们选择了朝鲜的道路。

多数独立(并非某个商业机构雇佣)的开源程序员只是为了自己的爱好写代码。虽然代码是开放的,但是初衷并不是为了让别人更好地使用。

他们固守着上世纪70年代Unix和C语言的编程理念,却忘记斗转星移,已是21世纪了。

他们说:“不要重复发明轮子”。既然别人都做好了,拿来用就行,何必再费那个脑筋创造呢。

他们崇尚的是实用主义,“只要做对,不要做好”是他们的格言。丧失对美好事物的追求,何来创造力?

相比设计软件,他们更喜欢写代码。代码就是他们的生命,以至于从未想过有比代码更重要的东西。 

 

代码那么重要吗?

网络时代的精神是开放与互联,而不是狭义的免费共享。在这个角度上,开放标准比开放代码更有意义。事实上,开源社群赖以生存的互联网环境,正是开放标准的成果。没有自由的RFC规范文档,就没互联网的今天;没有开放的PC标准,也没有欣欣向荣的计算机工业。

开源社群愿意与整个行业分享代码,并不代表他们能够分享思想。如果你想对一个开源项目做一点小小的修改,很快就会发现自己被淹没在代码的海洋里。这时候你会想到求助于设计文档……很遗憾,程序员都不喜欢写文档的。

相反的是,微软尽管从不对用户放出他们的源代码,但是MSDN却是免费的软件开发的百科全书。你可以从中找到很多Windows的系统构架和设计思想。

代码是思想的产物。对于整个人类而言,思想才是我们需要传承的最有价值的部分。开源社群眼中只有代码,这使得他们对产业的贡献仅仅是一堆免费的软件。而原本,他们可以做得更多。

目前的软件产业还处于手工作坊式的原始形态,未来必将走向机器编程的工业化道路,那时我们会发现代码其实毫无价值。

 

开源社群的责任

大多数开源项目都没有很友好的用户界面。其中有两个原因:一是用户界面的开发非常繁琐,会让很多程序员失去编程的乐趣。二是大多数程序员更善于与机器打交道,而不是和人沟通。因此,开源社群的强项是做系统的基础架构。

商业公司虽说是利益第一,但是他们更懂得讨好用户,更愿意为用户着想,更理解用户的需求。他们会把很大的精力花在提高用户体验上。不要告诉我这是华而不实的东西,看看自己的手机就知道,我们需要的就是这个。为什么你喜欢触控而不是按键。

让开源社群为软件产业提供基础平台,让商业公司为用户去做有针对性的系统集成。这样才能达到双方优势互补,共融共生的和谐境界。

 

“开放”只有两个字(OPEN just ONE word)

当开放附带了额外的条款,开源的目的就不是那么纯粹了。开放,意味着全世界的融合,不必在乎你是黄色皮肤还是金发碧眼,也没有人关心你是开源还是闭源。产业融合,文化互补才是开放的终极目标。开源应该跳出自我封闭的狭隘格局,站在振兴产业的高度,放下敌视态度,与商业友好合作。

在开源的世界,我们必须对BSD,MIT和Aparche致以最崇高的敬礼。他们秉承了全球顶尖学府的优良传统和高尚的学术道德,应该受到整个行业的尊重。他们诠释了开源最本源的意义——让每个人都可以从我的成果中受益。他们身上闪烁着正真的共产主义光辉——正直,无私,宽容,没有任何利益动机。

直到有一天,面对Open Source我们可以说“Who cares”,软件产业才真正走向成熟。

 

最后重申我的立场:

强烈支持开源软件,坚决反对病毒式扩散条款。