技術巨頭們如何傳播開源編程之精神
“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獨家譯稿,合作站點轉載請注明來源】
來自: http://developer.51cto.com/art/201601/504713.htm