理论教育 Scala语言基础与开发实战:概述

Scala语言基础与开发实战:概述

时间:2023-11-24 理论教育 版权反馈
【摘要】:截至2016年1月,Scala 2.12系列的最新版本是Scala 2.12.0-M3,Scala 2.11系列的最新版本是Scala 2.11.7。2016年,Scala 2.11系列预计于一季度实现Scala 2.11.8版本,在三季度实现Scala 2.11.9版本;Scala 2.12系列预计在二季度重点实现Scala 2.12.0-RC1版本,在2.12系列的两个里程碑Scala 2.12.0-M4及Scala 2.12.0-M5 Scala版本中,Scala编译器将会有很大的变化,包括Lambda表达式和使用新的编码方式,充分利用Java 8的新特性,以及Scala的优化等。Kafka是由LinkedIn开发的用于日志处理的分布式消息队列,Kafka使用Scala语言开发。

Scala语言基础与开发实战:概述

曾经有人问Java的创始人高斯林(James Gosling)这样一个问题:“除了Java语言以外,您现在还使用JVM(Java Virtual Machine,Java虚拟机)上的哪种编程语言?”他毫不犹豫地说是Scala。Scala是一门集成面向对象和函数式特性的语言,它的创始人是Martin Ordersky。Martin Ordersky也是Javac编译器的作者,他曾将泛型引入到Java语言中。因为Java是强约束的语言,出于Java本身设计上的局限性,诸如函数式编程等特性在Java 8之前都没有实现,因此Martin Ordesky设想基于JVM和Java类库,创建一个比Java更高级的语言。他于2001年开始基于Funnel语言设计Scala,在2003年年底Scala发布正式(基于Java平台)版本。

截至2016年1月,Scala 2.12系列的最新版本是Scala 2.12.0-M3,Scala 2.11系列的最新版本是Scala 2.11.7。2016年,Scala 2.11系列预计于一季度实现Scala 2.11.8版本,在三季度实现Scala 2.11.9版本;Scala 2.12系列预计在二季度重点实现Scala 2.12.0-RC1版本,在2.12系列的两个里程碑Scala 2.12.0-M4及Scala 2.12.0-M5 Scala版本中,Scala编译器将会有很大的变化,包括Lambda表达式和使用新的编码方式,充分利用Java 8的新特性,以及Scala的优化等。

Scala是一个运行在Java虚拟机环境(JVM)中将面向对象编程和函数式编程的最佳特性完美结合起来具有强大类型系统的,优雅、简洁的语言。

Scala语言的优势如下:

1)Scala是面向对象编程语言:在Scala中,所有预先定义的类型是对象,所有用户定义的类型也是对象,每个操作都是方法调用。

2)Scala是函数式编程语言:在Scala中,函数是“头等公民”,函数可以被当成参数传递给其他函数,也可以当成结果返回或保存为变量。Scala编写的代码简洁、优雅,同时又具备丰富的表达能力,在实际开发过程中推荐使用大量不可变的变量及无副作用的函数进行代码编写;Scala支持匿名函数、高阶函数、柯里化函数、函数嵌套的应用;相对于指令式编程语言而言,Scala可以使用更少的代码量来实现相同的功能,充分体现出Scala语言简洁、精炼、优雅的特点。(www.daowen.com)

3)静态强类型和丰富的泛型特性:Scala语言是一门静态类型的语言,具备本地类型推断的类型系统,允许使用泛型参数化类型。

4)Scala与Java能够无缝集成:Scala与Java有很强的兼容性,Scala程序被编译成JVM字节码,Scala大量重用了Java的类型。Java语言开发的库,大部分可以直接在Scala语言中使用。

Scala语言拥有面向对象编程和函数式编程的集成优势,因此,国外很多知名公司选择Scala语言进行大型项目开发及复杂数据处理。Scala语言是Twitter、LinkedIn等公司的核心编程语言,Twitter、LinkedIn的很多基础框架都使用Scala语言编写。

在大数据领域中,新一代分布式计算系统Spark能同时在一个平台上完成批处理、机器学习、流式计算、图计算、SQL查询等功能,因此得到了广泛应用。在国外,Yahoo!、In⁃tel、Amazon、Cloudera等公司大规模运用Spark技术,国内的阿里巴巴腾讯百度华为等公司纷纷加入Spark阵营。而Spark的核心代码就是使用Scala语言开发的,虽然在Spark中可以使用Scala、Java、Python语言进行分布式程序开发,但Spark提供的首选编程开发语言就是Scala,而Spark已经成为事实上的大数据分布式计算的标准。

Kafka是由LinkedIn开发的用于日志处理的分布式消息队列,Kafka使用Scala语言开发。各个开源分布式处理系统Cloudera、Apache Storm、Spark都支持与Kafka集成。其日志处理的一个场景:Kafka采集日志以后,经过Spark分布式计算,将日志数据导入到Hbase中。Kafka采集的日志主要包括用户行为及系统运行日志等。在大数据领域中,Spark、Ak⁃ka、Kafka都是用Scala语言开发的,因此凸显了Scala语言的巨大价值。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈