Main

December 15, 2006

[旧文重贴]开源还是不开,难道是个问题?

原发于2004年07月21日 22:56:00, http://blog.csdn.net/VirusHuo/archive/2004/07/21/47973.aspx ,之所以重贴,是发现在我现在这个blog上没有收录这篇文章。刚刚无意间发现被无数人转贴过,虽然回复都是叫好无数,但是都没有声明作者。这样看来,这篇文章写的还算过的去,放在2年后的今天,仍然也不算过时。所以重贴一次也不算过分吧 :D


最近关于开源的话题好像被热炒起来了。个人认为,这是个很糟糕的现象。当媒体都关注一件事情的时候,这事情就要变味道了--正如blog现在的处境。

前两天在csdn上看到一句很经典的话:“中国参加开源项目的人数最少,但是叫嚣开源的人数估计最多。”确实,现在谁要不说点关于开源的话题,就显得那么土...所以我不能免俗,也开始说。

说实话,我很不能理解开源阵营怎么会跟微软阵营成了对立局面。无论是开源运动的领袖们,还是bill gates,恐怕谁都不会有这种想法。世界没有微软是不行的,而微软恐怕也乐得从开源社区得到些东西充实自己。无论是思想,精神,还是经验。

很多人对开源这种现象不理解,认为程序员把自己用来维持生计的代码公开,是非常不经济的行为。在我看来,持这种观点的多是入行没几年的新程序员。他们还没有真正被程序员和hacker的文化浸淫过,自然也不懂开源的历史基础。

开源的历史基础

让我们把目光投向那个古老的时代吧。尽管相对于现在,那仅仅是10多年之前。在那个年代中,提供给别人代码是一件再自然不过的事情。而对别人说:“给我你 的代码看看”也是合情合理的。不仅仅是国外的hacker们这样做,在80年代初的中国,中国人也曾经具有这种思想。当时由于中国没有网络环境,共享一个 东西是相当困难的。所以,大家都习惯于提供代码给别人,供别人录入计算机运行。当时有几份报纸专门有版面用来刊登计算机爱好者投稿而来的程序代码。其中有 工具,有游戏,有控制扬声器发生的音乐程序,可谓五花八门,无所不包。同一个年代,大洋彼岸的程序员也在作同样的事情。本人有兴经历了那个年代,也有不少 程序代码散见于报端。其中最为完整的甚至包括一个用汇编写的,运行于6502芯片屏幕横卷轴的游戏引擎。当时在那些版面,常常见到一些对过去程序进行改造 的程序,一般都是以这样开头的:“本报某期刊登了XX的XXXX,我为它加上了新的功能”或是“我改造了XXX的XXX”。没有人强迫,也没有什么成文的 规矩,但是人们就是这么作的,引用别人的程序,并包含别人的名字,作出修改,然后开放修改的部分。记得一个叫做“生命”的游戏程序就是这样逐渐被完善起来 的。

讲这段历史,是为了证明程序员从一开始就具有这样的传统--把自己的代码拿出来,让大家来改进。后来GPL的出现,只不过是历史发展到一定阶段所必然出现 的。客观来看,开源社区的出现和商业化软件公司的出现没什么不同的,他们都是历史发展的必然趋势。

为什么要开源?

很多人对“为什么要开源”这个问题表示好奇。程序员为什么要把自己用来维持生计的东西开放给别人呢?

开源往往产生于一次郁闷的经历:找不到好用的软件,喜欢的软件太贵,或是急需的每个功能没有软件能做到。那,怎么办呢?好吧,既然是程序员,就不应该为这个事情发愁。自己写吧。

很快,程序写好了,虽然有这样那样的缺点,但确实勉强能用了。这时候会有两种选择,1是把软件拿给别人用,收费或不收费。采用这种方法的时候,因为有很多 缺点,用户肯定会提出很多意见。如果程序员不去修改,那往往就丢了用户,最后变得很没有成就感。如果继续修改,那会花费太多的精力,而且很多事情是非常无 趣的。(比如说作windows程序的界面工作,我就非常讨厌。我宁可去写10个无界面的程序,也不愿意写一个有界面的程序)最后,这个程序可能反而成了 程序员心中的一个疙瘩,做下去,没精力,不做下去,可惜了。这时候,第2种选择就出现了--开源。程序员开放了这个软件的代码,用户需要什么功能,或是发 现什么bug,都可以自行修改。这样,原作者始终是这个软件的作者之一,原作者也享受了别人修改完成的功能,软件变得更好用了,用户越来越多,原作者也有 了名声和荣誉。

对于一个真正热爱软件事业的程序员,写程序并不比再网上发贴拍砖更难。而一个真正的程序员又往往是充满好奇心和热情的家伙。所以,可能很多人都像我一样, 热衷于解决难点,而对后继的维护烦闷不堪。这直接导致了一种后果--硬盘上堆满了写了一半的程序,没有一个能release的。其实这些程序反倒是最适合 开源的。要知道,很多人喜欢后继的维护,也喜欢作界面上的细致工作,但他们没有开始的契机。这不,我的朋友tinyfool就基于此开发准备开放两个程序的代码

开源带来了什么?

很多人说,我要赚钱养家,而开源不能给我带来收入,还要浪费我的时间,所以我不会从事这种工作。

对于这种观点,熊节曾经写道:“即使单从利益的角度来说,为open source做贡献不仅是一个难得的锻炼、交流、学习的机会,更是一个难得的获得名声和尊敬的机会——在开发者的社群,名声和尊敬几乎就意味着高薪”。这 个看法曾经遭到了很多人的批驳。有趣的是,支持开源者认为这种说法损害了开源的纯洁性,而不支持开源者从用此作为攻击开源的论据。

我是同意熊节的看法的。要明白这句话,首先要对开源有一个正确的认识。在我看来,开源是属于计算机科学的范畴,而商业软件的开发属于商业范畴。双方并没有 冲突之处。大家都明白,科学研究本身是不能带来利润的。要得到利润,就必须进行商业化运作。但如果没有科研,商业也无法一支独秀。

传统的科研领域如何获利呢?科学家们靠什么生活呢?不外有这样几种:著书立说,到高校授课,发表演说,应邀作商业公司的顾问等。爱因斯坦研究相对论的时 候,只是专利局的一个小职员。但这并不妨碍他后来成为伟大的科学家。在传统科学领域越来越完善,可供个人完成的发现和研究越来越少的今天,计算机科学给我 们提供了太多这种机会。一个好的开源项目组成员,是绝对不应该缺钱花的。

对于这个看法,有一个很好的例证。想必大家都使用过BT这个优秀的下载软件。关于BT的作者,有这样一段描述:

“尽管BitTorrent获得了如此巨大的成功,然而直到几个月前,它并没有为Cohen带来过一分钱。"去年9月份我没有一丁点钱,"Cohen回忆 到,他当时只好利用这张信用卡的免息期来透支,填补另一张信用卡的帐单来过活。”

听起来很凄惨,不是吗?不过事情很快有了转机:“某天,Cohen的 事情为Valve软件公司的常务董事Gabe Newell所获悉。尽管Valve正在开发令游戏玩家望眼欲穿的Half-Life 2,但是它同时也在建立一个名为Steam的在线分发网络。由于Cohen掌握这个领域的专门技术,所以Valve为他提供了一个职位。Cohen从十月 份起搬到西雅图,开始了他的工作。”

好了,Cohen的工作问题终于解决了。因为BT,我们的网络生活变得更精彩了,因为BT,Cohen找到了一份称心如意的工作。世界上还有比这更为理想的双赢吗?

所以说,虽然参与开源软件本身并不能获利,但它往往会给你带来巨大的好处。对于在校学生,更是如此。在学期间并没有养家糊口的压力,如果能参与开源活动, 作出一定贡献,那么即学到了技术,又积累了声誉。如果能成功的领导一个项目,那就是难得的项目经理人才。待到真正找工作的时候,由于你的突出表现,可能往 往会使工作先找到你。

对于一个公司来说,如果急需某一领域的技术人才,一般有两种选择:一种是挖别的公司墙角,而另一种是自己找个合适的人来。比起前者,后者更容易被企业所接 受,而参与开源活动,则正是对用人公司表达“我是合适的人”。这种实实在在的成果的力量可比认证之类的大得多。

开源损害商业软件?

我从来不能同意这种看法。如果没有开源软件,恐怕商业软件公司也不能发展。没有竞争便没有进步。如果一个商业公司尚且不如一个开源软件好,那这个公司倒闭了也不失为一件好事。

不错,IBM从开源中得到了巨大的好处,甚至利用开源来对付微软。但这并不是什么错误的事情,商业公司,自然是要竞争,逐利的。IBM用linux作为武 器,但他也付出了应该付出的东西,比如说为开源社区捐赠硬件和代码,当然,你可以说这是为了更好的利用开源社区,不过,为什么微软不来这么利用一下呢? (现在微软也开始试图采用类似的手段了)。而事实上,开源社区的程序员也并非傻子,怎么会心甘情愿被IBM利用呢?自然,这是一种双赢的合作。IBM捐赠 的eclipse代码让开源社区欢呼雀跃,这足以说明了双方都对这个合作表示满意。

对于个人来说,开放总是好的。比如说,我把这篇文章贴出来给大家看,如果《程序员》杂志社的编辑们觉得尚有可圈可点之处,也许会联系我打算发表它。那我就把他编编改改,加工润色。虽然中心思想没变,但大家读到的肯定是一篇更好看的文章,这时候,我相信各位不会觉的花钱买杂志不值得。而如果我不让大家阅读我这篇文章,那可能永远他也不会有发表的机会。

有人建议,要把自己的程序代码看好,不要给别人看。这个说法我认为非常可笑,除非你的代码足够牛,否则,别人看了又如何?就算不看,人家自己写也不是写不 出来 的。而如果你的代码真得非常牛,那建议你最好去申请专利,用可更靠的手段来保护它。要知道,越是伟大的程序员,反而越不在乎开放代码,而水平低的程序员, 却往往“敝帚自珍”。说穿了,我看这还是缺乏自信和竞争力的表现。伟大的程序员乐于解决问题,而糟糕的程序员总试图躲避问题。

如果开源软件消失了,世界将会怎样?

一种很普遍的认识是这样的:“微软为计算机的普及作出了重大的贡献。” 这种说法当然没错,但,开源为计算机普及作出的贡献,你知道吗?

linus说:“学习计算机是一件很容易的事情,只要你有一台二手计算机,以及一张linux光盘,就可以开始了”。廉价的学习方法,给世界提供了大量的软件人才,这些人才参与商业运作,最终提升了整个行
业的发展。

如果没有开源软件,那很多人恐怕根本用不起计算机。很多企业也没有钱购买服务器系统,网络的应用萎缩了,行业水平降低了,最终受到损伤的,恐怕不仅仅是你 我这些以此行业为生的人。业内所有的硬件企业,软件企业都将受到影响。而IT的影响则又会影响到其它行业,最后可能甚至会造成整个社会经济水平的倒退和生 产力的降低。

这个观点吓人吗?一点也不吓人。诸位想一想,微软是什么时候才对internet发生兴趣的?在微软对internet发生兴趣之前,是谁支撑着 internet?是谁给用户提供ftp客户端,浏览器,服务器软件的?还不是开源软件?事实上,到现在为止,仍然可以说internet是靠开源软件而 负担起来的。

可以说,正是因为有了开源软件,才创造了足够的职位供大家工作和生活。憎恨开源社区,说开源会抢了程序员的饭碗,实在是杞人忧天,恩将仇报了。

我们从何作起?

说了这么多道理,可能很多人已经对开源有所了解。至少不应该再认为开源对程序员工作有伤害了。那么,我们应该做点什么呢?也许因为种种原因,暂时我们还不 能参与开源活动,我们也不能为开源产品撰写文章,摇旗呐喊。那,怎么办呢?很简单。开始使用开源软件。

如果你有足够的钱购买正版软件,那自然无可厚非。但如果没有呢?像方XX之类鼓动的那样,去用盗版?这不好,比起开源软件,盗版才是真正是要砸程序员的饭 碗。要知道,盗版就意味着你在抢劫另一些程序员的劳动成果。如果程序员自己都不 注意版权,那还有谁会为程序员撑腰呢?所以,从现在开始,我们应该做到尽量不使用盗版软件,尽量改用开源软件替代他。

总有观点认为开源软件使用起来比较复杂,我认为这实在是一种FUD。比如说,我使用open office来代替ms office的工作,一切良好。open office也能正确打开ms office的文档。到目前为止,我没有碰上任何不可解决的问题。

我认为开源软件完全能负担起一个人正常的工作。目前,我使用的开源软件包括:open office , netbeans , gvim , mozilla firefox等。这些软件都在各自的岗位上工作得很好。我很喜欢他们。希望将来你也能喜欢。

“如果你有一份快乐,把他和朋友分享,快乐变成了两份。如果你有一份烦恼,把他和朋友分享,烦恼只剩下了一半。”对于开源软件,这句话应该这样说:“如果 你有一个有意思的程序,把他开源,你的会得到一个完美的程序。如果你有一个疑难问题难以解决,把他开源,你的疑问消失了。”

July 3, 2005

盗版10年

0多年以前,我是个标准的可耻盗版者,虽然当时盗版光盘价值35-40一张,虽然当时我还只是个穷学生,不过还是尽量挤出来点钱去买几张,当时的感觉,唯一个爽字能形容。

第一个想买的正版软件,是金山词霸。98块钱。我攒了一笔钱,但天津买不到,令人很郁闷。96年或是97年,雷军和求伯君到天津联邦做西山居的一个游戏发布活动,我去了,场面不怎么热闹。当时的雷军也不像现在这样万众瞩目,我走过去,说我挺喜欢金山的东西,但是天津买不到金山词霸。雷军挺惊讶,立刻让随行人员拿了一套送给我,我请他签了名,又请求伯君签了名。这套软件,我用到了99年,在金山的“红色正版风暴”中又买了新版本才算下岗。我记得当时我对雷军说:我很喜欢软件,也会用VC作点小东西,希望将来有机会能到金山工作。雷军笑呵呵的表示欢迎。近10年后,我确实是按照我的理想从事着我喜欢的行业,但并不是金山。而金山也不是过去那个金山了。

当有人指责金山走娱乐化堕落的时候,我总想问:如果你用金山的软件,你买过哪怕一套正版吗?美国,一个winzip就能让作者财源滚滚,中国,一个金山这样的老牌通用软件公司竟然被迫无奈去做网络游戏,然而事实上你可以在几乎任何一台机
器上都能看到他们的软件。你能想象这有多荒谬吗?
某次聊天,我说我喜欢客户端软件,而刘韧不看好。问他原因,他说:“金山都作网络游戏了。” 这句话让我感觉特别悲哀。光凭一个词霸,金山就有理由活下来。
10年了,仍然有人在高呼盗版有理。说盗版有理的人往往认为如果没有盗版,中国计算行业不可能发展这么快。听上去很有道理。但,美国盗版程度比我们低得多,为什么计算机行业比我们强得多呢?他们比我们有钱,没错,但他们的中学生能比我们大城市的中学生有钱多少?我只在北大附中看到小孩子们的手机用的都比我好得多,骑的自行车也比我好很多。

《开源软件文集》中,有一句给我很大震撼的话:“学习计算机很简单,只需要一台二手电脑和一张linux光盘。”,其实比起当年的美国人,我们已经很幸运了,至少有这么多非常完善的开源软件可以供我们选择应用。建国初期,我们没有电子学基础,没有工业基础,但这个国家最后不仅造出了原子弹,还把神5送上了天。当年收音机大家买不起,结果谁都能自己做出来一个,难道没有盗版我们就没有计算机用了?
到目前为止,我没看到盗版给中国计算机行业带来什么好处,只看到他让一个个有理想的青年变得世俗,一个个伟大的公司娱乐至死.

每当有人说:“会用浏览器的back就是高端用户”的时候,我就想说:“靠,骑自行车会拐弯,算不算高端用户?”真拿中国人都当傻子呢?

附:我使用的软件列表

windows 笔记本随机附带,另安装一个freebsd,有时候也用,也安装了下面列出的大部分软件。
openoffice 替代ms office
outlook 2000 买pocket pc赠送
firefox
thunderbird
irfanview 看图软件
avast! 杀毒软件
jdk1.4.2&netbeans 开发工具和IDE
gcc&eclipse 开发工具和IDE
postgresql 数据库
gvim 文本编辑器
gaim IM工具
svn/wincvs 版本控制
还有什么?一时想不到了。
别跟我说这些东西难用,我也不傻。以上这些东西我用得很舒服。

March 8, 2004

也谈自由软件

在csdn看到了熊节转贴的文章:

http://www.csdn.net/develop/article/25/25146.shtm

关于oss,实在已经了被讨论了无数次的话题了。但是现在既然看到了,还是顺便说说我的看法。

先说说我对这个文章中2段话的看法。

首先,“Clemens Vasters先生直白地告诉他的小朋友:你做软件是为了养家糊口,所以别相信什么自由软件之梦,你应该尽一切可能地把自己的成果锁在自己的大脑和电脑里,尽一切可能地马上把它们折现。”,这种言论简直有点幼稚的可笑,难道你把自己的成果藏起来,就能折现?别忘了,首先他需要是个成果。闭关自守,失去和别人交流的机会,这能成为成果吗?如此成果,如何得到别人认可?如何折现?

然后“为open source做贡献不仅是一个难得的锻炼、交流、学习的机会,更是一个难得的获得名声和尊敬的机会——在开发者的社群,名声和尊敬几乎就意味着高薪。”这个是熊节所言。有点功利,但我以为是绝对真理。为oss作贡献的时候,其实你也学到了很多。或是为oss作贡献的时候,你可以找到志同道合者。名声可以变成钱,这是很自然的事情。你有那个能力,自然有人高薪相约。

在csdn后面的评论中看到一篇引自博客堂的文章:

懒得去找原文,直接贴这里吧。

-----------------------------------------------------------------------------------------------------------
动机与价值
思归总是成为引导话提的先行者。
无论是理想主义也好现实主意也好,人类最基本的生存原则都是无法违背的。
小气的神的随笔"可能性 vs. 必要性"里有几句话给我留下了深刻印象:
"
人们若不是因为可能得到某种利益而行动就是因为他不得不这么做
人们看待事情的角度若不是以对自己是否有影响作为判断依据,就是以是否会对他人造成影响作为依据
人们做决定不是为了感受快乐就是为了逃避痛苦
"
编写程序使的程序员获得了快乐,这种快乐来自于人类本性。很小的孩子就知道在沙滩上建造城堡获得这种快乐,他使人有成就感,驾御心,驱动你去学习,从而获得魔术般的力量。
free的思想倡导我们将自己获得的快乐无偿地与人共享。商业的头脑则认为这不应该仅仅是快乐,而且也是财富,别人要获得它,就要做出等价交换。

我是倾向于后者的。曾经有人通过msn向我咨询一个商业系统的设计思想,那个系统每年为他们的公司创造几百上千万的利润,可是系统越来越庞大,开发人员换来换去,没有一个坚固的程序框架,意用性,扩展性都很差。那时候,我突然意识到不能无常地告诉他。针对他个人我只能告诉他去读什么书,看什么samples。针对公司,我就应该通过讲课的形式或者某种其他形式获得应有的报酬。那是一次思想的突变。个人的交流是相互学习的过程,单向的无偿请教则是培养懒惰的途径。

ms是最好的商业思想学习榜样,gates从一开始就认识到了正确的商业模式。给无数的人带来快乐的同时,自己也获得了巨大的财富。没有免费的午餐,但是有永远的谎言。linux是另外一种商业模式,而且是一种建立在谎言基础上的模式。redhat,ibm这些公司几乎是无偿地使用了无数为linux奉献过的头脑。他们遵循协议,公开source,他们是通过读懂或者会使用别人编写的代码来来获得利润。那些写code的人是没有报酬的。这是什么样的逻辑???
open source的自由风格影响ms这样的商业公司,使的他们明白商业的目的是要满足和提供给人们快乐,无论那是通过怎样的形式,获取最大的价值是不变的主题。

我们来看看ms发动mvp活动的动机是什么?
MVP往往是某个领域的专家,他们拥有自己的个人魅力和事业,对他们的关怀,免费提供各种好处,只需要很小的代价,就可以将ms的影响通过他们扩散到他们的周围去。
这种彼此愉悦的活动真是最好的商业举动。

MVP们不断帮助人的动力是什么?
是MVP的名誉?错
是他们的内心可以从帮助人这件事获得愉悦。因为这种举动证明他是有用的人,是可以影响别人的人。
倡导open source的人们其实同样是为了获得这种感觉。只不过没有一个ms这么大的公司去鼓励他们,给他们MVP这样的名号而已。

在很久以前听到"没有永远的朋友,只有永远的利益"这句话的时候,我才知道什么是社会。

-----------------------------------------------------------------------------------------------------------

首先咱们要说说什么叫free,真正的free肯定不存在,你可以免费看sina的新闻,但是不得不忍受广告。free的意思大抵是说,我不找你要钱,但是有别人给我钱。

linux这个事情也是一样,说linux是“谎言”太偏激了点。还是前面的观点,参加这些项目你可以学到东西,可以提高名声,可以学会跟别人合作的能力,这些东西难道不是比钱更为珍贵的吗?凭什么说“他们遵循协议,公开source,他们是通过读懂或者会使用别人编写的代码来来获得利润。那些写code的人是没有报酬的。这是什么样的逻辑??? ”,这些东西绝对不是花钱再学校里可以学到的。就算用你付出的劳动交学费罢。

另外,oss开创的模式不仅仅有以上好处,还有好多别的用途,比如,用.text,我们就搭起了这个weblog供大家交流,在这个基础上我们可能创造更多的价值,或者说利润。(博客堂也是.text,这点不知如何解释,很有点所谓的“用着ms的东西却骂ms的味道吧。”)

世界总是很有趣,越是挖空心思赚钱的人,往往越是赚不到。所谓商业化,无非只是一种赚钱的方法。oss需要存在,商业软件也需要存在。如果某一天我们周围所有的代码都是要钱的,这多可怕啊。

对于思归本人,如果你没有义务的为大家做很多事情,解答很多问题,你觉得会有人找你咨询问题吗?这就是free给你带来的好处啊!你现在当然可以收费,不过,第6个饼吃饱了的同时,请不要忘记前面还吃了5个呢。

about me:
me.jpg
CC License. Some rights reserved.
署名·非商业用途·保持一致
本站之所有未作特别说明的内容均使用 创作共用协议.
POWERED_BY_MT_3.2