Scala難道會成爲大數據世界的通用編程語言?

在進行大數據相關的應用開發時,開發人員對編程語言的選擇相當有限。Python和R獲得了數據科學家的青睞,而Java則是Hadoop開發人員的不二之選。隨着Apache Spark和Apache Kafka這樣基於Scala的大數據框架的崛起,相信Scala會逐步映入大數據從業者的眼簾。

Scala是JVM上的一種函數式編程語言,最初它是由Martin Odersky在15年之前開發的,那時還沒有大數據這個概念。Scala的擁護者們認爲Scala的主要優勢是速度和它的表達性。現在Scala主要是Web 2.0公司和社交媒體公司在用,比如Foursquare和Twitter。2009年Twitter把大部分後臺系統的開發語言從Ruby換成了Scala。

Apache Spark的出現無疑推動了Scala在大數據領域的地位。多數第一代Hadoop應用都需要開發人員具備Java開發能力,而Spark爲開發人員提供了另一種選擇。其實Spark就是用Scala寫成的,不過它同時支持Scala、Java、Python和R。

【大數據開發學習資料領取方式】:加入大數據技術學習交流羣458345782,點擊加入羣聊,私信管理員即可免費領取

Apache Kafka是爲大數據而設計的新一代消息系統,它和Apache Samza(流處理框架)與Scalding(Cascading的ScalaAPI)一樣,也是由Scala開發而成的。

“現代且全面”
Gemini Solutions的CEO Theo Nissim是Scala的擁護者之一。Gemini位於美國硅谷,爲客戶提供定製的大數據工程服務。雖然Gemini並不指定客戶使用什麼編程語言,但Gemini的工程師們發現自己對Scala的使用越來越多了。

Nissim說:“我們近來對Scala的使用很頻繁。以前我們有一些架構師比較喜歡函數式編程,而且不少人在用Scala。不過是把Scala在當Java用,他們使用Scala並不是因爲它的函數式編程特性,而是因爲他是一個現代且全面的語言。”

Gemini正參與一個從穿戴式設備收集數據並將分析結果展示到手機應用的項目。這個項目中大部分的工作是使用Scala完成的。Nissim表示Scala是很有潛力的編程語言,相關工具也在成熟的過程中,而且它與各種大數據基礎設施都能比較好地進行結合。

Gemini並不是唯一一個在大數據項目中使用Scala的公司。根據TIOBE語言排名,Scala的排名由往常的30至50名在今天春天忽然升至25名。

Scala排名的突然上升吸引了TIOBE總裁Paul Jansen的注意。他說他早就希望在排名前20的語言中看到Scala。

“很多年以前就覺得Scala不錯了,但企業界對應用Scala一直比較遲疑。這是因爲Scala之前還是比較非主流,而且函數式編程語言一直被認爲是學術圈的玩具語言。不過現在已經有一些跨國公司在使用Scala來進行開發了。”

Scala最常見的用處之一是在Apache Spark中開發大數據流水線。本月中旬Scala的擁護者們會聚集在美國舊金山參加Scala大會2015和海濱Scala會議。

雖然Scala看起來有成爲大數據世界編程語言的潛力,但這條路恐怕不那麼好走。首先Scala並不像Java和.NET一樣有個有錢的大公司在背後支持。Typesafe是一家提供Scala支持的公司,而且已經募集到了數百萬美元,但這跟甲骨文和微軟所能提供的資源還差得很遠。

其次Java本身也在變得更好,最新版的Java 8 縮小了與Scala功能上的差距,因此有人認爲Java纔是用於Spark開發的理想語言。

雖然Scala在TIOBE榜單上的排名又有點往下掉了,但看起來它還是會有一個光明的未來,尤其是在大數據方面的應用。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章