Scala难道会成为大数据世界的通用编程语言?

译者:刘旭坤

原文链接:http://www.datanami.com/2015/08/10/will-scala-take-over-the-big-data-world/

在进行大数据相关的应用开发时,开发人员对编程语言的选择相当有限。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。

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榜单上的排名又有点往下掉了,但看起来它还是会有一个光明的未来,尤其是在大数据方面的应用。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏ACM算法日常

如何应对“智力型”的算法面试题?

“给你a、b两个文件,他们各存放50亿条URL,其中每条URL各占用64字节,内存限制是4G,请你编写代码找出a、b文件中相同的URL”。这是某家大公司在201...

30520
来自专栏LET

我的面试心得:面试官视角

16360
来自专栏Java帮帮-微信公众号-技术文章全总结

可是姑娘,你为什么要编程呢?

?   本来你一个姑娘,可以去做一双贴满水晶的blingbling美甲更显十指纤纤,不用担心敲键盘不方便;   可以不时到健身房练练瑜珈来磨练心性,而不是通过...

38570
来自专栏华章科技

假如我是计算机系老师

假如我是计算机系老师, 我会先让我的学生先去读一下《编码:隐匿在计算机软硬件背后的语言》这本书, 搞明白一个个简单的逻辑门电路到底是怎么组成计算机的, 弄清楚计...

15730
来自专栏老九学堂

【必读】每位程序员职业生涯必读书单

很多小伙伴都在问,要成为一个更好的开发人员,我应该读哪些书?我真的需要读书吗? 这是一个很值得探讨的问题,而且很多人推荐的是不同主题的不同书籍。 他们推荐的书在...

37840
来自专栏挖掘大数据

时代的需要:越来越多的Java工程师开始转向hadoop?

Hadoop是Apache软件基金会的顶级开源项目,是由原雅虎公司Doug Cutting根据Google发布的学术论文而创建的开源项目。Doug Cuttin...

23990
来自专栏battcn

为学习优化

“一分耕耘、一分收获”。你在学习上付出的越多,你的回报就越多,虽然不成正比,但也差不多。

11240
来自专栏罗超频道

三星和魅蓝同一天发新机,却讲了两个截然不同的故事

8月23日晚,三星年度双旗舰GalaxyNote 8发布,成为安卓圈的大事件,市场给予Note 8高度关注,以至于当天白天发布的魅蓝Note 6,竟显得有些落寞...

26940
来自专栏ACM算法日常

想去硅谷、BAT工作?算法面试通关攻略在这里

一整套视频还是很有价值的,我这几天也看了最新的几集,对于新手比较友好,对于有一定经验的可能觉得简单。

32520
来自专栏ThoughtWorks

TW洞见 | 重构是每个程序员的洗髓经

今日TW洞见 文章作者来自ThoughtWorks: 扎西。 本文所有内容,包括文字、图片和音视频资料,版权均属ThoughtWorks公司所有,任何媒体、网站...

29160

扫码关注云+社区

领取腾讯云代金券