谷歌于10月6日在社交编程及代码托管网站上开源了名为Cartographer(制图者)的SLAM(同时定位与地图构建)库。资深程序员十分看好该算法的设计目标:低计算资源消耗,实时优化,不追求高精度。这个算法的目标应用场景包括:室内用服务机器人(如扫地机器人)、室内AGV(如机场用的无人电瓶车)、无人机等等计算资源有限、对精度要求不高且需要实时避障的和寻路的应用。“而3D SLAM如果能用在无人机上,也是非常炫酷且实用的事情。”参与过协作机器人研发的程序员邵天兰说。
现在扫地机器人、端茶倒水机器人、无人机等等都很火,谷歌涉足该领域的开源软件,虽然暂时只是一个SLAM库,但后续发展如何?会不会出现机器人的Android系统呢?我们也只能拭目以待。
随着计算机技术的发展,尤其是互联网技术和相关企业的兴起,开源软件在操作系统、编译工具链、数据库、移动操作系统等各个方面已经成为主流。而且,许多企业利用开源软件形成了独特的商业模式。
“综观IT 行业这二十多年的发展,开源软件从黑客的理想之国起步,已经形成了一股推进计算机及相关行业不停进步的巨大力量。”10月15日,在北京航天航空大学举办的2016中国开源年会上,中国工程院院士廖湘科说,开源软件已经渗透到了我们日常生活的方方面面,但开源仍存在很多困难和问题。
何为开源 为何开源
开源是什么?云计算开源产业联盟秘书长栗蔚向北航的众多学生解释说,开源包括三个方面的内涵:首先,开源是一个项目。作为项目,为了吸引更多有兴趣且热心技术的人们的参与,开源往往有其独特灵活的的项目组织方式和开发流程。“一般来讲,一个开源项目常常由一个或若干个公司主导,但绝不会排斥其他组织、公司,以及独立开发者的参与。”
其次,开源是一个社区。作为社区,开源为开发者、测试者、捐赠者和用户提供了一个由邮件列表、论坛、互联网中继聊天(IRC)和各种会议构成的交流平台。Open Source(开放源代码)中的Open不仅仅是开放的代码,同时也是开放的交流平台。只要本着相互尊重的原则,技术、开发、测试、使用、管理……几乎所有的问题都可以是讨论的对象。“大家一起出主意、想办法,从各个方面为开源贡献力量。”栗蔚说。
开源同样是一个产品。很多时候,开源发布的产品难以满足用户的需求。所以,在不违反相关许可证的条件下,有些公司对其加以定制,就变身为自己的产品或解决方案。“当然,有些公司也会反哺开源的发展,这是一个双赢的良性循环。”栗蔚说。
除了上文提到的谷歌,华为也致力于开源软件的共享和社区维护。华为开源专家庄表伟表示,华为之所以支持开源,肯定是“有利可图”。“华为在使用开源软件时,发现将自己修改好的代码返回到社区,更划算。”庄表伟说,“如果不返回代码,下一次社区发新版本,华为就要再改一次。当把代码提交回社区时,华为就能够影响社区的进展和方向,划算!”
另一方面,开源代码从来都是以事实为标准的,“在标准委员会里讨论的标准,往往不如真正在市场上占主导地位的项目有价值,要成为市场的主导力量,就要参与最热门的开源项目开发。”庄表伟说。
“另外,使得华为重视开源的原因,是领导发现开源社区有很多免费提供代码修改的程序员。”庄表伟说,如果在公司内部形成这种开源气氛,研发人员将更加认可“为热情和理想打工”“有助于减员增效”。
原创的缺失
虽然开源好处很多,但我们也要正视一个根本现实:国内外软件开发的水平是有差距的。这一结论的最直接证据是每一轮新技术的发起者基本上都是国外的人或公司,从方法论到各种框架再到新的编程语言都是如此。
对此,庄表伟在为公司物色人才的过程中,早有体会。“很多博士生的简历非常漂亮,但是其中通常只会罗列他们在国际期刊上发表的论文,或者参与的学术大会,列举出影响力指数,而不是具体参与、发起了哪个开源项目,作为成就来展示。”
“参加国际学术会议还算好的,反观我国的重量级期刊或学术会议,居然没有一个是为开源所设立的。高校在对学生的引导上是否可以更加向开源倾斜?”庄表伟提出疑问。
人才难培养,这是困扰整个计算机软件界的大问题,廖湘科承认,学术界的评价标准跟行业相关,实际上,对学生的评价标准过于注重论文写作,而轻视基础研究。“因为开源软件还没有在学术圈形成大的影响力,学生对开源、对社区的贡献,在学校的评价体系里面得不到应有的认可。”
企业似乎也放弃了期望大学培养好的软件人才的期盼,廖湘科表示,企业很少向高校反馈自己的人才需求,“他们可能认为按照教育规则评价出的优秀学生,估计写软件也不会差”。
“我们需要做的就是加强开源社区和大学结合,在全国的计算机学科评估体系当中,使得开源社区的影响力得到认可,大家的努力才会回到正确的方向上。”廖湘科认为,“企业也要参与其中,把影响力做起来,人才难得的问题就不存在了。”
还需多方共同努力
借鉴谷歌开源软件直指应用的经验,我们要摆脱“跟随者”的角色,就要摆脱程序员思维,用产品的角度去做事。“这样做出来的软件才更有市场,而且做应用类的开源更有发展前途。”庄表伟说。
开源看上去是免费的,但是免费的东西要做到最好不容易,用户其实对免费开源的东西往往要求更高。“所以做开源软件,要朝着商业软件的品质去做。给用户提供实实在在的价值,会有很多企业乐意买单。”庄表伟说,“现在大家对软件价值的认可比以前强多了”。
对于企业来讲,开源能够让员工更有激情。“因为自己的作品能够公之于众,虽然著作权本质上属于企业,但作为实际的编码者,可以通过开源自己的作品来获得额外的成就感和满足感。”栗蔚说,这对于稳定开发团队、提高开发人员的积极性会有很大的帮助。
而身处半官方性质的云计算开源产业联盟,栗蔚一直从事政策支持和产业推动的工作。她认为,由于文化背景不同,我国与其他国家发展开源的出发点并不相同,“我们的重点在于提升产业创新升级的能力和提升软件安全可控的能力。”
目前做开源软件的公司除了华为、新华三这些实力集团,其他大多都是创业企业,如何让它们快速成长?“我们要让所有客户认识到开源的好处,并为他们扫清开源部署的障碍。”栗蔚说,“开源软件有很多BUG,有些要替换原有代码非常困难。客户也需要教育和规范,以便更快扫清障碍,很多企业都有机会利用开源快速成长起来”。
“我们的思路就是告诉更多国内的开发者如何建立项目,帮助他们寻找基金会资源,找到匹配的已经成为基金会导师的国内资源,帮助越来越多的人实现个人和企业价值。”栗蔚同时指出,“在开源领域,政府一直很支持,政策目前非常宽松,主要是培育环境、引导支持。”