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

这本来是一篇打算投稿给《程序员》杂志的稿子,可惜他们用不上了。于是我就打算发在这里,欢迎大家多多批评。


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

一、关于创新

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

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

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

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

二、关于生活方式

除了《开源的成功之路》,还有一本书,也很值得一读。Steven Levy写的《黑客–计算机革命的英雄》。豆瓣上有一位Pope写书评,非常精当:“这本书并不是很有吸引力,因为每翻过几页,就恨不得撇开书,抡起胳膊大干一场。”是的,那些黑客英雄的故事,令我们读来大呼过瘾,那样的生活、那样热血的日子,真是令人神往的日子!

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

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

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

三、关于现状

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

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

这是现状之一。

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

这是现状之二。

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

这是现状之三。

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

这是现状之四。

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

四、关于良性循环

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

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

如果要分一个轻重缓急,那么我认为给国内开源,找到更多的生力军,也许是可以优先考虑的做法。一方面要让更多的程序员意识到,即使不挣钱,做开源也是有收益的。我想引用微博上的两段话,来说明我的观点:@姜宁willem:知识改变命运,想通过开源项目获取知识,只要你愿意,地球上没有人能阻挡你。 在这里不拼爹,不拼公司背景,拼的是对技术追求的那颗心。 通过开源项目能实现个人价值,只是在国内这样的成功案例不多。 @Freeman小屋:相对于在闭源公司的工作,开源社区的工作决不会让你成为nobody,每一次代码提交,每一次回答问题,都是对你自身reputation的积累,并且你的工作都有track,想想找工作的时候你只要说我是某社区的谁就能拿offer了。而且,我特别希望在校的大学生,能够意识到这一点,在完全没有经济压力、思想又最为活跃的阶段,多多参与开源,绝对是有益无害,一本万利的好事情。

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

当然,帮助众多的、不知名的开源项目,能够出现、能够发展,则是开源托管平台这样的服务,应该努力做的事情了。在知乎,我回答过一个问题《GitCafe 这样的代码托管网站在国内的前景如何?》:我在盛大创新院工作,我们团队,正在做一个叫做 www.teamhost.org 的开源托管服务。说起来,还是GitCafe的竞争对手。在我看来,中国的开源社区,不是太多,而是太少太少。应该有至少10~20家,努力的、优秀的、互相良性竞争的开源托管服务社区,大家一起来做开源服务,不但竞争,而且合作。不但努力争夺用户,而且共同把开源的爱好者服务得更好。这样,中国的开源才能发展起来,而且发展得越来越好。

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

就此搁笔。

规则与例外——写给知乎的一封信

 

一、缘起

起因是一件小事,我在知乎看到了一个问题:知乎最近人气不高,大家觉得是什么原因?这原本不是一个糟糕的问题,但是提问者顶着移动互联网行业高级产品经理的头衔,却没有提供任何可供佐证的数据,直接就是一句话。于是我就吐槽了。

一个“移动互联网行业的高级产品经理”,提了一个没有任何数据支持的问题。居然引来了30+个答案。
一堆人,在回答着各种的答案,只有@曾探索 和@梁添胜 指出数据不足的问题。其他的人,不过是各种吐槽而已!
拜托,@李申 你提这个问题的时候,经过了自己的思考了吗?没有数据支持的问题,有意义吗?
拜托,@李大头 你的排名第一的回答,除了文不对题之外,有什么意义吗?还有一堆的人给你投赞同票,都是出于什么心理啊?
我知道这个回答,会得罪一大票人,但是忍不住啊!

这个回答因为引发了诸多共鸣,得票一路高升,最终排名第一。但是,在昨天晚上7~8点的时候,突然就被折叠了。这明显不是群众投票的结果,而是运营行为。

于是,我在微博上发出来质问,并且cc给了@黄继新 。两人的对话如下:

@庄表伟:这个回答在@知乎 得票第一却被折叠,使我对于知乎有各种的失望。cc @黄继新
@黄继新:表伟,我完全赞同你的观点。但你很了解知乎了,在知乎上,一个回答,如果没有直接回答问题,而是对其他回答吐槽,如果排第一,反而违背了知乎的原意不是?提供一个更好的回答,来碾压不靠谱,才是靠谱的方式啊。
@庄表伟:回复@黄继新:问题本身就不靠谱,回答也没几个靠谱的。当时的情况就是这样。我的回答,没法针对问题给出答案,当然只能吐槽问题和其它回答。现在的折叠,明显是运营手段,而非投票结果,如何能令人信服?
@黄继新:回复@庄表伟: 垃圾问题,我们都会处理,带有预设判断的问题,都很容易垃圾,并且很容易伤害回答者。因此,所有含有预设判断的问题,我们都是鼓励用户举报,交由我们处理。但这个问题,关于知乎,我们内部明确过,任何批评知乎的问题,都不能碰,才导致垃圾问题被你看到,让你不爽。
@黄继新:回复@庄表伟: 表伟不妨仔细想想,对知乎来说,维护规则更重要,还是根据不同情况,改变规则以进行不同的应对更重要?
@黄继新:回复@庄表伟: 如果知乎不维护规则了,而是见机行事,那么知乎会让我失望,并且进一步让更多人失望。

 

因为发现黄继新的回复,存在逻辑漏洞,我决定写这篇文章。

 

二、知乎为什么会例外?

黄继新的话,存在前后矛盾,如果按照他的说法“维护规则更重要”,而不是“根据不同情况,改变规则以进行不同的应对”。那么,知乎为什么会例外?为什么会有:“关于知乎,我们内部明确过,任何批评知乎的问题,都不能碰”这样的例外?正是因为出现了这样的例外,所以才会导致“垃圾问题被我看到”。这是知乎想要的效果吗?因为存在垃圾问题,导致知乎的问答质量整体下降?

好吧,就算出现例外。那么你们的原则又多了一条“任何批评知乎的问题,都不能碰”,那么关于批评知乎问题的回答,你们怎么就可以碰了呢?问题不好碰,答案就碰得了?

好吧,就算答案碰得,这是你们的运营手段之一,当然可以用。按照黄继新的说法“一个回答,如果没有直接回答问题,而是对其他回答吐槽,如果排第一,反而违背了知乎的原意不是?”我也同意。那么,那个问题下的回答,只有我在吐槽吗?匿名用户的那个答案,目前排名第二,怎么又不折叠?都已经动用运营手段了,怎么不贯彻到底呢?在那个回答里,按照你们的原则,有几条能够留下的呀?我是说:有针对性的,真正在讨论知乎为何最近人气不高的?有几个呢?

 

三、怕得罪的是什么人?

仔细想想自己的答案被折叠的原因,应该是因为我的回答打击面太宽了吧。出于怕得罪人的角度来说,折叠我的回答,自然可以不得罪大多数的知乎用户,只需要得罪我一个人就可以了。毕竟少数服从多数嘛。

但是,我在知乎泡得久了,真的看到过其他例外。在Yolfile是谁?这个问题里,得票70的圆SAN圆的回答,为什么又被折叠呢?这回又是怕得罪谁呢?

@带三个表 是谁?他的无礼行为在知乎不会受到惩罚吗? 这个问题里,带三个表的回答,赫然排在第一位,三表老师写到:“人类获取知识的方式有很多种,不是他妈的写成辞海那样才叫知识。欢迎知乎把我礼仪了。”那么,三表老师被折叠了吗?没有。这回又是不怕得罪谁呢?

当然,我可以理解,他们都是知乎的MVP(最有价值用户),哪里得罪得起?但是,我在知乎泡得实在太久了,真的还看到过其他例外。在一个著名的问题下整个人类处于互联网发展的哪个阶段?下一个十年,互联网升级的大致方向在哪里?,拥有3万多粉丝,获得了275票的Fenng的回答,依然被折叠了。就因为提问者是ponyma吗?

某一次跟黄继新讨论,他认为我将知乎用户,区分等级,是不对的。当然,区别对待知乎的用户,擅自划分等级,是错误的。那么,你们有没有区别对待不同的用户呢?

 

四、排名机制出了问题。

我在知乎,提过两个问题,知乎的答案排序能否以获得赞同与感谢的快慢为依据? 还有可能导致知乎走向失败的最大风险是什么?这两个问题,有一定的关联性。因为现在知乎的排名机制出了问题,导致名人效应、第一名效应,糟糕的回答下不去,好的回答上不来。

因为上来、下去都不容易,所以知乎会频频采取人工干预的手段。一旦人工频频干预,就会出现标准不一致,取舍不一致,整个团队对于何为优质回答,发生偏移和分歧。我的原本的回答是:

我担心的最大的问题,就是知乎运营团队,在何为优秀的判断上,默默的,不自觉的,有意无意的,向KPI低头,向热闹低头,向名人和大企业低头。最终,从一个一流的问答社区,变成为一个二流的,却标榜自己是一流的问答社区。

黄继新在我的这个回答下面留言说:“表伟的回答很好,提醒也很好,虽然目前没有出现表伟所谈的情况,但让我们随时警醒,也是大好事。”但是,我的话里,实际是有所指的啊!

 

五、公开透明才是办法。

网络社区同样是一个社会,也同样会面临法制与人治的各种取舍与困难。

  • 在我看来,你设立了一个规则,然后给规则订立了一个例外。
  • 渐渐的,就会发现需要更多的例外。
  • 也许例外多起来以后,你需要为这些例外制定一些关于例外的规则。
  • 然后,又会发现关于例外规则所面临的例外。于是需要大家一起来讨论。
  • 然后你发现每次讨论,大家的结论会漂移,于是你开始制定讨论的规则。
  • 当然,随之而来的,是关于讨论的规则的例外。
  • 。。。。。。

这样的例外爆炸,是一个网络社区运营团队的噩梦!

当你以不得罪某些人为出发点,在各种社区冲突中做权衡,每次都选择得罪小的,不得罪大的;得罪少的,不得罪多的;得罪弱的,不得罪强的;最后,因为社区会一直存在,最终你会得罪所有的人!

所以,公开、公正、透明的执行社区的规则,始终坚持,始终一秉公心,才是真正不得罪人的办法。

比如:明确一个问题投诉的关闭规则,任何问题(无论与知乎是否有关),符合投诉人数条件的,就会被关闭。明确折叠的规则,并且显示一个回答,收到了多少反对和没有帮助(可以不公布具体是谁),符合折叠条件的,就会被折叠。一个答案,一定是逐渐下沉,然后才会被折叠,而不是突然就消失了。

总之,有很多种理性的、数学化的、可公开的方式,来执行这些规则,这样才能够减少大家的抱怨,也能够最终减轻你们的运营工作了。

 

六、结语

说了这么多,但是,我从来没有想过,要戒知乎!知乎依然是我现在最喜欢,也最经常去的网络社区(没有之一)。

[知乎回答]《降级论》:一篇小白爽文

http://www.zhihu.com/question/20333552/answer/14812164

评论的文章是:http://meditic.com/degrading-for-success/

穿越文也分高低,高的是大神文,低的是小白文。本文作者写的这篇,最多算是小白爽文,而且有很浓的广告味道。

首先说,为什么这是一篇穿越文。

常见的穿越文,都是从现代穿回古代。主人公带着现代人的历史知识、现代技术、创新思维,总归是有种种好处的。《降级论》的核心论点,也和这个类似。似乎搞IT的,天然就是高智商、高眼光、高品位的三高人群。一旦杀到那些落后的行业,就像是穿越回去一样。

其次说,为什么这最多算是小白爽文。

小白文,通常弱智。作者的见识,往往浅薄。当然,小白爽文,是很好看的。男主人公回到古代,人挡杀人,佛挡杀佛。奇招妙计迭出,对手全是白痴。在他的指导下,科技大跃进,社会大发展,一切就风驰电掣一般的,走向了民族与国家的繁荣富强。

唯一的要求是:读者不要深究。

再其次说,为什么这里面有很浓的广告味道。

因为作者在夸耀自己的成功,用种种不令人反感的方式,在努力的夸耀着。引用一段:

作为一个脑残的果粉,我按照iPhone的做工和品质去要求每一张作品,必须达到我们能力可以做到的最好水准,不计成本的最好水准,才允许送给客户。正式接客不到两个月时间,虽然还远未达到成功,但目前已做到每天都有客户订单,财务上已实现盈利,未来相信一定会比大部分app开发者更光明。

如果真的是不计成本,怎么又说财务上已实现盈利?自相矛盾嘛。

最后说说我的批评:

  1. 虽然觉得有些伤人,但是,我的确联想到了另一个寓言故事:井底之蛙。当然,一个看过海的广大的青蛙,回到了井底,并享受着小小的成功和幸福。我们没有任何理由去指责他。但是,当他以自己为榜样时,就显得可笑了。
  2. 虽然我也是一个程序员,也认为自己的智商在平均水平之上(也就是超过100的意思)。但是,我没有任何理由相信,自己到了另一个行业,就会比人家更为成功。这种自豪感,固然是合理的。如果上升为“必胜的信念”,就显得可笑了。
  3. 虽然IT行业是发展最为快速,理念最为先进的行业。但是,其他行业也有其传承与发展,有其文化与底蕴。冲过来一个热血青年,说:我要改造你们行业。就显得有些可笑了。