delphij's Chaos

选择chaos这个词是因为~~实在很难找到一个更合适的词来形容这儿了……

03 May 2004

谈谈Open Source

整理自:2004年2月10日 日记

我其实并不是一个喜欢钻牛角间的人,不过最近在论坛上的讨论实在很让人不爽。从某种意义上说,我对于开源运动并没有明确的支持或反对的态度,当然,我比较欣赏 Apple 的做法:适度开源;同样的,这种态度也适用于微软的「分享源代码」的公开源代码的计划,尽管我并不认为微软在热衷于参与开源运动,或者说,它根本就在反对这项运动,但它的支持或反对,并不影响开源运动的人们。不要去责备微软「霸道」,那是没有道理的,任何商人都得赚钱,没有人可以拦得住爱好者,我们不能,微软同样不能,我们看到的应该是微软在计算机科学领域的大量投资,它的研究院对于研究员公开发表学术成果的开明态度,以及那些假意利用开源来抬高自己身价的竞争对手的丑恶嘴脸。你可以不喜欢微软的做法,你可以躲得远远的,不用Windows,因为这是你的自由,没人强迫你欣赏微软的做法,没人强迫你用微软的产品,如果你觉得离不开,那么,自己写一个;如果你写不出来,闭嘴,因为你只是一个弱者,世界不同情弱者。

就我个人而言,我并不认为开放源代码是什么不可或缺的东西。过去不是,现在不是,将来也不会是。我个人倾向于开源的原因在于,开源有助于成果更快地被应用,而不是把这当做一种信仰,或者不可侵犯的东西。

对于开放源代码的授权,我的态度是,如果要用,那么就必须尊重它的授权,因为这是法律带给我们的义务。然而,如果授权无法让我满意,那么,我会重新实现一个。

对于我来说,GPL是一个很难接受的授权,我只能把它归入「公开源代码授权」而不是「开放源代码授权」一类。使用代码的人没有别的选择,只能以GPL发布派生作品,除非作者同时使用其它授权。

授权非常重要!如果我从头做一个开放源代码的东西,那么我一定做BSD授权的,过去我做过很多这样的东西;如果我的代码因为授权的原因而没有被一些人使用,他们不得不重新开发一个版本,那么我认为我的代码没有发挥它的价值。

那些鼓吹GPL的家伙醒醒吧,你们在鼓励开源吗?不是的,你们所鼓吹的是开源和不开源的对决,好比说,我做了一瓶老陈醋,以GPL发布,于是,如果哈哈可悲公司想要在他们的产品中加一滴老陈醋,于是……

嘿,哈哈可悲,你们必须公开「哈哈可悲」配方,因为这是GPL所要求的!

知识产权是一种建立在人性中自私自利的基础上的、束缚人们灵魂的东西。然而,我并不认为存在什么靠知识产权来谋取暴利的问题——没有人有义务白白地替别人劳动,好比说,你盖了一栋房子,那么,如果你没有说这房子谁都能随便住,那么,没有人可以无偿地占有你的劳动。

同样的,开放源代码运动也是。

我在号召,我愿意跟你们分享代码,如果你们愿意的话,我当然希望你们也这么做,但如果你们不想这样做,那是你们的自由,因为我拿出来是为了分享,而不是推广我的什么理念!

这才是开放源代码运动的本来精神。GPL不过是用了一种不自由取代了另一种不自由,我不认为这是一个正确的做法,如果你反对什么,那么,不要去与它合作,更不要去利用它——

BSD授权保证的是开发者的基本权力——冠名、不被起诉;GPL在利用版权法创造的不自由去制造新的不自由——想用这代码?好啊,你也GPL,你也必须开放源代码!

我一直所说的GPL是一种掠夺性的授权实际上就是指上面的情况。

谁都可以看到,没有几个操作系统里面没有「本软件包括加州大学伯克利分校开发的软件」,然而,又有几个严谨的商业操作系统表示「本软件以GPL发布」呢?

Solaris? No! Windows? No! OS X? No! AIX? No!

一个软件如果没有办法被大众接受,那么,它只能在一边孤芳自赏。从这个角度说,BSD授权给了你的软件更多的暴露于公众的机会,你可以不期待这个厂家、那个厂家给你什么改进反馈,但如果你觉得写个软件就像喝一杯凉水一样简单,那么,当他们的软件执行效果比你好的时候,你难道也没办法知道到底他们做了什么改进么?更何况,并不是所有的厂商都只是那么的贪婪。

如果他们想开放代码,那么他们肯定会开放,如果他们不想,放心,他们一定会考虑重新实现。GPL的迷梦,还是结束了吧,这么做只是在断送开放源代码,因为这不是在帮助它获得更多的用户,而代码最大的价值,就是被更多的人使用,而不是宣传什么理想和信仰。

永远不要靠强迫来让别人就犯,如果你觉得什么东西好,那么,让别人也相信它。