Scala简介
Scala是什么
Scala是一门多范式的语言,支持面向对象和函数式编程,最初于EPFL的Martin Odersky在2001年设计。截至到当前版本是2.11.6. [ 维基百科 ]。
相比于Java,Scala明显比较小众,近几年有越来越火的趋势。国外使用Scala的公司有LinkedIn, EDFT,Twitter, Novell, the Guardian, Xebia, Xerox, FourSquare, Sony, Siemens, Thatcham, OPower, GridGain, AppJet, Reaktor。国内有阿里巴巴,Sina,蘑菇街,19楼等。1
函数式编程对于Java程序员来说可能会比较陌生,而函数式编程是Scala的一大标志。简单介绍下函数式编程。函数式编程有几个比较重要的特性,第一个是函数“无副作用”,函数的所提供的功能只是返回值,并不会对函数外的其他变量造成影响。第二是函数是“一等公民”,函数可以作为变量参数传递,也可以作为值返回。第三是尾递归优化,每次函数递归时都会重用stack,这样一来能够提升性能。
为什么选择Scala
Spark的大部分实现是由Scala写的,那为什么会选择Scala,这里有个大牛在Quora上的回答“When we started Spark, we wanted it to have a concise API for users, which Scala did well. At the same time, we wanted it to be fast (to work on large datasets), so many scripting languages didn’t fit the bill. Scala can be quite fast because it’s statically typed and it compiles in a known way to the JVM. Finally, running on the JVM also let us call into other Java-based big data systems, such as Cassandra, HDFS and HBase.” [ Why is Apache Spark implemented in Scala? ]。
总结下原因大概有以下几点:
- Scala提供了很多简洁的API可以直接让Spark使用, 比如Spark中的RDD的一些运算,比如map,filter等都是从Scala中拿过来直接用;
- Scala相比与其他脚本语言,在处理大数据集上速度更快;
- Scala在并行计算上优势明显,因为Scala的API提供不可变集合,所以线程安全;
- 和Java类似,以字节码形式运行于JVM中,方便兼容其他大数据系统比如Cassandra, HDFS and HBase
Scala的安装
在安装Scala之前,需要安装jdk,Scala最新版本下载地址。
Windows下配置环境变量后在命令行输入“scala“
ide的选择一般有两种,eclipse的scala版本,Intellij IDEA Community。我一般习惯用Intellij。
HelloWorld
按照惯例,写出第一个Scala程序
object HelloScala {
def main (args: Array[String]) {
print("Hello, World!")
}
}