2019独角兽企业重金招聘Python工程师标准>>>

Scala编程语言抓住了很多开发者的眼球。如果你粗略浏览Scala的网站,你会觉得Scala是一种纯粹的 面向对象编程语言,而又无缝地结合了命令式编程和 函数式编程风格。Christopher Diggins认为:

不太久之前编程语言还可以毫无疑意地归类成“命令式”或者“函数式”或者“面向对象”。Scala代表了一个新的语言品种,它抹平了这些人为划分的界限。

根据David Rupp在博客中的说法,Scala可能是下一代Java。这么高的评价让人不禁想看看它到底是什么东西。

Scala有几项关键特性表明了它的面向对象的本质。例如,Scala中的每个值都是一个对象,包括基本数据类型(即布尔值、数字等)在内,连函数也是对象。另外,类可以被子类化,而且Scala还提供了基于mixin的组合(mixin-based composition)。

与只支持单继承的语言相比,Scala具有更广泛意义上的类重用。Scala允许定义新类的时候重用“一个类中新增的成员定义(即相较于其父类的差异之处)”。Scala称之为mixin类组合。

Scala还包含了若干函数式语言的关键概念,包括高阶函数(Higher-Order Function)、局部套用(Currying)、 嵌套函数(Nested Function)、序列解读(Sequence Comprehensions)等等。

Scala是静态类型的,这就允许它提供 泛型类、 内部类、甚至 多态方法(Polymorphic Method)。另外值得一提的是,Scala被特意设计成能够与 Java和 .NET互操作。Scala当前版本还不能在.NET上运行(虽然上一版可以-_-b),但按照计划将来可以在.NET上运行。

Scala可以与Java互操作。它用scalac这个 编译器把 源文件编译成Java的 class文件(即在JVM上运行的 字节码)。你可以从Scala中调用所有的Java类库,也同样可以从Java应用程序中调用Scala的代码。用David Rupp的话来说,

它也可以访问现存的数之不尽的Java类库,这让(潜在地)迁移到Scala更加容易。

这让Scala得以使用为Java1.4、5.0或者6.0编写的巨量的Java类库和框架,Scala会经常性地针对这几个版本的Java进行测试。Scala可能也可以在更早版本的Java上运行,但没有经过正式的测试。Scala以BSD许可发布,并且数年前就已经被认为相当稳定了。

说了这么多,我们还没有回答一个问题:“为什么我要使用Scala?”Scala的设计始终贯穿着一个理念:

创造一种更好地支持组件的语言。(《The Scala Programming Language》,Donna Malayeri)

也就是说软件应该由可重用的部件构造而成。Scala旨在提供一种编程语言,能够统一和一般化分别来自 面向对象和函数式两种不同风格的关键概念。

藉着这个目标与设计,Scala得以提供一些出众的特性,包括:

* 面向对象风格

* 函数式风格

* 更高层的并发模型

Scala把Erlang风格的基于actor的并发带进了 JVM。开发者可以利用Scala的actor模型在JVM上设计具伸缩性的并发应用程序,它会自动获得 多核心处理器带来的优势,而不必依照复杂的Java线程模型来编写程序。

* 轻量级的函数语法

o 高阶

o 嵌套

o 局部套用(Currying)

o 匿名

* 与XML集成

o 可在Scala程序中直接书写XML

o 可将XML转换成Scala类

* 与Java无缝地互操作

Scala的风格和特性已经吸引了大量的开发者,比如Debasish Ghosh就觉得:

我已经把玩了Scala好一阵子,可以说我绝对享受这个语言的创新之处。

总而言之,Scala是一种函数式 面向对象语言,它融汇了许多前所未有的特性,而同时又运行于JVM之上。随着开发者对Scala的兴趣日增,以及越来越多的工具支持,无疑Scala语言将成为你手上一件必不可少的工具。

内容详情:https://www.roncoo.com/course/view/bbd372aa876e4d7aa37e533a45bf7bf2

转载于:https://my.oschina.net/u/3573545/blog/1838163

Scala入门-大数据云计算下的开发语言相关推荐

  1. 大数据全栈式开发语言 – Python

    前段时间,ThoughtWorks在深圳举办一次社区活动上,有一个演讲主题叫做"Fullstack JavaScript",是关于用JavaScript进行前端.服务器端,甚至数据 ...

  2. 软件开发全套视频教程汇总(javaSE,javaEE,linux,android开发,C# ,web前端,大数据云计算,数据挖掘,web前端,php开发,UI设计,C++开发,3D视频)

    软件开发全套视频教程汇总(javaSE,javaEE,linux,android开发,C# ,web前端,大数据云计算,数据挖掘,web前端,php开发,UI设计,C++开发,3D视频) 这是我以前学 ...

  3. BigData:MaxCompute大数据计算服务(阿里巴巴开发/原ODPS/云计算分布式)的简介(基本概念/功能/流程图)、使用方法之详细攻略

    BigData:MaxCompute大数据计算服务(阿里巴巴开发/原ODPS/云计算分布式)的简介(基本概念/功能/流程图).使用方法之详细攻略 目录 背景-传统分布式计算的弊端 MaxCompute ...

  4. 大数据开发:大数据背景下的数据库选型

    在IT技术领域,数据库技术是重要的支撑性技术,尤其是进入大数据时代以来,海量的数据累积起来,成为庞大的数据集合,更是需要强大的数据库去完成存储支持.今天我们主要来讲讲,大数据背景下的数据库选型. 整体 ...

  5. 大数据时代背景下的商标注册风险及应对方法

    随着"大数据"概念的逐渐普及,我国传统行业开始逐渐重视与互联网之间的跨界融合,这一趋向近年来十分显著.但是,在大数据时代背景下,互联网具备的全球化.开放化以及数据共享等多个特点,给 ...

  6. 网易微专业python数据分析统计服_40套大数据云计算高级实战精品,数据分析,数据仓库,数据爬虫,项目实战,用户画像, ......

    40套大数据云计算高级实战精品,数据分析,数据仓库,数据爬虫,项目实战,用户画像,日志分析,Hadoop,Flink,Spark,Kafka,Storm,Docker,ElaticStack等视频教程 ...

  7. 原创 | 入门“大数据”,你需要通读这18本书

    大数据或称巨量资料,指的是需要新处理模式才能具有更强的决策力.洞察力和流程优化能力的海量.高增长率和多样化的信息资产.在移动互联网快速发展的当下,越来越多的工作岗位会运用到大数据技术.了解学习&quo ...

  8. 大数据架构详解_【数据如何驱动增长】(3)大数据背景下的数仓建设 amp; 数据分层架构设计...

    背景 了解数据仓库.数据流架构的搭建原理对于合格的数据分析师或者数据科学家来说是一项必不可少的能力.它不仅能够帮助分析人员更高效的开展分析任务,帮助公司或者业务线搭建一套高效的数据处理架构,更是能够从 ...

  9. 马云致投资者公开信:大数据云计算是阿里未来十年核心战略之一

    与此同时,阿里巴巴董事局主席马云以"一指禅"的电脑输入方式亲自写就一篇致股东公开信,详细阐述了阿里未来战略.平台优势.资本市场乃至竞争对手等外界关心的问题. 其中,特别指出全球化. ...

最新文章

  1. Python使用tpot获取最优模型、将最优模型应用于交叉验证数据集(5折)获取数据集下的最优表现,并将每一折(fold)的预测结果、概率、属于哪一折与测试集标签、结果、概率一并整合输出为结果文件
  2. 恭贺各位鸡年好运,新年快乐,万事如意!!!
  3. 字节流 system.in
  4. CSS-home.htm
  5. 【每周CV论文】初学深度学习图像修复应该要读的文章
  6. ITK:创建Image
  7. Eclipse 黑色主题
  8. MySQL5.7绿色版安装
  9. POP气球机v1.3
  10. 华为Mate X供货还没跟上,Mate Xs就要来了,余承东亲自确认
  11. Django笔记13(部署Django)
  12. 51. magento 手动创建订单
  13. 手机APP/小程序微模卡源码下载,开源开心免费开心
  14. 【速记】英语多个形容词(定语)搭配规则
  15. python求和函数详解_python 中求和函数 sum详解
  16. untiy的http请求
  17. 十分钟手把手教你设计简单易用的组件级考试题(单选、多选、填空、图片),建议收藏
  18. 数据库原理—数据查询
  19. Powerpoint高级技巧
  20. 龙之气息服务器维护,【龙之气息:从入坑到肝硬化】

热门文章

  1. 浏览器上享受《速度与激情》,开发者花 16 个月用 JavaScript 造了一款驾驶游戏,水里也能开车!
  2. JAVA base64的PNG格式转JPG
  3. CUP 三级缓存L1 L2 L3 cahe详解
  4. 云闪付怎么对接三方php,第三方支付-银联云闪付开发教程
  5. 【Git】Git 的基本使用
  6. 【SSR】287- 从头开始,彻底理解服务端渲染原理
  7. Android加密之全盘加密(FDE)
  8. 基于FPGA的以太网控制器(MAC)设计(中)
  9. 计算机专业看重CPU还是显卡,组装电脑时CPU和显卡选择哪个重要?
  10. CSS 实现倒三角形