scala语言介绍

why is Scala语言?

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

3.Scala 是 Scalable Language 的简写,是一门多范式(范式/编程方式[面向对象/函数式编程])的编程语言

4.联邦理工学院洛桑(EPFL)的Martin Odersky于2001年开始设计Scala

5.Spark的兴起,带动Scala语言的发展!

在这里插入图片描述

Scala语言诞生小故事

在这里插入图片描述

创始人马丁·奥德斯基(Martin Odersky)是编译器及编程的狂热爱好者,长时间的编程之后,希望发明一种语言,能够让写程序这样的基础工作变得高效,简单。所以当接触到JAVA语言后,对JAVA这门便携式,运行在网络,且存在垃圾回收的语言产生了极大的兴趣,所以决定将函数式编程语言的特点融合到JAVA中,由此发明了两种语言(Pizza & Scala) 递归

Pizza和Scala极大地推动了Java编程语言的发展。[如何理解?]

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

且现在主流JVM的javac编译器就是马丁·奥德斯基编写出来的。Jdk5.0 Jdk8.0的编译器就是马丁·奥德斯基写的,因此马丁·奥德斯基 一个人的战斗力抵得上一个Java开发团队。

基本介绍

Scala 是运行在 Java 虚拟机(Java Virtual Machine)之上,因此具有如下特点:

  • 轻松实现和丰富的 Java 类库互联互通。
  • 它既支持面向对象的编程方式,又支持函数式编程。
  • 它写出的程序像动态语言一样简洁,但事实上它确是严格意义上的静态语言。
  • Scala 就像一位武林中的集大成者,将过去几十年计算机语言发展历史中的精萃集于一身,化繁为简,为程序员们提供了一种新的选择。设计者马丁·奥得斯基 希望程序员们将编程作为简洁,高效,令人愉快的工作。同时也让程序员们进行关于编程思想的新的思考。

Scala提倡函数式编程(递归思想)

先说下编程范式:

  • 在所有的编程范式中,面向对象编程(Object-Oriented Programming)无疑是最大的赢家。
  • 但其实面向对象编程并不是一种严格意义上的编程范式,严格意义上的编程范式分为:命令式编程(Imperative Programming)、函数式编程(Functional Programming)和逻辑式编程(Logic Programming)。面向对象编程只是上述几种范式的一个交叉产物,更多的还是继承了命令式编程的基因。
  • 在传统的语言设计中,只有命令式编程得到了强调,那就是程序员要告诉计算机应该怎么做。而递归则通过灵巧的函数定义,告诉计算机做什么。因此在使用命令式编程思维的程序中,是现在多数程序采用的编程方式,递归出镜的几率很少,而在函数式编程中,大家可以随处见到递归的方式。
  • scala底层与java底层关系

在这里插入图片描述

Scala语言的特点

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

  • Scala 是一门多范式 (multi-paradigm) 的编程语言,Scala支持面向对象和函数式编程

  • Scala源代码(.scala)会被编译成Java字节码(.class),然后运行于JVM之上,并可以调用现有的Java类库,实现两种语言的无缝对接。

  • scala 单作为一门语言来看, 非常的简洁高效 (三元运算, ++ , --)

  • Scala 在设计时,马丁·奥德斯基 是参考了Java的设计思想,可以说Scala是源于java,同时马丁·奥德斯基 也加入了自己的思想,将函数式编程语言的特点融合到JAVA中, 因此,对于学习过Java的同学,只要在学习Scala的过程中,搞清楚Scala 和 java相同点和不同点,就可以快速的掌握Scala这门语言

  • 快速有效掌握Scala的建议 [1. 学习scala 特有的语法 2. 搞清楚 scala 和java 区别 3. 如何规范的使用scala]

发布了81 篇原创文章 · 获赞 12 · 访问量 4051

猜你喜欢

转载自blog.csdn.net/qq_43141726/article/details/103980049