技术巨头们如何传播开源编程之精神
“Go是由谷歌公司设计,用于帮助其自身解决实际问题的编程语言。”Go语言设计者之一Rob Pike表示。
事实也许的确如此,不过目前该开源语言正越来越多地被世界各地的其它企业所使用,负责构建立足于大规模场景的应用程序。
同样的情况也发生在Erlang方面。其最初是由瑞典电信企业爱立信开发的一种专有语言,旨在处理其硬件之上往来传输的大量电话交换数据。然而Erlang随后转化为开源项目,如今正快速成长为大规模应用程序开发领域的高人气选项。
类似的情况还有很多。非死book公司开发出了GraphQL与BigPipe技术,旨在解决其所运行的社交网络流程所面临的、由15亿活跃用户每天进行的数千亿次API调用操作引发的挑战。然而当下这些技术成果已经转为开源,并被Drupal等内容管理项目用于快速处理自己的移动网络页面负载。
大家可以注意到了其中的共性:各类编程语言与技术方案都是由业务及互联网巨头所开发——专门用于解决其超大规模业务运作所面临的特殊挑战——而在开源化之后,如今其开始为众多常规规模企业的日常运营服务。
造成这种情况的部分原因在于技术的天然涓滴效应,Gartner公司研究主管Mark Driver解释称。“如今的前沿高科技将成为明天的标准产品,”他表示。“另外,大型企业(例如谷歌与非死book)对于开放计算以及互联网发展动力的协作特性拥有深刻理解。因此它们自然乐于分享这些技术成果,从而引导整个业界进一步以其为中心规划发展方向。”
这对谷歌意味着什么?
谷歌这类企业也有可能是出于利己主义思维才对自家技术成果进行共享。举例来说,去年11月谷歌公司对其TensorFlow人工智能与机器学习引擎进行了开源。很明显,这类技术成果需要获取大量数据才能切实起效。
通过放开其TensorFlow技术,谷歌公司允许每位个人及每家企业通过这项技术获准,并对其代码做出一切改进。不过作为通过其中大量服务所收集到的数据的实际拥有者,谷歌自身同样处于受益者地位——而且其受益规模要远远超过与该技术相关的开源社区。
将Go这样的语言推广给每个人也能够获得可观的市场回报,Driver解释称。“赞助Go这样的项目能够帮助谷歌公司招揽到更多工程技术人才,”他表示。“这可能会给创新工作带来理想的良性循环。”
涓滴效应之所以如此重要,是因为谷歌、非死book以及其它互联网巨头几年之前在构建超大规模应用程序以服务海量并行用户时所面临的难题,如今已经摆在无数需要以基于Web或者移动平台方式向大量客户交付应用程序的中等规模厂商与初创企业面前。
这些企业赫然发现,自己所面临的问题事实上已经被行业巨头们所解决。
Acquia就是这样一家公司。其利用Go语言构建自己的软件即服务产品,旨在为Drupal内容管理系统提供企业级服务。“正有越来越多的企业转型为数字化企业,即需要处理来自客户、移动设备以及其它来源的数据,”Acquia公司副总裁Christian Yates表示。
“这恰恰是大型互联网厂商们以往曾经面对过的状况,它们也已经构建起软件方案加以应对。其高度关注并发性、延迟水平以及性能表现,而我们如今也有着同样的诉求。”
他同时指出,他的公司对多种不同编程语言进行了测试,并发现Go的速度表现最为出色。事实上,其开源属性也使得编程团队得以参与到速度调整工作当中并实现快速创新,他补充道。
“在市场上得到广泛采纳,拥有理想的源代码可视能力并了解其如何帮助开发人员不断提高生产效率,”Yates指出。“而我们也已经开始利用来自Etsy及其它互联网企业的工具帮助自身进行服务器管理。”
Web工具早在Web出现之前既已诞生
当初爱立信公司在上世纪八十年代中叶开发Erlang语言时,万维网事实上还没有被发明出来。根据Gartner公司研究主管Mark Driver的说法,事实证明Erlang可谓众多Web应用程序的最佳开发手段。
“Erlang语言能够处理大量交换数据,其功能定位显然超出了诞生时所处的时代。如今很多企业都在着手构建面向消息的超大规模应用程序,而Erlang在这类开发工作中的表现堪称完美,”他表示。举例来说,于2014年2月被非死book公司收购的WhatsApp消息收发平台就利用Erlang来支持该服务的超过9亿名用户。
另一家类似的厂商为Bet365,这是一家来自英国的在线博彩公司。目前其在高峰时段拥有超过700万并发用户,且每年流量增长幅度达到20%左右。该公司最初利用Java与.Net构建其在线平台,但随着业务的扩大其发现后续扩展工作陷入困境。而且根据该公司首席软件架构师Chandrashekhar Mullaparthi的说法,其也面临着及时推出新型服务这一严峻挑战。为了解决问题,他们开始利用Erlang构建这套业务平台。
“Erlang对我们来说可谓理想方案,”Mullaparthi表示。“它当初是由一家电信公司开发而成,但却能够很好地解决我们目前所面临的实际难题。为了构建一套规模符合要求、具备高并发性且拥有‘五个九(即99.999%)’可用性的应用,我认为除了Erlang再无其它备选方案可用。”
缩小人才缺口
随着越来越多的企业开始提供超大规模、基于互联网的应用产品,利用由非死book、谷歌或者爱立信打造的编程语言虽然能够解决问题,但却也造成了严重的相关开发人才缺口。
Bet365公司就遇到了这样的窘境。尽管Erlang已经是一款成熟的语言,但其直到最近才被广泛应用于大量在线平台的开发工作,这意味着招聘Erlang开发人员的工作变得非常艰难。Mullaparthi指出,其不得不给出高昂的工作津贴以吸引合格人才。
“大家可以想象,如果办公室里一位可用的技术人员都没有,日子会多么艰难,”他总结称。“但只要意识到了问题,其终将得到解决。现在我们开始与那些身处国内其它城市的开发人员建立联系,允许他们以远程方式完成工作。另外,我们也在积极招纳应届毕业生并对其进行内部培训,”他指出。
原文标题:How tech giants spread open source programming love
【51CTO.com独家译稿,合作站点转载请注明来源】