开源的一些感触

17年7月份,在Apollo开放之后,Qi在内部举行了一次 Engineering Leadership Talk,算是对开源的分享,其中提到Hadoop、RedHat、Android等几大开源社区。这些开源社区,跨越了Client端,Server端到现在覆盖各种设备的云端。

关于Qi的这次Engineering Leadership Talk,可以参考这里

为什么要这么提及这些比较成功的开源社区?写代码都成为高成本的事情时,开源、共享还是很遥远的事情。后来有人愿意将自己写的代码分享出来,免费让别人使用,这种代码分享的精神在那时候有着很高的境界。

在还没有入GitHub这类的代码托管网站,在没有代码产权意识之前,这种代码的共享、开源意识还处于原始阶段。技术人员对代码所创造的价值未知,商业人员也还未从其中探索到行之有效的商业化方案。

提供免费的社区版本,拥抱社区;同时还提供更高服务的商业化版本,这是开源引入的一种商业模式。比如nginx、OpenResty等都是这种模式。

后来开源变为一种趋势是为何?一个产品要做到开源,应该是吸收了产业的精华,解决了整个工业的痛点,这样才能被社区所接受。这种开放形式也才是社区所接受的。

依靠开源,实现未来。这个过程可以为总结为一个有着长远眼光的开源战略。

我就从Apollo开放平台为例,说说这种开源给双方(平台和开发者)都带来的意义:

以上的部分,我总结为Apollo带来自动驾驶这种新能力给双方带来的价值与意义。

这种共享不仅在新平台出现,对多种多样的计算平台有非常丰富开发经验的工程师来说,对Apollo这样的新平台是个坑,但是对这些开发者来说,“编译的过程中就知道问题所在”。正是这种情况,Apollo有新能力,开发者有其它平台的积累经验,就这样,双方碰撞在了一起。

举个例子,熟悉QNX的同学,也许在这Apollo开放之际就跃跃欲试,他们熟悉这些平台,也许只需要提供一些Apollo依赖的类库就能完成QNX的支持。现在,也确实有人在这么做了。

另外一个例子,是以为从事过Arm架构编程的同学。Apollo的硬件运行方案可以有几种,但也在尝试英伟达的低功耗、低成本方案Tegra X2,这位同学能力很强。直到自己完成之后,才在微信群里面讲完成了适配。激动的不止是他。

【开源平台引出的实战性】一个好的平台,应该降低入门门槛,兼容更多设备,优化区域环境。
以上两个例子,很好的说明了开源平台具有的实战特性。人总会因为好奇而去尝试,这种尝试非常重要。比如提到我的第一次安装Tensorflow,非常失败,以至于我到现在也没去从头安装第二遍,而是用如Jupyter等已经集成的环境使用。

所以,一个好的平台应该是上手简单,不应该为开发者设置门槛。

【开源平台最佳实践?】这条路,我们也在不断的实践之中。

在起初我刚来到Apollo,辉哥也曾向我提到如何繁荣Apollo如Tensorflow这样的社区?这个问题至今现在叩问着我自己。当初提到的利用Apollo开源平台特点:
Apollo吸引开发者、合作者的关键点,就是能结合平台的自动驾驶优势,拉近开发者、合作方与用户距离:

现在看,这些特性,还是不够细致,我们提的纬度应该更细一些。

另外一个方面,社区不再是自我维护,等待开发者主动拥护,而是开放心态,主动拥抱开发者。比如Apollo布道师职位的设立。这跟我们之前对布道师的理解比如鸟哥惠新成,PHP布道师,“亚一程”,没有人会质疑他在PHP方面的影响力。而跟鸟哥做的事情的实质是一样的。

好吧,说到这里不得不来一波招聘广告了:Apollo技术布道师

社区的建立维护,离不开科技媒体的帮助宣传。但是对于一个新的技术方向,在媒体方面也还没有做太多准备,一方面新的平台还未有太多沉淀积累,这个可以通过对外的技术布道输出来实现;另外一个,自动驾驶外围的人员比如目前存在一个现象,自动驾驶的从业者都很少。所以相关的科技媒体真正了解自动驾驶行业的,还不多。只有圈子内知道的那几家。受众更广的一些科技媒体反而没有这个技术能力来辨别这种技术能力。

上次让我有这种体验的,是14年为以为同学募捐,其中很多捐钱的人,跟我、跟我的这位同学其实素不相识,但背后的力量实在无穷。

我们会敬畏之。

Andreessen Horowitz Open Source

script>