Scala 2.11.2
发布,此版本现已提供下载,也可以通过
Maven 库获取。此版本是个 bug 修复版本,二进制兼容 Scala 2.11
系列,改进记录:

引用Scala是一门现代的多范式编程语言,志在以简练、优雅及类型安全的方式来表达常用编程模式。它平滑地集成了面向对象和函数语言的特性。
Scala是面向对象的:Scala是一个纯面向对象语言,在某种意义上来讲所有数值都是对象。对象的类型和行为是由class和trait来描述的。Class的抽象可由子类化和一种灵活的基于mixin的组合机制来扩展。
Scala是函数式的:
Scala还是一个函数式语言,在某种意义上来讲所有函数都是数值。Scala为定义匿名函数提供了一种轻量级的语法,它支持高阶函数、允许函数嵌套、支持局部套用。Scala的case类及其内置支持的模式匹配模型代数类型在许多函数式编程语言中都被使用。
Scala是静态类型的:Scala配备了一套富有表现力的类型系统,该抽象概念以一种安全的和一致的方式被使用。
Scala是可扩展的:Scala的设计承认了实践事实,领域特定应用开发通常需要领域特定语言扩展。Scala提供了一个独特的语言组合机制,这可以更加容易地以类库的形式增加新的语言结构:
任何方式可以被用作中缀或后缀操作符 闭包按照所期望的类型自动地被构造
两者结合使用可方便地定义新语句,无需扩展语法,也无需使用类似宏的元编程工具。
Scala可与Java和.NET进行互操作:Scala设计时就考虑了与流行编程环境良好交互,如Java
2运行时环境和
.NET框架。特别是与主流面向对象语言,如Java和C#尽量无缝交互。Scala有像Java和C#一样的编译模型,允许访问成千上万的高质量类库。
目前,Scala的2.7.1.RC1已经发布了,与之前的版本相比,这个版本主要添加或增强了下列特性:引用Removed
the contractiveness requirement for implicit methods. The compiler uses
a cycle detection algorithm to prevent cyclic application of implicits.
Added regular expression parsers. Added the methods requires and
ensuring to Predef.scala 另外,修正了30多个bug.

曾经有人问Java的创始人高斯林这样一个问题,“除了Java语言以外,您现在还使用JVM平台上的哪种编程语言?”他毫不犹豫的说是Scala。

  • Several issues in the collections
    library
    were resolved
    (SI-8738).

  • The optimizer no longer eliminates division instructions that may
    throw an ArithmeticException
    (SI-7607).

  • The -Xlint compiler flag is now parameterized by individual
    warnings.  Kudos to @som-snytt!

  • TypeTags and Exprs are now serializable
    (SI-5919).

Scala到底是什么?

相对于 2.11.1 版本,此版本解决了 49 个
issues,合并了
70 个 pull
requests。下一个版本计划会在两个月后发布。

在目前众多的JVM语言当中,Scala无疑是最引人注意的语言之一。Scala是一个静态语言,更适合澳门新葡萄京所有网站 ,大型工程项目,

澳门新葡萄京所有网站 1

Scala直接编译成Java字节码,

Scala是一门现代的多范式编程语言,志在以简练、优雅及类型安全的方式来表达常用编程模式。它平滑地集成了面向对象和函数语言的特性。

性能接近Java。Scala是一个多范式的语言,你可以混合使用函数式和
面向对象
编程,混合使用可变类和不变类,混合使用Actor和传统的Java并发库。

Scala是面向对象的:Scala是一个纯面向对象语言,在某种意义上来讲所有数值都是对象。对象的类型和行为是由class和trait来描述的。Class的抽象可由子类化和一种灵活的基于mixin的组合机制(它可作为多重继承的简单替代方案)来扩展。

短短一个月的时间,Scala于本月冲进了TIOBE的前五十名。一个 Twitter
的开发人员说过,Scala 将会成为现代 Web2.0 的发起语言。LinkedIn
也用这种语言。同样许多其他大的公司如 Sony Picture, EDF, SAP
也开始使用这种语言。为什么Scala发展这么迅猛,可以获得如此热烈的社区支持。

Scala是函数式的
Scala还是一个函数式语言,在某种意义上来讲所有函数都是数值。Scala为定义匿名函数提供了一种轻量级的语法,它支持高阶(higher-
order)函数、允许函数嵌套、支持局部套用(currying)。Scala的case类及其内置支持的模式匹配模型代数类型在许多函数式编程语言中
都被使用。

曾冠东还表示,Scala不是Java的杀手,它无法取代Java的地位,也突破不了JVM的限制、Java实现不了的功能它也实现不了。我们可以将Scala形象的理解成大量语法糖的Java。  Scala
开发团队发布了最新的2.9.2稳定版本,Scala 语言的特性有许多,例如
高阶函数
和对象、抽象类型绑定,actor 使得函数在 Scala
中能是一个子类成为可能,Scala
中的设计模式使得面向对象
和函数编程无缝结合。Akka 是一个用 Scala
编写的库,用于简化编写容错的、高可伸缩性的 Java 和 Scala 的 Actor
模型应用。它已经成功运用在电信行业。Spark
是一种可扩展的数据分析平台,它整合了内存计算的基元,因此,相对于 Hadoop

集群存储
方法,它在性能方面更具优势。Spark 是在 Scala
语言中实现的,并且利用了该语言,为数据处理提供了独一无二的环境。Scala
编译器可以生成字节码,直接运行在使用JVM上。该语言(它实际上代表了可扩展语言)被定义为可直接集成到语言中的简单扩展。

Scala是静态类型的:Scala配备了一套富有表现力的类型系统,该抽象概念以一种安全的和一致的方式被使用。

Scala作为一门静态语言,它的主要特性有哪些?  ·
Scala是面向对象
的  Scala是一个纯面向对象语言,在某种意义上来讲所有数值都是对象。对象的类型和行为是由class和trait来描述的。Class的抽象可由子类化和一种灵活的基于mixin的组合机制(它可作为
多重继承的简单替代方案)来扩展。  ·
Scala是函数式的

Scala是可扩展的:Scala的设计承认了实践事实,领域特定应用开发通常需要领域特定语言扩展。Scala提供了一个独特的语言组合机制,这可以更加容易地以类库的形式增加新的语言结构:两者结合使用可方便地定义新语句,无需扩展语法,也无需使用类似宏的元编程工具。

Scala还是一个函数式语言,在某种意义上来讲所有函数都是数值。Scala为定义匿名函数提供了一种轻量级的语法,它支持高阶(higher-order)函数、允许函数嵌套、支持局部套用(currying)。Scala的case类及其内置支持的模式匹配模型代数类型在许多函数式编程语言中都被使用。  
Scala是静态类型的

  • 任何方式可以被用作中缀(infix)或后缀(postfix)操作符

  • 闭包按照所期望的类型(目标类型)自动地被构造

Scala配备了一套富有表现力的类型系统,该抽象概念以一种安全的和一致的方式被使用。

Scala可与Java和.NET进行互操作:Scala
设计时就考虑了与流行编程环境良好交互,如Java 2运行时环境(JRE)和
.NET框架(CLR)。特别是与主流面向对象语言,如Java和C#尽量无缝交互。Scala有像Java和C#一样的编译模型(独立编译,动态装载
类),允许访问成千上万的高质量类库。

Scala是可扩展的  
Scala的设计承认了实践事实,领域特定应用开发通常需要领域特定语言扩展。Scala提供了一个独特的语言组合机制,这可以更加容易地以类库的形式增加新的语言结构:  任何方式可以被用作中缀(infix)或后缀(postfix)操作符闭包按照所期望的类型(目标类型)自动地被构造  两者结合使用可方便地定义新语句,无需扩展语法,也无需使用类似宏的元编程工具。  ·
Scala可与Java和.NET进行互操作

(文/开源中国)    

Scala设计时就考虑了与流行编程环境良好交互,如Java 2运行时环境(JRE)和
.NET框架(CLR)。特别是与主流面向对象语言,如Java和C#尽量无缝交互。Scala有像Java和C#一样的编译模型(独立编译,动态装载类),允许访问成千上万的高质量类库。

在并发性方面,与 Scala 在 .NET 领域中的姐妹语言 F# 相似,Scala 是针对
“并发性问题”
的解决方案之一,让开发人员能够更加轻松地专注于问题的实质,而不用考虑并发编程的低级细节。

Actor 编程模式让高度并行应用程序的开发更加简单。
Scala把Erlang风格的基于actor的并发带进了JVM。
我们可以利用Scala的actor模型在JVM上设计具伸缩性的并发应用程序,以自动获得多核心处理器带来的优势,而不必依照复杂的Java线程模型来编写程序。
Scala 为并发性提供了两种级别的支持,这与其他与 Java
相关的主题极为类似:  
首先,对底层库的完全访问(比如说 java.util.concurrent)以及对 “传统” Java
并发性语义的支持(比如说监控程序和wait()/notifyAll())。其次,这些基本机制上面有一个抽象层  
Scala 提供了在稳定的高性能平台(Java
虚拟机)上生成的能力同时也是一门敏捷性语言。
这一类型的语言也有其他的选择,例如 Jython, JRuby, Groovy 和 Clojure,
但是这些都是运行在 JVM 上的动态类型语言。
Open Class
的效果让大家会觉得Scala是动态语言,但它是选择隐式转换来实现的,这也正好证明了Scala是静态语言。
隐式转换(Implicit conversion)使 Scala
具有类型安全性,正如扩展方法(extension method)之于 C#,开放类(open
class)之于 ruby。
即:向未曾定义的类型添加方法(如字符串、列表、整数)。这是使得 Scala 符合
DSL(特定领域语言)模型的特性之一。

Scala结合了面向对象和函数编程的优势,函数编程的一个好处就是你能够像运用一个数据那样运用函数,可以用来定义真正高层级的库,或者去定义新的领域特殊语言(DSL)。

在谈及Java与Scala的对比时,曾冠东表示,Scala能调用绝大部分的Java,而Java调用Scala独有的东西会比较难。Java
拥有非常强的概念规范,因此任何一个 Java
程序之间具有非常多的相似之处,并且这样能够方便的进行程序员交替。但是
Scala
并没有这样的统一性,因为这是一门很有表现力的语言。现场曾冠东为我们演示了实际案例,如下图所示:

正所谓,金无足赤,人无完人。Scala对二进制不兼容,语法也越来越复杂,不能突破Bytecode的限制、编译速度有所缓慢。当它被广泛用于单元测试、开发工具、Socket开发、以及面对多核挑战的并发应用。总而言之,Scala是一种函数式面向对象语言,它融汇了许多前所未有的特性,而同时又运行于JVM之上。正如JRuby
创建者之一Charles Nutter 所宣称的那样Scala就是 Java
王位的合法继承人。随着开发者对Scala的兴趣日增,以及越来越多的工具支持,无疑Scala语言将成为广大软件工程师手上一件必不可少的工具。

https://zhidao.baidu.com/question/936558522540081052.html