故事开源7 分钟

种树的人

一行免费开放的代码,穿过半个世界,在陌生孩子的屏幕上长成树荫。

赵启是一个开源软件的作者。他在GitHub上维护着一个前端框架,大概有两万多个star,在圈子里小有名气。

两万个star是什么概念呢?在程序员的江湖里,这大概相当于你开了一家饭馆,门口排了很长的队,但吃饭都不用付钱。没错,开源软件是免费的。

赵启做这件事做了六年。

六年里,他写过几千次提交,回复过上万个issue,合并过几百个pull request。他的框架被很多公司的项目使用,有的甚至用在了上亿用户的产品里。但他一分钱都没有收过。有人问他为什么不商业化,他说:“一开始就是写着玩的,后来用的人多了,不好意思不维护了。”

“不好意思不维护了”这句话,可能是开源社区里最常见也最悲壮的一句台词。

维护一个开源项目有多累?赵启给我描述过他的一天。白天在公司写八小时代码,晚上回家打开GitHub,发现issue区又多了二十几条新留言。有的是报bug的,有的是提新功能需求的,有的是问怎么安装的——安装方法他在文档里写了三遍,但对方显然没看。最让他头疼的一种留言是那种上来就是一句“你这东西不好用”然后关掉页面走人的。没有任何具体描述,没有任何复现步骤,就是一个审判式的否定,像往你门口扔了一袋垃圾。

赵启说他一开始会在这种留言下面耐心地回复:“您好,请问您遇到了什么具体问题?可以详细描述一下吗?”对方通常不会回复。后来他学会了无视,但无视不等于不难受。他形容那种感觉是“你免费给邻居做了六年饭,有一天有人路过你家门口,吃了一口,把筷子一扔,说真难吃,然后走了”。

我问他,那为什么不关掉?不开源不就行了?

他沉默了几秒钟,然后给我讲了一件事。

那是他做这个项目的第三年。那段时间他特别低落,工作压力大,项目issue堆积如山,他连续熬了几个通宵改bug,整个人状态很差。有一天凌晨一点多,他刚合上一个特别棘手的bug,准备关电脑睡觉,忽然收到了一封邮件。

邮件来自一个他完全不认识的名字,标题是“只是想跟你说声谢谢”。他点开一看,是一个巴西的程序员写的,用不太流利的英文。对方说自己在一个很小的创业公司,只有三个工程师,预算几乎为零。他们接了一个给农村学校做在线教育平台的项目,需要一套前端框架,但没有钱买商业授权。

“你的框架帮我们省了三个月的工作量,”那个巴西人写道,“昨天我们的平台正式上线了,第一个试用的学校在亚马逊州的一个村庄里,那里不通公路,去最近的镇子坐船要六个小时。那些孩子第一次在屏幕上看到彩色的课件,他们尖叫着互相喊,整个教室都是笑声。我拍了照片,放在附件里。”

赵启打开附件。照片拍得很模糊,应该是用很老的手机拍的。一间光线不太好的教室,桌椅破旧,墙上刷的白灰掉了一半。但屏幕上的画面是彩色的,孩子们挤在屏幕前,脸上是那种只属于孩子的、毫不掩饰的惊喜。

赵启说他盯着那张照片看了很久。他不是那种容易感动的人,但那天的凌晨一点,他坐在出租屋的电脑前,觉得三年的熬夜、修bug、回复那些令人头疼的issue,忽然都有了一个答案。不是答案,是回响。

他没有回那封邮件。不是不想回,是他不知道说什么。他怕自己一开口就会把这件事说轻了。

后来他把那张照片打印出来,贴在了书桌上方。每次半夜改bug改到崩溃、想要关掉项目的时候,他就抬头看一眼那张照片。照片里的孩子们不知道他是谁,不知道他住在北京的哪一间出租屋里,不知道他放弃了多少个周末。但他们看到的那个彩色课件,有一小部分是他写的代码。

“这个世界很大,”赵启跟我说,“我能做的事情很少。但我在北京的出租屋里写下的一行代码,不知道通过什么奇怪的路径,最后出现在亚马逊雨林的一间教室里,被一群从来没有见过电脑的孩子看到。这件事本身就让我觉得,写代码不只是写代码。”

后来赵启的项目star数过了三万,他也慢慢学会了管理社区,招募了维护者,不再一个人扛所有事情。但他始终没有商业化,也没有接过任何赞助广告。他的项目主页上没有任何打赏按钮,只有一行字:“如果你用这个框架做出了什么东西,可以给我发邮件讲讲吗?那是最好的回报。”

他给我看过他的收件箱。里面有几万封邮件,来自世界各地,用着各种不同的语言。有的来自印度,有的来自尼日利亚,有的来自菲律宾,有的来自阿根廷。有做公益项目的,有做毕业设计的,有做创业公司的,有做个人博客的。每一封邮件都在讲同一个故事:你的代码,帮我做成了一件事。

赵启说,他退休之后如果没事干,想把这几万封邮件翻译出来,编成一本书。书名他已经想好了,就叫《种子》。

“你不觉得这个名字太普通了吗?”我问他。

他说:“不普通。写代码就像种树。你种下去的时候不知道谁会来乘凉,甚至不知道这棵树能不能活。但只要它活了,它就会自己在你看不到的地方长。十年后,二十年后,有人路过,在树荫下歇个脚,他不会问这棵树是谁种的。但他会知道,这里有棵树。”

“能被不知道名字的人需要,是工程师能得到的最高奖赏。”