50万奖金+官方证书,深圳国际金融科技大赛正式启动,点击报名 了解详情
写点什么

Scala 2.11.0 发布

  • 2014-04-24
  • 本文字数:1026 字

    阅读完需:约 3 分钟

在经过 4 个 RC 版本之后,Scala 2.11.0 正式发布,该版本主要针对 Java 6,并开始试验性支持 Java 8,比如读取 Java 8 字节码、解析 Java 8 源代码。另外,在 2.10.x 系列版本上构建的没有过时警告 Scala 的代码可以在 2.11 平台正常构建。Scala 2.11.0 修复了 2.10.x 中的 613 个 BUG,并在 2.10 系列的基础上做了大幅改进,官方宣称 Scala 2.11 的设计目标是更小、更快、更稳健。

Scala 2.11.0 主要在集合、反射、宏和编译器等方面进行了改进,具体如下:

1. 集合

提高了 Immutable HashMap、HashTable 的 filters、unions、like 方法的执行速度,增加了 LongMap、AnyRefMap 以提升在 Key 为 Long 或者 AnyRef 时的性能,BigDecimal 的 round 操作语义更加明确,并且通过减少不必要的BigInt转换以提升性能。另外 List 的 map、flatMap、collect 性能也得到了提升。

2. 模块化

从 Scala 核心 jar 中拆分出 xml、解析、swing 等模块,这些模块都已经单独提供,另外也对编译器进行了模块化。

3. 反射、宏以及 quasiquotes

请读者参考此文档来了解这部分的变化以及兼容性。

4. 编译器后端

引入新的字节码生成方案 GenBCode ,采用新的方案编译闭包并引入独立的项目 scala.js

5. 编译器优化

增量编译性能得到了明显提升,读者可以升级 sbt 到 0.13.2 版本并添加incOptions := incOptions.value.withNameHashing(true)参数来体验此特性。另外还优化了反射的性能

6. REPL

字节码反编译命令:javap已经支持 Java 7,新加了:kind命令。

7. 改进 -Xlint 警告

新版本的 Scala 会在未使用的 private/local 的 terms 或者类型以及未使用的 imports 时给予警告。

8. 编译器瘦身

移除了.net 编译器后端,重新实现了 Pattern Matcher 的 Bytecode Emitter,还删除了无用的代码。

另外,Scala 2.11.0 对应的 IDE 基于 Eclipse 4.2/4.3(Juno/Kepler) 构建,读者可以参考这篇指南来安装 Eclipse 和 Scala IDE。

相对于 2.10.x,Scala 2.11.0 主要做了一些性能优化、Bug 修复以及过时标记的改进,但对 Java 8 的支持多少有点令人失望,相信 Scala 会在 2.12 系列中增强此部分的功能。读者可以从这里下载最新版本的 Scala。如果不了解 Scala,可以看看由 Scala 的作者亲自录制的视频教程

参考文档:

  1. SCALA 2.11.0 IS NOW AVAILABLE
  2. Hacker News

感谢方腾飞对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ )或者腾讯微博( @InfoQ )关注我们,并与我们的编辑和其他读者朋友交流。

2014-04-24 20:215122
用户头像

发布了 219 篇内容, 共 149.8 次阅读, 收获喜欢 195 次。

关注

评论

发布
暂无评论
发现更多内容

做好项目管理,项目经理应当掌握哪些技能?

万事ONES

项目管理 ONES 项目经理

阿里内部不外传的50万字Java面试手册,首次开放,一天遭狂转10w次

Java架构师迁哥

mysql的存储引擎知多少

卢卡多多

KV存储引擎 MySQL 数据库 6月日更

B站收藏 12.5w+!GitHub 标星 6.6k+!这份文档拯救了我薄弱的计算机基础

Java架构师迁哥

百度智能云以端边云全面智能化的天工AIoT平台2.0打造智能物联网解决方案

百度大脑

人工智能 物联网

前端 JavaScript 获取字符串中重复次数最多的字符

编程三昧

JavaScript 大前端 数组 指针思想

矩阵分解推荐算法(十八)

Databri_AI

推荐算法 矩阵运算

【熬夜整理近百份大厂面经】2022校招提前批面经总结分享(腾讯、字节、阿里、百度、京东等招聘信息+必考点+简历书写)

学无止境的阿奔

c++ 程序员 面试 后端 秋招

七种方式教你在SpringBoot初始化时搞点事情

L

Java

CHM源码阅读(jdk1.7)

周周

极光开发者周刊【No.0625】

极光GPTBots-极光推送

Vue源码学习 | 从源码中学习Javascript技巧

devpoint

JavaScript Vue 6月日更

Kubernetes手记(22)- K8S包管理器

雪雷

6月日更

JavaScript学习(九)

空城机

JavaScript 大前端 6月日更

阿里实录:一个优秀的分布式系统该如何去设计?

Java架构师迁哥

北鲲云:浅谈云计算与高性能计算的区别与联系

北鲲云

B 站游戏技术平台微服务通用网关实践

bilibili游戏技术

微服务 openresty APISIX 通用网关

极光统一消息系统UMS新版上线!多维数据统计分析助推运营增长

极光GPTBots-极光推送

JSON 数据格式该怎么使用

网络安全学海

json 网络安全 安全 信息漏洞 渗透测试

5分钟速读之Rust权威指南(三十)多线程

wzx

rust

压缩微指令长度方法

若尘

计算机组成原理 6月日更

百度智能云在AI云服务市场四度夺魁!

百度大脑

人工智能 云服务

敏捷项目管理实践,如何正确使用故事点预估工作量?

万事ONES

项目管理 敏捷开发 ONES

带老弟做项目,凉了

程序员鱼皮

Java c++ Python JavaScript 技术

AI云市场的繁盛之夏:AI花开果熟,百度抢先品尝第一口甜

脑极体

【得物技术】得物社区实践

得物技术

dubbo dubbo-go 社区 Go 语言 融合

敏捷项目管理是不是可以缩短项目周期,或者说“敏捷就是快”?

万事ONES

项目管理 敏捷开发 ONES 项目管理工具

快手严厉整治违规商业内容:必须构建平台良性生态链

石头IT视角

高性能计算在人工智能(AI)智药中的应用

北鲲云

Scrum | 你需要知道这些

Python研究所

项目管理 Scrum 敏捷

Linux之touch命令

入门小站

Linux

Scala 2.11.0 发布_Scala_小盖_InfoQ精选文章