@转自知乎
谢邀,在赶飞机的路上( @夏威Wei Xia 看过来)。。。其实知乎引用的第一段已经写了我的想法了,然后看了 @weishu 的回答,深有同感,觉得我想说的已经都说了,我随便闲扯点啥吧。
我自己做开源其实并没有很多前辈来得久,基本上就是随着 AI 这一波,大家有个核心的痛点就是没有好的软件框架可以用(那位说下载matlab zip包的同学请站起来),机器学习框架如雨后春笋,大家从科研界来,自然地就把代码开放出来,包括在知乎的 @李沐 @陈天奇 等几位大牛,于是就入了门了。
入了门以后我们发现,哎还有那么多讲究,license选什么,社区怎么交互,怎么做推广(对的开源也要做推广的),等等。逐渐了解得多了,就越来越觉得敬畏,之前以为开源就是个很酷的事情,但是后来发现其实开源背后的精神,背后的经济学,都有着很深的道理。
有兴趣的朋友可以读一读一篇非常有意思的文章,stackoverflow的创始人写的“开源软件经济学”:Strategy Letter Vwww.joelonsoftware.com不过聊这个就太远了。
我个人觉得开源是什么从我自己作为一个工程师的角度来说,我觉得开源是四个层面的东西:开源是作品展。
画家有画展,作家会出书,工程师想展示自己的作品,作品是什么?是代码。怎么展示?开源。
开源是技术沟通的渠道。工程师相互学习,怎么学?怎么讨论?秀代码讨论代码是最自然的途径。当然,这个是需要真心投入的,不是开出去就算了,见光死的开源不是开源。开源是用户模式的迭代。
开源的好处是,用户的尝试意愿高,对于bug的容忍度好(虽然也不是无限的),因此可以很快迭代出适合新的需求的设计。AI框架就是一个很好的例子。
开源是新商业。在商言商,我觉得开源和商业是不矛盾的。和开源非常共生的一个词语是开放生态 - 操作系统,云原生,各种开放标准,大大降低了软件开发、软件生态对接的难度。
蛋糕做大了,挖掘出更多的价值,大家都开心,同时也更愿意反哺开源社区发展。
从一个开源开发者开始,到逐渐考虑管理挑战的时候,我问我自己一个问题:人有了,知识有了,意愿有了,缺什么?缺组织保障。
这听着是个很像宣传部写出来的词语,你先别笑,我来列一下理由。
开源项目要托管,要做CI,要做bug tracking,要定期举行社区活动,怎么有效运转?这个需要做。
开源项目多了,怎么有正常的法务CLA流程(CLA其实是保护开发者的),这个需要做。
很多公司开源项目都是见光死,这个阿里也有,大家为了晋升而开源,导致质量堪忧,怎么解?
要建立内部孵化器机制,开源项目准入机制,开源项目关停并转机制,这些都是很重要的事情。
举个例子,我组里的一位小姑娘办今年的Flink Forward大会,最忙的时候在朋友圈抱怨说,气得大半夜睡不着抹眼泪,一天被几拨人喷,但是事情还得推。这事情让我看到,一方面,开源是热情驱动的,但是另一方面,我们绝对不能饿死雷锋。所以一定要有体系化的能力沉淀,有很好的流程,把大家做开源的阻力做到最小。
她和她的团队今年主办Flink Forward Asia,请了头条,快手,Intel,Bilibili,360,滴滴,等一系列社区当中的优秀公司和优秀开发者,办成了一个两千多人的盛会,非常成功,非常不容易。
当然,我们要说,组织保障是保障我们开发者和开源项目,不是给公司吹牛。我们开源委员会考核自己,是以我们开源项目社区的活跃度,健康度,我们做开源的技术团队对于项目的支持程度,这些来考核的。这个初心不会变。不吐不快的部分说了好的,我还想说一句不好的。开源不是”我的开源 vs 你的开源“。
这个是我看到国内经常容易出现的一个问题。开源代码本身是没有国界的,什么有国界?专家有国界。人才有国界。我们不能因为要培养我们自己的人才,就把开源代码本身给挡在外面,自己造轮子了。
举个AI框架的例子。偶尔会听见人说”AI框架都是美国人做的“。这句话我很费解。
非常多的优秀的AI工程师,设计AI框架的工程师,都是华人。不说远的,最近非常有潜力的AI编译框架TVM,作者是 @陈天奇 - 不能说是美国人吧。TensorFlow和PyTorch的代码都放在github上,全世界都是一套,欧洲人为什么没有说不是欧洲的呢?开源代码本身没有国界。
通过狭隘的国界区分,然后划江而治,恰恰会对咱们的开源建设起到反效果。
我们要培养的,是我们国内开源的精神,和全球的开源社区互动的能力,和开源的项目、开源的基金会,深入共建的能力,进而最终形成我们在全球开源社区当中的影响力。
不是在已有的技术体系里面搞一个我们的开源,是投入到开源社区和项目当中去,打出我们的技术深度和领导力来。开源最后还是心态的培养其实我觉得国内最近几年,最让我感到惊喜的就是,开源开放变得非常容易为人所接受了 - 20年前知道sourceforge的工程师,和现在知道github的工程师,绝对数量和相对数量上都不可同日而语。
相应地,我在工作当中遇到了非常多热心开源,一起建设开源的朋友们。我自己现在编程少了,有时候想起来还挺伤心的。所以偶尔周末晚上了没事捣鼓捣鼓代码,放松一下发个PR(是pull request),还是个挺甜蜜的事情。
飞机到了,乱写一点我就发了哈…