荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: doubleE.bbs@bbs.sjtu.edu.cn (Free - 华硕S5NE), 信区: Linux
标  题: 开源还是不开,难道是个问题?(ZZ)(转载)
发信站: 饮水思源 (Mon Jul 26 15:47:37 2004)
转信站: SZU!news.szu.edu.cn!netnews.sdu.edu.cn!SJTU

【 以下文字转载自 CS 讨论区 】
【 原文由 Longsky 所发表 】



个人认为写的比较精彩,所以转过来大家看看:
----------------------------------------------------------------------------

    最近关于开源的话题好像被热炒起来了。个人认为,这是个很糟糕的现象。当媒体都
关注一件事情的时候,这事情就要变味道了--正如blog现在的处境。
    前两天在csdn上看到一句很经典的话:“中国参加开源项目的人数最少,但是叫嚣开
源的人数估计最多。”确实,现在谁要不说点关于开源的话题,就显得那么土...所以我不
能免俗,也开始说。
    说实话,我很不能理解开源阵营怎么会跟微软阵营成了对立局面。无论是开源运动的
领袖们,还是bill gates,恐怕谁都不会有这种想法。世界没有微软是不行的,而微软恐
怕也乐得从开源社区得到些东西充实自己。无论是思想,精神,还是经验。
    很多人对开源这种现象不理解,认为程序员把自己用来维持生计的代码公开,是非常
不经济的行为。在我看来,持这种观点的多是入行没几年的新程序员。他们还没有真正被
程序员和hacker的文化浸淫过,自然也不懂开源的历史基础。

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


为什么要开源?
    很多人对“为什么要开源”这个问题表示好奇。程序员为什么要把自己用来维持生计
的东西开放给别人呢?
    开源往往产生于一次郁闷的经历:找不到好用的软件,喜欢的软件太贵,或是急需的
每个功能没有软件能做到。那,怎么办呢?好吧,既然是程序员,就不应该为这个事情发
愁。自己写吧。
    很快,程序写好了,虽然有这样那样的缺点,但确实勉强能用了。这时候会有两种选
择,1是把软件拿给别人用,收费或不收费。采用这种方法的时候,因为有很多 缺点,用
户肯定会提出很多意见。如果程序员不去修改,那往往就丢了用户,最后变得很没有成就
感。如果继续修改,那会花费太多的精力,而且很多事情是非常无 趣的。(比如说作win
dows程序的界面工作,我就非常讨厌。我宁可去写10个无界面的程序,也不愿意写一个有
界面的程序)最后,这个程序可能反而成了 程序员心中的一个疙瘩,做下去,没精力,不
做下去,可惜了。这时候,第2种选择就出现了--开源。程序员开放了这个软件的代码,用
户需要什么功能,或是发 现什么bug,都可以自行修改。这样,原作者始终是这个软件的
作者之一,原作者也享受了别人修改完成的功能,软件变得更好用了,用户越来越多,原
作者也有 了名声和荣誉。
    对于一个真正热爱软件事业的程序员,写程序并不比再网上发贴拍砖更难。而一个真
正的程序员又往往是充满好奇心和热情的家伙。所以,可能很多人都像我一样, 热衷于解
决难点,而对后继的维护烦闷不堪。这直接导致了一种后果--硬盘上堆满了写了一半的程
序,没有一个能release的。其实这些程序反倒是最适合 开源的。要知道,很多人喜欢后
继的维护,也喜欢作界面上的细致工作,但他们没有开始的契机。这不,我的朋友tinyfo
ol就基于此开发准备开放两个程序的代码。

开源带来了什么?
    很多人说,我要赚钱养家,而开源不能给我带来收入,还要浪费我的时间,所以我不
会从事这种工作。
    对于这种观点,熊节曾经写道:“即使单从利益的角度来说,为open source做贡献不
仅是一个难得的锻炼、交流、学习的机会,更是一个难得的获得名声和尊敬的机会——在
开发者的社群,名声和尊敬几乎就意味着高薪”。这 个看法曾经遭到了很多人的批驳。有
趣的是,支持开源者认为这种说法损害了开源的纯洁性,而不支持开源者从用此作为攻击
开源的论据。
    我是同意熊节的看法的。要明白这句话,首先要对开源有一个正确的认识。在我看来
,开源是属于计算机科学的范畴,而商业软件的开发属于商业范畴。双方并没有 冲突之处
。大家都明白,科学研究本身是不能带来利润的。要得到利润,就必须进行商业化运作。
但如果没有科研,商业也无法一支独秀。
    传统的科研领域如何获利呢?科学家们靠什么生活呢?不外有这样几种:著书立说,
到高校授课,发表演说,应邀作商业公司的顾问等。爱因斯坦研究相对论的时 候,只是专
利局的一个小职员。但这并不妨碍他后来成为伟大的科学家。在传统科学领域越来越完善
,可供个人完成的发现和研究越来越少的今天,计算机科学给我 们提供了太多这种机会。
一个好的开源项目组成员,是绝对不应该缺钱花的。
    对于这个看法,有一个很好的例证。想必大家都使用过BT这个优秀的下载软件。关于
BT的作者,有这样一段描述:
    “尽管BitTorrent获得了如此巨大的成功,然而直到几个月前,它并没有为Cohen带来
过一分钱。"去年9月份我没有一丁点钱,"Cohen回忆 到,他当时只好利用这张信用卡的免
息期来透支,填补另一张信用卡的帐单来过活。”
    听起来很凄惨,不是吗?不过事情很快有了转机:“某天,Cohen的 事情为Valve软件
公司的常务董事Gabe Newell所获悉。尽管Valve正在开发令游戏玩家望眼欲穿的Half-Lif
e 2,但是它同时也在建立一个名为Steam的在线分发网络。由于Cohen掌握这个领域的专门
技术,所以Valve为他提供了一个职位。Cohen从十月 份起搬到西雅图,开始了他的工作。

    好了,Cohen的工作问题终于解决了。因为BT,我们的网络生活变得更精彩了,因为B
T,Cohen找到了一份称心如意的工作。世界上还有比这更为理想的双赢吗?
    所以说,虽然参与开源软件本身并不能获利,但它往往会给你带来巨大的好处。对于
在校学生,更是如此。在学期间并没有养家糊口的压力,如果能参与开源活动, 作出一定
贡献,那么即学到了技术,又积累了声誉。如果能成功的领导一个项目,那就是难得的项
目经理人才。待到真正找工作的时候,由于你的突出表现,可能往 往会使工作先找到你。

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

开源损害商业软件?
    我从来不能同意这种看法。如果没有开源软件,恐怕商业软件公司也不能发展。没有
竞争便没有进步。如果一个商业公司尚且不如一个开源软件好,那这个公司倒闭了也不失
为一件好事。
    不错,IBM从开源中得到了巨大的好处,甚至利用开源来对付微软。但这并不是什么错
误的事情,商业公司,自然是要竞争,逐利的。IBM用linux作为武 器,但他也付出了应该
付出的东西,比如说为开源社区捐赠硬件和代码,当然,你可以说这是为了更好的利用开
源社区,不过,为什么微软不来这么利用一下呢? (现在微软也开始试图采用类似的手段
了)。而事实上,开源社区的程序员也并非傻子,怎么会心甘情愿被IBM利用呢?自然,这
是一种双赢的合作。IBM捐赠 的eclipse代码让开源社区欢呼雀跃,这足以说明了双方都对
这个合作表示满意。
    对于个人来说,开放总是好的。比如说,我把这篇文章贴出来给大家看,如果《程序
员》杂志社的编辑们觉得尚有可圈可点之处,也许会联系我打算发表它。那我就 把他编编
改改,加工润色。虽然中心思想没变,但大家读到的肯定是一篇更好看的文章,这时候,
我相信各位不会觉的花钱买杂志不值得。而如果我不让大家阅读我 这 篇文章,那可能永
远他也不会有发表的机会。
    有人建议,要把自己的程序代码看好,不要给别人看。这个说法我认为非常可笑,除
非你的代码足够牛,否则,别人看了又如何?就算不看,人家自己写也不是写不 出来 的
。而如果你的代码真得非常牛,那建议你最好去申请专利,用可更靠的手段来保护它。要
知道,越是伟大的程序员,反而越不在乎开放代码,而水平低的程序员, 却往往“敝帚自
珍”。说穿了,我看这还是缺乏自信和竞争力的表现。伟大的程序员乐于解决问题,而糟
糕的程序员总试图躲避问题。

如果开源软件消失了,世界将会怎样?
    一种很普遍的认识是这样的:“微软为计算机的普及作出了重大的贡献。” 这种说法
当然没错,但,开源为计算机普及作出的贡献,你知道吗?
    linus说:“学习计算机是一件很容易的事情,只要你有一台二手计算机,以及一张l
inux光盘,就可以开始了”。廉价的学习方法,给世界提供了大量的软件人才,这些人才
参与商业运作,最终提升了整个行业的发展。
    如果没有开源软件,那很多人恐怕根本用不起计算机。很多企业也没有钱购买服务器
系统,网络的应用萎缩了,行业水平降低了,最终受到损伤的,恐怕不仅仅是你 我这些以
此行业为生的人。业内所有的硬件企业,软件企业都将受到影响。而IT的影响则又会影响
到其它行业,最后可能甚至会造成整个社会经济水平的倒退和生 产力的降低。
    这个观点吓人吗?一点也不吓人。诸位想一想,微软是什么时候才对internet发生兴
趣的?在微软对internet发生兴趣之前,是谁支撑着 internet?是谁给用户提供ftp客户端
,浏览器,服务器软件的?还不是开源软件?事实上,到现在为止,仍然可以说internet
是靠开源软件而 负担起来的。
    可以说,正是因为有了开源软件,才创造了足够的职位供大家工作和生活。憎恨开源
社区,说开源会抢了程序员的饭碗,实在是杞人忧天,恩将仇报了。

我们从何作起?
    说了这么多道理,可能很多人已经对开源有所了解。至少不应该再认为开源对程序员
工作有伤害了。那么,我们应该做点什么呢?也许因为种种原因,暂时我们还不 能参与开
源活动,我们也不能为开源产品撰写文章,摇旗呐喊。那,怎么办呢?很简单。开始使用
开源软件。
    如果你有足够的钱购买正版软件,那自然无可厚非。但如果没有呢?像方XX之类鼓动
的那样,去用盗版?这不好,比起开源软件,盗版才是真正是要砸程序员的饭 碗。要知道
,盗版就意味着你在抢劫另一些程序员的劳动成果。如果程序员自己都不 注意版权,那还
有谁会为程序员撑腰呢?所以,从现在开始,我们应该做到尽量不使用盗版软件,尽量改
用开源软件替代他。
    总有观点认为开源软件使用起来比较复杂,我认为这实在是一种FUD。比如说,我使用
open office来代替ms office的工作,一切良好。open office也能正确打开ms office的
文档。到目前为止,我没有碰上任何不可解决的问题。
    我认为开源软件完全能负担起一个人正常的工作。目前,我使用的开源软件包括:op
en office , netbeans , gvim , mozilla firefox等。这些软件都在各自的岗位上工作得
很好。我很喜欢他们。希望将来你也能喜欢。
    “如果你有一份快乐,把他和朋友分享,快乐变成了两份。如果你有一份烦恼,把他
和朋友分享,烦恼只剩下了一半。”对于开源软件,这句话应该这样说:“如果 你有一个
有意思的程序,把他开源,你的会得到一个完美的程序。如果你有一个疑难问题难以解决
,把他开源,你的疑问消失了。”
----------------------------------------------------------------------
原文位于:http://dev.codelphi.com/virushuo/archive/2004/07/21/17392.aspx
--

※ 来源:·饮水思源 bbs.sjtu.edu.cn·[FROM: 202.120.47.45]
--
※ 转载:·饮水思源 bbs.sjtu.edu.cn·[FROM: 202.120.1.32]
--
※ 转载:·饮水思源 bbs.sjtu.edu.cn·[FROM: 202.112.96.82]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店