When we speak of free software, we are referring to freedom, not a price.
当我们在提到开源软件的时候,我们指的的行为自由,不是指免费。 ———GPL协议
对于中国的程序员来说,会不会编程?不重要。
会不会搜github?嗯,很重要。
序
在全世界,不仅是中国,程序员这个职业的门槛在随着时间的变化变得越来越低,其实这是一件好事,这样才真正代表了互联网,或者说是电子计算机给社会带来了真正的福利。
在十几年以前,计算机刚刚步入使用阶段的时候,大家都是自己做自己的产品,然后把产品拿出来卖。通过之前做的产品的利润进行下一步的开发,然后通过专利的法案来筑起高高的城墙,防止竞争者的进入(oracle作为其中的代表之一,现在仍然享有很多这种机制所带来的利润和福利)。
在linus创造了linux操作系统之后,开源的种子就在世界各地发芽,开源逐渐从一种黑客的自由主义精神行为演变为一种可行的商业模式。
作为一个开源项目的创建者和参与者,推动他进行开源程序开发的主要动力是自我价值实现(提高编程技能,实现功能),配套服务收费(Redhat的盈利模式),社区认同(获取就业机会)以及利他主义(无私奉献)。
总之,开源在近十年来已经成为了影响互联网和计算机的重要影响因素。在微软对github进行收购之后,这个影响了世界数十亿人的网站逐步进入了大众的视野,并且我相信,这个软件在未来的十年会有更加广阔的发展空间,也许会成为世界上每个人都可以使用的应用搜索引擎。
中国--开源的获利者
中国在互联网大潮上只能是一个后起之秀,开源这件事中国到现在为止获得的好处要比我们付出的多得多。中国的许多产业,包括产品,都是因为某种开源的程序或者是专利缩小了与世界发达国家的距离。
其中最知名的,可能大家也有些容易被遗忘的,就是安卓。现在国产的基本上所有知名的手机品牌都是基于安卓开发,如果没有安卓,国产的智能手机开发肯定会落后于美国一个时代的,没有办法成长到现在这个体量。
前一阵子因为中美争端,美国政府想要谷歌对基于这个系统的产品进行诉讼。华为的鸿蒙也是为了替代这个产品而开发的,但是我相信使用过或者说了解过这个系统的人也知道,即使在源代码开放的情况下,我们想要学习别人的内核技术,或者说是应用部署技术也还是非常难的。
我们很难说谷歌是因为纯粹的利他主义或者说是为了先养肥了再杀的想法而进行了一系列的开源行动,但是不可否认的是,这些开源的代码对中国进步的影响是显而易见的。
就我现在在工作的内容来说,80%的东西都是谷歌提供,或者是基于谷歌的开源代码改的。我可以简单列举一下,如果有兴趣的同学可以自己去看。
1.cartographer。建图功能包,可以做到大场景多传感器的信息采集和2D/3D地图数据储存、格式转换。中国现在整个agv市场,或者说是自动驾驶的市场,有很多都是建立在这个包或者是gmapping论文上的。
2.protobuf。序列化工具,用于数据的序列化和反序列化,这个包在谷歌的很多开源项目当中都会用到,学习这个包的源代码可以很有效的拓宽你对数据处理的思路。
3.GRPC。这个是可以进行不同主机或者是程序直接功能调用的一个包,多模块沟通协作、部署应用/网页的时候都用的到。百度有一个学习他然后改善的一个包叫brpc。
4.tensorflow。这个包,已经太过于大名鼎鼎,整个人工智能网络的发展在某个时期是离不开这个名字的。我想最近几年中国之所以人工智能能这么火,包括从业人员的水平可以下降的这么快,都是离不开这个包的帮助的。它把一个非常抽象复杂,很难可视化的一个应用做的很简洁易用,解决了痛点,降低了门槛。
除了谷歌之外,世界上其他地方的很多大公司都为开源做出了贡献。我们必须得承认,我们是站在了世界的肩膀上,开源确实对中国这些年的制造和创造产生了很深远的影响。
要注意的是:
开源其实并不意味着我们可以自由地免费地使用这些源代码来干一切的事情。
开源程序是有一个开源协议的(GPL/LGPL等),它规定了开源程序的免费使用范围和权利,但是很不幸的是,中国的商业使用者基本上都无视了这个协议,就像他们无视了很多专业工具的版权一样。
前两年还有个院士拿一个国外的开源程序做了封装之后提交申报基金被举报,这个我觉得实在是井底之蛙般的无知。
但是其实这个真的不是个别现象,在很多新兴的市场,大部分的公司都是直接拿的开源源代码做的产品封装,只不过因为公司的体量太小,开源的作者注意不到他或者是根本懒得告他。我觉得在接下来的几年这件事情会产生非常可怕的代价,中国的程序员们和老板们是时候该觉醒了。
还有一件很搞笑的事情是,由于很多老板不懂程序,其实公司里开发的大多程序都是直接从github上找的,然后算成工程师自己的工作量。我想,也许这就是隔行如隔山吧,他们想象不到有人愿意免费的把这些生产资料公开出来。
中国--开源的付出者
当然,中国也并非我上面说的这么不堪。
我们现在已经从开源项目当中得到了利益,在完成了物质的富足之后,中国的程序员们也成为了下一个“谷歌”。
中国的开源创作也是非常多的,在github上提交的程序日益增多。虽然有很多是二次再创作,或者是一些收集类的项目,但是还是有很多原创的优秀程序项目。
有几个我正在关注的开源项目,比如说Tidb,禅道(一个敏捷开发的项目管理软件),Echarts等等。
这些项目都是非常优秀的中文开发者做的,我相信在不久的将来我们肯定是可以占据开源社区的半边天。
百度做了一个人工智能的开源平台paddlepaddle,大家也可以多关注了解一下。阿里开源的东西更加底层,包括一些硬件协议标准,和应用层里java相关的东西多一些,还有类似于kiwi这种全球物流管理的软件。
总之,中国的大公司已经开始奋起直追了,希望更多在生存线上奋斗的小公司们能早日步入这个行列吧。
结语
我希望用了这些开源代码的程序员们要记住,开源的使用并不是没有代价的,我们要感谢这些提供开源代码的人,并且遵守他们定下的规则,这样开源的社区才能发展的越来越好,对这个社会的贡献才能越来越大。