最新发布《数智时代的AI人才粮仓模型解读白皮书(2024版)》,立即领取! 了解详情
写点什么

SCALA 2.12 路线图

  • 2014-07-05
  • 本文字数:1630 字

    阅读完需:约 5 分钟

Scala 官方网站于 6 月 30 日发布了 Scala 2.12 路线图,新版本需要 Java 8 的支持。以下是该路线图的详细内容,英文原文请点击这里

目标

  • 最小化用户和类库维护者的迁移成本。
  • 在一段时间内继续支持 Java 6(仅针对 Scala 2.11)。
  • 跟踪 Java 平台的进展。

如何实现

  • 即将发布的 2.11.x 版本将会引入以下实验特性:Java 8 风格的闭包编译、 Miguel 的新后端和优化器
  • 通过完全向后兼容的源码轻松地实现 2.11 和 2.12 版本之间的交叉构建,Scala 团队并不会移除废弃的方法,但是会支持可选的废弃错误(译者注:根据用户的选择决定是否告诉用户他们使用了废弃的方法)。
  • 官方构建的 Scala 2.12 将会以 Java 8 为目标平台(因此运行也需要 Java 8)。在默认情况下将会使用新的后端和优化器。

背景

  • 在没有对 artifactId 做进一步命名调整之前无法让一个 Scala 二进制版本以两个不同的 Java 版本为目标。即使确实能够通过 maven 指定所需的 Java 版本,这个分支对于生态系统而言也会是一个巨大的负担。因此,所需 Java 版本与 Scala(二进制)版本必须匹配。
  • 通过在这两个版本上运行同样的社区构建(Community Build)检查 2.11/2.12 的交叉构建。为了提升源码的向后兼容性,Scala 2.12 不会移除废弃的成员。但是如果用户在代码中使用了 2.11.0 版本或者更早版本中的废弃成员,那么默认情况下 2.12 的编译器将会发出废弃错误。原则上,如果针对 Java 6 平台编译 2.12 的类库,那么它应该与 2.11 向后兼容。
  • 紧跟平台的发展是非常重要的,即使 Java 8 中基于 MethodHandle 实现的闭包可能不会马上产生显著的性能收益。对于那些并不支持 Java 8 字节码的平台而言,有两个项目( retrolambda Forax’s JSR292 backport )能够将 Java 8 的 invokedynamic 字节码重写为 Java 6 的字节码。

Scala 2.11 和 2.12 共享的特性

  • 使用 MethodHandle 有效地编译 Lambda(在 2.11 上需要单独的兼容模块)。
  • Java 8 互操作(双向):
    • 改善了 Java 8 字节码的读取支持(已经在 2.11 中实现)
    • 提升并默认打开 SAM 支持。Scala 能够通过它无缝地调用 Java 8 高阶方法(2.11 已经实现,使用 -Xexperimental)
    • 兼容模块让 Java 8 能够调用 Scala 的高阶方法
  • 完全集成 Miguel 的新后端和优化器(重构代码、深入的测试和文档、移除旧的后端)。
  • 风格检查器:一个有效的、社区驱动的平台,它可以实现精确的代码风格检查(在编译器之上构建)。
  • 集合:提升测试覆盖范围、性能和文档。
  • 改善文档:关注于内容(如果想要做贡献,这是一个非常好的起点,也包括工具方面的文档)。
  • 继续改善基础设施(sbt 构建,提升拉请求验证和发布自动化、bug 跟踪器清理和自动化)。

Scala 2.12 专有的特性:更多的 Java 8 特性

以下特性的开发将于 2015 年开始。因为这些特性是二进制不兼容的,所以它们无法移植到 2.11 上。

  • 将 FunctionN 转变成函数式接口( Functional Interface ),这样 Java 8 代码不需要包装器就能调用 Scala 中的高阶方法。
  • 支持 @interface 特征,确保编译成 Java 接口(有助于互操作、性能和二进制兼容性)。
  • Streams:集成进 Scala 集合?
  • 使用 JDK 提供的 forkjoin 类库而不是嵌入自己的。
  • SIP-20 改善了惰性 val 初始化。

时间

Scala 2.10.5 (Q4 2014) 将会是 2.10 的最后一个版本。Scala 团队打算在 2014 年发布 5 个 2.11.x 版本,在 2015 年还会发布几个版本。2.12 将会从 2014 Q4 开始开发,2015 年团队的开发重心将会转移到 2.12。

2.10.0

04/01/2013

第一个 2.10.x 版本

2.11.0

16/04/2014

第一个 2.11.x 版本

2.11.1

19/05/2014

复制代码
2.11.2

21/07/2014

复制代码
2.11.3

29/09/2014

复制代码
2.10.5

Q4 2014

最后一个 2.10.x 版本

2.12.0-M1

24/11/2014

复制代码
2.11.4

Dec 2014

复制代码
2.12.0-M{2,3,4}

Q{1,2,3} 2015

按季度发布 2.12.0-Mx 版本

2.12.0-M5

Oct 2015

复制代码
2.12.0-RC1

Nov 2015

M1 发布一年之后

2.12.0

Jan 2016


感谢郭蕾对本文的审校。

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

2014-07-05 00:343813
用户头像

发布了 321 篇内容, 共 116.0 次阅读, 收获喜欢 18 次。

关注

评论

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

【从零开始学docker】一、Docker的安装,启动以及工作原理

泡泡

云计算 容器 云原生 9月月更

构建AI原生的智能计算基础设施,百度百舸·AI异构计算平台2.0发布

Baidu AICLOUD

模型训练 异构计算 智算中心

数字人技术在直播场景下的应用

百度Geek说

人工智能 直播 企业号九月金秋榜

Python图像处理丨认识图像锐化和边缘提取的4个算子

华为云开发者联盟

Python 人工智能 图像处理 企业号九月金秋榜

从采集到存储:时序数据库到底怎么处理时间?

Apache IoTDB

IoTDB Apache IoTDB

对话杨传辉:国产数据库新战绩背后,OceanBase坚持自研的初心与决心

OceanBase 数据库

企业即时通讯IM能给移动办公带来哪些便利?

WorkPlus

LeetCode-13. 罗马数字转整数(java)

bug菌

9月日更 Leet Code 9月月更

LeetCode-9. 回文数(java)

bug菌

9月日更 9月月更

MySQL 数据库 - 通用语法 DDL DML DQL DCL

喜羊羊

MySQL 9月月更

5年专业研究,这份云原生安全指南请查收!

博文视点Broadview

openGauss内核分析:SQL by pass & 经典执行器

华为云开发者联盟

数据库 后端 企业号九月金秋榜

有了QQ和微信,企业是否还需要另外一个即时通讯工具?

WorkPlus

上海华为云SaaS应用创新创业大赛暨828 B2B企业节发布仪式

科技怪咖

XDR的技术栈参考

极盾科技

网络安全 数据安全 xdr

【文本检测与识别-白皮书】第一章:技术背景

合合技术团队

文字识别 文本 人工智能’

红象云腾(Redoop Enterprise)V9 与龙蜥(Anolis OS)8 完成兼容认证

OpenAnolis小助手

大数据 开源 适配 龙蜥操作系统 红象云腾

FreeRTOS记录(四、FreeRTOS任务堆栈溢出问题和临界区)

矜辰所致

堆栈溢出 临界区保护 FreeRTOS 9月月更

高性能数据访问中间件 OBProxy(四):一文讲透连接管理

OceanBase 数据库

Chrome操作指南——入门篇(一)

Augus

Chrome开发者工具 9月月更

阿里云如何基于边缘云设计终端云化场景的架构?

阿里云视频云

边缘技术 边缘云

华为云WeLink直播助力高校毕业典礼:这届毕业生,我们云上嗨

科技怪咖

得物云原生全链路追踪Trace2.0架构实践

得物技术

云原生 监控 链路追踪 OpenTelemetry 企业号九月金秋榜

一文带你认知定时消息发布RocketMQ

华为云开发者联盟

云计算 后端 华为云 企业号九月金秋榜

MobTech秒验 Android端如何在授权界面添加短信登录按钮

MobTech袤博科技

android sdk

不容错过的技术盛宴,4场全是 eBPF 技术干货,今天见 | 第 44-47 期

OpenAnolis小助手

Linux 开源 ebpf sig 龙蜥大讲堂

MySQL 数据库 - 函数 约束 多表查询 事务

喜羊羊

MySQL 9月月更

合阔智云核心生产系统切换到服务网格 ASM 的落地实践

阿里巴巴中间件

阿里云 Kubernetes 云原生 服务网格 合作

吃透JAVA的Stream流操作,多年实践总结

Java快了!

stream java;

数据湖统一元数据与权限

阿里云大数据AI技术

大数据 企业号九月金秋榜

Servent

喜羊羊

9月月更

SCALA 2.12路线图_Scala_孙镜涛_InfoQ精选文章