BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

当我谈开源时,我谈些什么?

| 作者 庄表伟 关注 0 他的粉丝 发布于 2012年8月1日. 估计阅读时间: 10 分钟 | Google、Facebook、Pinterest、阿里、腾讯 等顶尖技术团队的上百个可供参考的架构实例!

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

一、关于创新

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

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

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

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

二、关于生活方式

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

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

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

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

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

三、关于现状

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

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

这是现状之一。

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

这是现状之二。

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

这是现状之三。

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

这是现状之四。

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

四、关于良性循环

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

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

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

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

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

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

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

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

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

就此搁笔。

投稿来源:当我谈开源时,我谈些什么?


给InfoQ中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ)或者腾讯微博(@InfoQ)关注我们,并与我们的编辑和其他读者朋友交流。

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

路过 by Wu Frankie

不错!

什么也没说 by q q

什么具体的也没说,没说如何解决国内开源的问题。

sth. by 袁 佳君

既然有了gitHub,真不明白我干吗需要gitCafe??

与写代码的人为伍就好了 by Kim Ian

代码区分国内与国外么?最多也是:嗨,你也是中国人那。

当然,开源仍然需要更多的商业模式以便写代码的人更好的发展。这种创新仍需要继续下去,而不是象现在这样就停止了。

你让处于温饱的人怎么去感受更高级的喜悦 by zhang zhijia,.

心理学把需求分成很多种层次,中国软件产业的现状整体上还处于温饱的阶段,创新和开源这样高的追求屌丝和码农还是没有这样的需求。但是这是趋势

说得很好 by woo joy

国内现在也有了一些好的开源项目, 但是大多这种项目的主页都是中英文的.
这说明, 这些人都是经常在国外的开源社区活跃的人, 中国不缺乏好的程序猿, 缺乏的是好的环境.
中国大学生普遍被教育在M$的环境下, 对于开源这种东西, 也只是用用, 并没太多的贡献精神; 有些想做一些开源项目的人, 又发现不知道该怎么做.
本地化的项目托管是一个非常好的起点, gitcafe我觉得很好, 如果可以在国内建立一个好的开源项目托管, 我相信国内的开源会逐渐兴起, 会有一个好的将来.
一切都是兴趣, 一切都是为了理想, 程序猿应该是一种追求信念的人, 而不是利益.

Re: 说得很好 by cen jacky

确实,国内的计算机教育问题对开源精神影响很大

关于现状的一章写得很好 by Dan Mao

关于现状的一章写得很好,解决方案的第四章却显得乏力得很。理想很丰满,现实很骨感的典型。

事实是:
1、软件开发在国内的地位很低,这点与印度应该是最大的差异;
2、软件开发对多数的中国程序员来说,只是工作,而不是爱好;
3、中国程序员的英文普遍水平不高,很难与国外开源社区互动,但在国外的开源社区却也不乏比较厉害的中国人;
4、中国人甚少有花钱用软件的习惯,盗版猖獗。立足于国内普通用户的顶级软件开发商金山就是典型的例子,wps,金山词霸等面向最终用户的软件我觉得做得很好,但生存困难,只有免费的互联网企业才活得风生水起;
5、中国教育培养了一大批软件工人,但对于创新的培养却很不够。

中国的开源其实没什么特效药,需要一个漫长的过程。当中国用户的电脑里,看不到那么多的盗版软件时,开源软件在中国才有真正生存的土壤。

一个好引子 by Yang Ning

虽然有正面和负面的评论,这个引子还是不错的。 我除了Database Modeling Excel(dbmodelexcel.codeplex.com/)之外, 对开源贡献很少。我觉得我在这方面比较闭塞,旁边也没有听说谁在搞开源。
我的观点是:
1. 不要太讲国内国外,这是一个闭塞的思想。软件是一个国际化的平台,我们应更关注如何”让中国开发人员参与到开源(而不是国内的开源)中去?”
2. 不用追求数量。应该多注重联系和精神支持。
也许国内搞开源的人甚少, 更重要的是这些人没有(或者根本没有必要)被联系在一起, 因此我们不知道实际的数量。
愿意搞开源的开发者内在精神动力在于“工程师追求创造自己的纪念碑(engineers seek to create their own monuments (From Watts S. Humphrey's "Managing Technical People"))”。搞开源的开发者基本上被认为是不追求个人利益,默默无闻的少数分子(也可以认为是疯子)。这种人并不多见。开源路不易坚持,精神上的鼓励,友谊很重要。
3. 注重参与。一个开源项目的开发中,除了开发者外,还需要美工,翻译,测试等各种人员。如果干不了大事儿,干小事也很有很大的帮助。
4. 开源项目的运作。对于开源项目来说,同样需要开发、市场、销售和技术支持等多方面的运作。懂市场和销售的人员的介入将会有利于开源的发展。

6per by huang min

我个人觉得在不尊重版权概念的地方更难做到开源。
现在用开源程序的人其实不少吧。有多少遵守了那些程序要求的开源协议呢?连正式版权都不放在眼里,这些可以让世界变成正循环的协议就更别提了。

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

10 讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT