基于大数据的编程语言--Scala(概述)

第 1 章 Scala 概述

1.1 为什么要学习 Scala

1.Spark 新一代内存级大数据计算框架,是大数据的重要内容。
2.Spark 就是使用 Scala 编写的。因此为了更好的学习 Spark, 需要掌握 Scala 这门语言。
3.Spark 的兴起,带动 Scala 语言的发展!

Scala combines object-oriented and functional programming in one concise, high-level language.
Scala’s static types help avoid bugs in complex applications, and its JVM and JavaScript runtimes let you build high-performance systems with easy access to huge ecosystems of libraries.

  • Groovy 创始人 James Strachan 曾经说过:

我认为将来可能替代Java的就是Scala 。它实在太让我印象深刻了。我甚至可以诚实地说,如果有人在2003年把那本《Programming in Scala》拿给我看了的话,那我根本就不会再去发明Groovy了。

  • JavaOne 会议期间,在一个参加的讲座中有人向 Java 之父 James Gosling 提了一个有意思的问题:

除了Java之外,你现在还使用JVM上的那些语言? Java之父的回答很迅速同时也很让人意外: Scala

1.2 Scala 语言诞生小故事

联邦理工学院的马丁·奥德斯基(Martin Odersky)于2001年开始设计Scala。
马丁·奥德斯基是编译器及编程的狂热爱好者,长时间的编程之后,希望发明一种语言,能够让写程序这样的基础工作变得高效,简单。
所以当接触到 JAVA 语言后,对 JAVA 这门便携式,运行在网络,且存在垃圾回收的语言产生了极大的兴趣,所以决定将函数式编程语言的特点融合到 JAVA 中,由此发明了两种语言(Pizza & Scala)。
在这里插入图片描述
Pizza和Scala极大地推动了Java编程语言的发展。

  • jdk5.0 的泛型,for循环增强, 自动类型转换等,都是从 Pizza 引入的新特性。
  • jdk8.0 的类型推断,Lambda 表达式就是从 Scala 引入的特性。

Jdk5.0 和 Jdk8.0 的编译器就是马丁·奥德斯基写的,因此马丁·奥德斯基一个人的战斗力抵得上一个 Java 开发团队。

1.3 Scala 和 Java 以及 JVM 的关系

一般来说,学 Scala 的人,都会 Java,而 Scala 是基于 Java 的,因此我们需要将Scala 和 Java 以及 JVM 之间的关系搞清楚,否则学习 Scala 你会蒙圈。

Scala和Java及JVM关系图

Scala和Java及JVM关系图

1.4 Scala 语言特点

Scala 是一门以 Java 虚拟机(JVM)为运行环境并将面向对象和函数式编程的最佳特性结合在一起的静态类型编程语言

  1. Scala 是一门多范式(multi-paradigm) 的编程语言,Scala 支持面向对象和函数式编程。
  2. Scala 源代码(.scala)会被编译成 Java 字节码(.class),然后运行于 JVM 之上,并可以调用现有的 Java 类库,实现两种语言的无缝对接
  3. Scala 单作为一门语言来看,非常的简洁高效。(三元运算,++ ,-- 都取消了)
  4. Scala 在设计时,马丁·奥德斯基是参考了 Java 的设计思想,可以说 Scala 是源于 Java,同时马丁·奥德斯基也加入了自己的思想,将函数式编程语言的特点融合到 JAVA 中, 因此,对于学习过 Java 的同学,只要在学习 Scala 的过程中,搞清楚Scala 和 Java 相同点和不同点,就可以快速的掌握 Scala 这门语言。
  5. 快速有效掌握Scala的三点建议
    学习Scala的特有的语法
    区别Scala和Java
    如何规范使用Scala

1.5 Scala 应用趋势

Scala 是个通用的编程语言。目前其 Web Framework Play 已经在很多企业得到应用。

Scala 的 Akka 也被不少企业应用于大型分布式应用的开发。

大数据领域的新星Spark就是用Scala编写的。
Twitter 内部应用大量使用 Scala。在国内,使用 Scala 的公司还不是很多。但可以预见,Scala 将会越来越流行。虽然 Java 8 的一些新特性和 Scala 很相似,但也有它的局限。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值