|
发表于 2008-10-1 14:02:46
|
显示全部楼层
先绕开政治的辩论,很多人都认同开源作為软件开发模式是可以开发出有很多优势的软件。公开了的code只要有人有兴趣维持就进入适者生存的进化世界。如果某蔽源开发商为了赶first-to-market而用某很差但基本上達到目的code,作为用户你不會知道。历史也告诉我們所谓security-through-obscurity也是行不通的。开源的商业问题当然是如果源码是公开的,那为什么会有用户愿意服费得到它?买安心。但当软件達到某程度的复杂性(同样地,有用性)的时候就有人愿意付费买安心。因为真正的大用户是不會贪free-as-in-beer这种小便宜的。但如果那软件本来就比较便宜,那支持它的公司(如Redhat)也可以提供廉价的服务。
在国外也有各种颜色的用户。我记得不久前有某项统计问美国和欧洲的商家为什么他们选用开源软件。美国人注重免费大于开源,欧洲人注重开源大于免费。
很多人认为写开源软件是吃亏的做法。我认为GPL成功的原因恰恰相反:因为商机的存在。假设你写了一套有用的软件。不用公开渠道你要经过很多的程序才能把软件推到市场。你要先說服某有钱人或集团才能拿到开始的资金。而且这资金可能有很多附加条款(例如你必须放弃独占版权)。相反,把源码公开是最快测试市场的方法。让其他有兴趣的人去跑你的软件你就很快可以得到用户而且知道你的产品能不能成功。但如果你不想你的成果一下子就被别人拿去做他的产品GPL是最好的选择。不過公开源码是残酷的,因为可能你的软件没有复杂到可以靠后期支援赚钱。公开了的code进入了适者生存就有被fork的可能。可能你的idea很有用,但你的code很烂,那一下子你的idea就被别人领取了。这从头到尾都是一项一项你自己要做的商业决定。
作為开发者,花了那么多时间的研究成果给别人做嫁妆值不值得?这就各种许可証存在的原因。如果你真的不介意,你可以把code放在public domain。如果你只介意别人知道那code是你写的,而且你公开的部分保持公开,你就用BSD-like许可证。如果你认为你的code是希望推动一种开发者间共享的文化或你要强逼其他建立在你的成果上的东西也要公开,你就用GPL。如果你认为你的code不能公开,你就不用公开性许可证。但只有写code的人才有资格讨论做这决定。因人而异。我自己支持GPL的精神和目的。我甚至认为BSD的无私有点笨,但那是他们的自由。
从开发着角度来说,如果你不某程度上支持GPL背后的精神,你就不要开发GPL的软件。GPL是自私的、限制的:开发者强制其它开发着做某种权限上的牺牲因为自己为了保证软件自由的传播而做出了用样的牺牲。所以很多人认为GPL是在减少用户的自由(比起BSD)。我的结论是BSD的自由是个人的,GPL的自由是社群的。 |
|