• 当我谈开源时,我谈些什么?
    时间:2012-08-11   作者:庄表伟   出处:zhuangbiaowei.com/bl

    关于开源,我有很多的感想,但是在一篇文章之中,我可以谈些什么呢?在与程序员杂志的编辑杨爽聊天时,我虽尚未理清自己的思路,却想到了一个听起来不错的标题《当我谈开源时,我谈些什么?》因为像这样一个看起来完全开放的标题,似乎什么都可以往里面装。简直可以随便涂涂就写出一篇形散神不散的散文了。

    一、关于创新

    那么,到底应该如何看待开源呢?近日我在读的一本书:美国的Steven Weber写的《开源的成功之路》其中说到一个非常重要的世界观的区别:关于人类的动机,具体到编写软件上,究竟是为了挣钱?还是像真正的艺术家一样就是为了创作和尝试?在比尔盖茨看来,盗版的行为,偷窃软件,让程序员免费干活,最终会抑制创新。而在开源黑客看来,发布软件却不发布代码,限制了合作的范围,也阻断了别人可能的改进和进一步创新。看起来,两边都说的很有道理,而且有趣的是,都在拿创新说事儿。究竟什么样的激励,才能激发更多更好的创新呢?是金钱?还是纯粹的爱好、乐趣和荣誉感呢?

    公平一点说,如果没有软件版权、专利法、代码编译与加密技术,软件产业可能远远没有现在那么庞大,也难以养活像现在那么多的程序员。也许只会剩下一部分真正热爱编程,有没有钱都要编点什么的人了。但是,我更想从另一个角度来提问:“这个世界上,最重要、最伟大、最具有影响力的创新,有多少是金钱激励出来的呢?”

    再提一个问题来问咱们程序员自己:“选择程序员这样以一个职业,是因为它能够有一份足够体面的薪水?还是因为它让我有机会创造一些改变世界的东西呢?”最能够激励创新的,难道不是创新本身吗?在《失控》中我读到过一段话,曾令我激动万分。研究人工生命的最高远的动机是“目前,普通的计算机程序可能有一千行长,能运行几分钟。而制造人工生命的目的是要找到一种计算机代码,它只有几行长,却能运行一千年。”如果我们能够创造出这样的代码,那简直就是一个程序员,最高的追求。

    所以,在谈开源的时候,我想谈的第一点,是关于创新,是究竟什么样的模式,才能更好的激发创新?

    二、关于生活方式

    除了《开源的成功之路》,还有一本书,也很值得一读。Steven Levy写的《黑客–计算机革命的英雄》。豆瓣上有一位Pope写书评,非常精当

    这本书并不是很有吸引力,因为每翻过几页,就恨不得撇开书,抡起胳膊大干一场。 是的,那些黑客英雄的故事,令我们读来大呼过瘾,那样的生活、那样热血的日子,真是令人神往的日子!

    在《黑客》的第二章,以非常概括的方式,介绍了“黑客伦理”:任何人与任何规则,都无法阻断人类的好奇心;没有权威,凭实力说话;你可以在计算机上创造出艺术与美;计算机可以让你的生活更美好……

    如果你看了以后,也深有同感,那么成为一个黑客就是你自然的选择。成为一个黑客,就是选择一种生活方式,选择无尽的探索与创造;选择用键盘书写代码,来改变这个世界;选择向全世界展示自己的成果;选择和全世界的聪明头脑联接在一起。而对于黑客来说,无法看到源代码,无法了解事情是如何运作的,无法掌握与控制那些系统,这简直就是一种难以想象的罪恶。

    所以,在谈开源的时候,我想谈的第二点,是关于生活方式,以及选择这种生活方式时,背后的信仰。

    三、关于现状

    我这篇文章,是用简体中文写的,面向的目标读者是国内的开发者。无法否认的一点是:现状的确不容乐观!

    曾经我在CSDN接受过一次书面采访,CSDN的记者提了很多问题,整篇文章的标题是《拥抱开源从中受益》。但是,下面的跟贴评论,实在是令人丧气:收入可怜,没有属于自己的居所,开毛源;开源在咱们的社会主义初级阶段根本行不通。搞技术的都是穷人,开个狗屁的源;估计开源在中国,就是有钱,有房,有车,有老婆,有孩子,还没什么具体的事情干的人,无聊了然后去弄弄的东西;

    这是现状之一。

    在国内,我看到很多人自称屌丝。而程序员,则自嘲为码农。自我贬低,自我嘲讽,自怜自艾,自诩为苦逼。放眼望去,人家全是高富帅,官二代。唯独自己是看不到未来,买不起房的矮穷挫。

    这是现状之二。

    这个世界上有两种奇怪的逻辑(而且在国内都很常见),一种是“国外有一个好东西,咱们克隆一个吧!”,另一种是“已经有一个很好的了,我们为什么还要做一个?”。这两种逻辑背后,其实掩藏着同一种不自信,那就是:“我们不可能有创新,不可能做出更好的东西来,不可能后来居上!”这是何等的可悲!?

    这是现状之三。

    做开源的人,往往非常孤独。一个开源项目,默默的诞生,默默的改进,然后默默的停止,最后默默的消失。这样的孤独感,很多开源人都体会过。国内的开源人,还有一些特别的体会:被人质问:做这个干啥,又不能挣钱?被人贬低:国产的东西,会有好东西?被人反问:你们不是做免费软件的吗?怎么还要收服务费?

    这是现状之四。

    所以,在谈开源的时候,我无法绕过现状不谈。

    四、关于良性循环

    有一种常见的思维方式,就是分析复杂现象背后的因果关系。通常我们会发现一个循环依赖的因果链。既可以用于解释现状,也可以用来指导破局之法。简单的分析国内的开源领域,我们也可以发现这样的循环。因为缺乏足够多、足够好的开源爱好者,自然无法做出更多优质的开源产品;因为缺乏优质的国内开源项目,大多数开源产品的使用者,都习惯于在国外的开源社区寻找项目;因为大家的眼光都放在外面,作为受益者的个人用户与企业用户,也难以兴起回馈社区、捐赠开发者的念头;因为国内的开源人难以得到足够的赞助和支持,自然不会有很多人热心的投入开源。这样,开源人、开源产品、开源用户的循环依赖,就成了一个死结。

    当然,如果乐观一点来看问题,我们也可以说:要建立一个良性循环的开源生态圈,既可以从任何一个要素入手,也不妨大家齐努力,从多个方向下手。日拱一卒、不期速成。逐步推动,总会有所进展。

    如果要分一个轻重缓急,那么我认为给国内开源,找到更多的生力军,也许是可以优先考虑的做法。一方面要让更多的程序员意识到,即使不挣钱,做开源也是有收益的。我想引用微博上的两段话,来说明我的观点:

    @姜宁willem
    知识改变命运,想通过开源项目获取知识,只要你愿意,地球上没有人能阻挡你。 在这里不拼爹,不拼公司背景,拼的是对技术追求的那颗心。 通过开源项目能实现个人价值,只是在国内这样的成功案例不多。

    @Freeman小屋
    相对于在闭源公司的工作,开源社区的工作决不会让你成为nobody,每一次代码提交,每一次回答问题,都是对你自身reputation的积累,并且你的工作都有track,想想找工作的时候你只要说我是某社区的谁就能拿offer了。而且,我特别希望在校的大学生,能够意识到这一点,在完全没有经济压力、思想又最为活跃的阶段,多多参与开源,绝对是有益无害,一本万利的好事情。

    其次,则是帮助国内现有的,优秀的开源项目,找到用户,找到参与者,找到加盟者。让他们能够更好的发展起来,成为国内开源项目的榜样。诞生一个一个的成功故事,使得做开源,也变得越来越有吸引力。这方面的工作,我想InfoQ这样的社区与媒体平台、QCon这样的技术大会、QClub这样的技术小会,也许可以做得更多。如果能够出现国外那样的成熟的开源基金会,以某种公开、公平的方式,赞助各种开源项目。以及帮助那些顶级的开源项目,更好的走向商业化的方向。总之,可以做的事情非常多。

    当然,帮助众多的、不知名的开源项目,能够出现、能够发展,则是开源托管平台这样的服务,应该努力做的事情了。在知乎,我回答过一个问题《GitCafe 这样的代码托管网站在国内的前景如何?》

    我在盛大创新院工作,我们团队,正在做一个叫做 www.teamhost.org 的开源托管服务。说起来,还是GitCafe的竞争对手。在我看来,中国的开源社区,不是太多,而是太少太少。应该有至少10~20家,努力的、优秀的、互相良性竞争的开源托管服务社区,大家一起来做开源服务,不但竞争,而且合作。不但努力争夺用户,而且共同把开源的爱好者服务得更好。这样,中国的开源才能发展起来,而且发展得越来越好。

    再其次,才是说服更多的企业,赞助开源。毕竟商业公司,不容易看到太虚幻的利益,只有实实在在的好处,才能够有说服力。当然,这个事情总是困难的。所以,对于这种困难的事情,说得太多意义不大,倒不如各自努力去做。

    就此搁笔。

    网友留言/评论

    我要留言/评论

    相关文章

    如何招到烂程序员:我已经阅读了大量的关于如何 招募优秀开发人员的文章, 但如果你只对烂程序员感兴趣 – 哪该怎么办? 也许你并不需要用人才去挣钱,或者你觉得保质保量的完成工作并不是最重要的事。 不管是出于何种原因,本系列的关于烂程序员的文章都是关于这方面的窍门。 欢迎阅读第一篇:‘如何发现烂程序员’。
    移动互联网的十种支付方式:产品经理和开发者们将热度飙升的“移动支付”分为“远程支付”和“近场支付”,但更多的用户并不关心原理,只关心这些新鲜的支付方式是否有足够的“未来感”,是否足够好用。在这个移动互联网的时代,连“花钱”的姿势也变得时髦起来。
    草根微博的粉丝4大来源:如果仅凭一己之力发点微博,能获得上万的粉丝量就说明已经很不错了,而快速获得动辄十几万、几十万的微博大号的粉丝从那里来呢,我总结大致分为四类。
    爸爸和无我编程十条诫律:在爸爸去世前,我和他谈论了2个星期关于编程的事。
    从KPI谈产品的“抓大放小、合理规划、需求驱动”:KPI,Key Performance Indicator,互联网产品工作也离不开KPI。产品设计之初就要考虑转化率、用户注册量、活跃用户量、UV/PV、日登等等,并且在今后的产品成长中对这些指标负责,不断的改进完善,完成阶段目标的KPI。与此同时能起到第二个潜移默化的作用:施加一定压力,督促产品经理工作。
    创业总结:创业公司怎样留人:创业阶段的公司,人是第一位的,事儿是人做的、资源在人手里,团队决定了项目的路能走多远,投资人最看重的也是团队。创业公司没钱没名气,招人、留人都很难,团队人员流失,不仅耽误项目进度,也影响士气,招人和留人是创业团队最头疼的问题之一,根据我创业时验证的结果总结已下几点经验。
    编程让我知道自己在变老:编程让我知道自己在变老
    1532天没有改过一行代码。:1532天没有改过一行代码。一个超过四年没有理睬的业余时间做的网站如何能做到天天都还有人注册?
    10 个改善网页可读性的实用排版技巧:网页的排版问题常常被忽视。这挺遗憾的,如果你能改进你的网页排版,那么设计和可读性也就随之改进。在这篇文章中,介绍了10个非常有用的排版技巧,可以使你的网站看起来更好。
    产品角度分析风车网项目被终止的原因:人人网曾与艺龙战略合作,启动六位价收购的域名qingting.com蜻蜓项目,并重金成立独立公司、封闭开发,项目几度摇摆,长期消耗不上线,最终产品方向变化,改为风车。我没有参与风车,但是我在蜻蜓呆过,也正是因为产品意见分歧时变动较大离开的蜻蜓。看到晓峰写的总结,我作为曾经的旅游创业者、蜻蜓的产品经理、现在的旁观者,从产品角度分析一下风车项目搁浅的原因。