大数据学习 ------ Scala入门

1.1 为什么要学Scala语言[1] 

1.优雅:这是框架设计师第一个要考虑的问题,框架的用户是应用开发程序员,API是否优雅直接影响用户体验。

Martin OrderSke (scala发人)

  1. Epel瑞士科技大学
  2. JavacMatin编写的
  3. 让程序员高效简洁优雅开发软件
  4. SCALA Ruby Gtoovy高效
  5. Spark是又Scala编写

2.速度快:Scala语言表达能力强,一行代码抵得上Java多行,开发速度快;Scala是静态编译的,所以和JRuby,Groovy比起来速度会快很多。

3.能融合到Hadoop生态圈:Hadoop现在是大数据事实标准,Spark并不是要取代Hadoop,而是要完善Hadoop生态。JVM语言大部分可能会想到Java,但Java做出来的API太丑,或者想实现一个优雅的API太费劲。


  1. Martin OderskyScala编程语言的发明者。
  2. Martin OderskyEPFL(瑞士领先的技术大学)编程研究组的教授。
  3. Martin Odersky编写了javac,这是目前大部分Java程序员所使用的编译器
  4. Martin Odersky他在整个职业生涯中一直不断追求着一个目标:让写程序这样一个基础工作变得高效、简单、且令人愉悦。
  5. Scalajava的语言的发展方向,称之为java的下一代语言
  6. ScalaGroovyRuby的杀手。Scala有完整的体系特征,这使GroovyRuby看上去更像个玩具,Scala的性能远高于GroovyRuby
  7. 20094月,Twitter宣布他们已经把大部分后端程序从Ruby迁移到Scala
  8. Spark就是由scala开发的

1.2 什么是 Scala[1] 

Scala需了解知识

编程范式:

面向对象编程(Object-oriented programming)

对象为中心,理清对象之间关系。支持语言:java封装,继承,多态等语法

过程式编程(Procedural programming)

过程为中心,理清事件执行步骤。支持语言:c语言语法

函数式编程(Functional programming)

函数为中心,理清函数之间的关系,支持语言:scala

函数式编程特点:

A)函数式编程的起源,是一门叫做范畴论(Category Theory)数学分支

B)在函数式编程中,函数就是一个管道(pipe)。这头进去一个值,那头就会出来一个新的值,没有其他作用(类似数学公式)

C)最主要的特征是,函数是第一等公民

D)强调将计算过程分解成可复用的函数

扩展:范畴论概念:彼此之间存在某种关系的概念、事物、对象等等,都构成"范畴"随便什么东西,只要能找出它们之间的关系,就能定义一个"范畴"

Scala官网介绍

Scala 是 Scalable Language 的简写,是一门多范式的编程语言。

Scala设计的初衷是要集成面向对象编程函数式编程的各种特性。Scala运行于Java平台(Java虚拟机),并兼容现有的Java程序。(下图来自scala官网)

大数据学习 ------ Scala入门_第1张图片

1.3 Scala特点[1] 

Scala 是面向对象的

Scala是一个纯面向对象的语言,所有的值都是对象,类和对象行为用类和特质来描述.

Scala 是函数式的

Scala中函数是高等公民,所有函数都是值.

Scala是静态类型的

静态语言:的数据类型是在编译期间确定的或者说运行之前确定的,编写代码的时候要明确确定变量的数据类型


  1. 面向对象和函数式,前面已经讲过
  2. 介绍:静态类型语言,可伸展


大数据学习 ------ Scala入门_第2张图片


Scala 可伸展的语言

Scala语言的名称来自于“可伸展的语言”。之所以这样命名,是因为他被设计成随着使用者的需求而成长。你可以把Scala应用在很大范围的编程任务上,从写个小脚本到建立个大系统。

你可能感兴趣的:(文档,大数据,Scala)