写点什么

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:214734
用户头像

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

关注

评论

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

平台+低代码:中小企业数字化转型普惠之路

EquatorCoco

低代码 数字化

一条Linux命令打败99%的运维

伤感汤姆布利柏

.NET 9 首个预览版发布:瞄准云原生和智能应用开发

EquatorCoco

.net 架构 云原生

ETL、ELT区别以及如何正确运用

RestCloud

ETL 数据集成 ELT

数字化,网络化和未来的AI

agnostic

人工智能 信息化

细粒度的代码权限怎么做?极狐GitLab 代码所有者来帮忙

极狐GitLab

跨国制造商部署SD-WAN提升全球业务案例分析

Ogcloud

SD-WAN 企业组网 SD-WAN组网 SD-WAN服务商 SDWAN

专业期刊邀请,天谋科技围绕 IoTDB 及 TsFile 刊文《Java aktuell》并将于 JavaLand 峰会作报告

Apache IoTDB

程序员必会的6个数据可视化库

伤感汤姆布利柏

深入解析 Java 面向对象编程与类属性应用

小万哥

Java 程序人生 编程语言 软件工程 后端开发

教你如何拿Merlin Chain空投,附视频教程

BlockChain先知

比特币原生 L2 解决方案 Merlin Chain梅林链科普(bitget wallet)

股市老人

教你如何拿Merlin Chain空投,附视频教程

石头财经

监管人工智能——未来之路

孤傲小二~阿沐

如何保障服务的高可用:提升可观测性

SFLYQ

高可用 后端 可观测性

微帧为央视大年初二《2024春节戏曲晚会》提供AI画质增强服务

微帧Visionular

画质增强 超高清处理

低代码开发:学校低成本数字化转型的新引擎

不在线第一只蜗牛

低代码 数字化

Java并发编程基础(下)

FunTester

除了Sora,还有哪些AI软件工具值得推荐?这30个一定要知道!

彭宏豪95

AI软件 AIGC AI工具

管理者请注意,要珍惜有愤怒情绪的员工

芃篙君

管理

C#中使用IntPtr.Size属性来判断当前系统是32位还是64位

百度搜索:蓝易云

C# 云计算 Linux 运维 云服务器

hal库中串口常用函数介绍

百度搜索:蓝易云

云计算 Linux 运维 云服务器 HAL

软件测试学习笔记丨ES(Elasticsearch)介绍

测试人

软件测试 自动化测试 测试开发

鸿蒙Next怎么升级更便捷

FinFish

纯血鸿蒙 鸿蒙化改造 鸿蒙app 鸿蒙app升级 混合app开发

比特币原生 L2 解决方案 Merlin Chain梅林链科普(bitget wallet)

股市老人

Chatbot具体需要如何搭建

百度搜索:蓝易云

云计算 Linux 运维 chatbot 云服务器

适用于预算少企业的网络组网方案

Ogcloud

SD-WAN 企业网络 SD-WAN组网 SD-WAN服务商 SDWAN

浅析软件开发技术的发展历程与展望:从过去到现在,探索未来趋势

快乐非自愿限量之名

软件开发 项目开发

一座“超级工厂”:让中国没有流不通的数据

脑极体

数据

京东商品详情数据采集方法代码展示

tbapi

京东API接口 京东商品详情接口

2024年赚钱新风口,源码搭建属于自己的体育赛事直播平台

软件开发-梦幻运营部

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