Scala 路线图:跳过 2.14,明年上 Scala 3

来源: OSCHINA
编辑: oschina
2019-12-25

Scala 官方公布了 Scala 2 接下来的发展计划,开发团队表示工作将转向 Scala 3,而不是开发 Scala 2.14。

重点虽然转移到 Scala 3,但将继续维护 Scala 2.13,以确保社区有足够的时间谨慎地过渡到 Scala 3。

长期以来,开发团队认为必须有 2.14 版本才能确保顺利过渡到 3,但是经过大量的研究和讨论,现在确信完全不需要 2.14。这样可以带来两方面的好处:

  • Scala 3 将可以更快地投入生产环境。在完善编译器和升级相关工具方面,有许多工作要做,同时将帮助生态系统升级。

  • 无需为 2.14 重建 Scala 库和工具生态系统,从而节省了维护人员的时间以准备 Scala 3。

主要目标是提供从 Scala 2 到 3 的平滑且增量的迁移路径,要实现此目的,Scala 2.13 和 3.0 将使用相同的标准库,并且它们的编译器后端将以相同的方式输出字节码。

共享标准库

共享标准库消除了 Scala 2.13 和 3 之间的主要潜在差异,并有助于迁移。

但是,这也意味着对标准库的二进制不兼容更改将不得不等到 Scala 3.x 系列中的稍后版本,届时将拥有补救二进制不兼容的工具。更具体地说,由于 Scala 2.13 在其系列之内保持向前和向后二进制兼容,因此无法添加或删除任何类或方法。

如果在从 2 到 3 的迁移期间,迫切需要在这些限制之外发展标准库,开发团队可能最终仍会选择发布 Scala 2.14 版本。

共享的 ABI

除了标准库,通过共享 ABI,Scala 3.0 和 2.13 工件可以共同存于类路径上并且可以无缝地互操作,这样可以逐步迁移并简化测试。

目前 Scala 3 已经向后兼容,它可以使用由 Scala 2.13 构建的库。为了实现向前兼容,Scala 3 编译器将提供一种机制来确保公共接口位于公共语言子集中,以便可以在 Scala 2.13 中使用它。这意味着作为库作者的开发者可以直接使用某些 Scala 3 内容,而无需从 Scala 2.13 升级。

除了技术互操作性之外,开发团队还将关注于测试和改进工具,以确保顺利迁移。例如,原定于 2.14 版本中进行的迁移警告将在 2.13 中实施。

除此之外,Scala 官方还罗列了一些相关问题,包括争取在 2020 年年底之前发布第一个候选版本、如何采用类型化抽象语法树 TASTy 处理二进制兼容性问题、宏无法从 2.x 直接迁移到 3.0、以及性能、测试工具与 IDE 支持等,详情查看官方说明:

https://www.scala-lang.org/2019/12/18/road-to-scala-3.html

展开阅读全文
9 收藏
分享
加载中
精彩评论
很多语言特性都是这些乌七八糟的语言先实现的,正规军基本上都是吃现成的,没有这些先行者哪来的后来者,给点敬意好不好
2019-12-25 15:38
21
举报
scala 3 with dotty终于来了么。
2019-12-25 10:42
4
举报
精神上的女神
2019-12-25 09:16
3
举报
支持Scala,安利Scala~
2019-12-25 09:03
3
举报
见过几个大佬把scala当java写。。。。
2019-12-25 08:38
3
举报
最新评论 (23)
kotlin 可能是鉴于java 和 scala中间的语言。
2020-11-07 21:40
0
回复
举报
就是太甜了,上头。
2019-12-27 12:02
2
回复
举报
您好,请问多范式语言是指什么意思?
2019-12-26 15:11
0
回复
举报
命令式,面向对象式,函数式
Scala是面向对象(oop)和函数式(fp) 的结合。
2019-12-26 20:16
1
回复
举报
期待
2019-12-26 09:06
0
回复
举报
不脱离JDK,Scala 100也没多大意义。
2019-12-25 19:08
1
回复
举报
为什么呢,scala从JDK得到很多甜头啊,再说了,scala也可以编译成native和js的啊
2019-12-27 16:12
1
回复
举报
最近在学scala,只能用我靠来表达我的心情,我也知道为啥有人说scala是jvm上的cpp,呵呵
2019-12-25 14:29
1
回复
举报
说到c++顿时没了好感
2019-12-25 14:35
1
回复
举报
我对java没好感,嘿嘿
2019-12-25 15:07
0
回复
举报
感觉运行比Java慢。不知道是不是写spark的原因
2019-12-25 12:15
0
回复
举报
这些个乌七八糟的语言,最终都没有结果。游击队和正规军没法比
2019-12-25 11:09
0
回复
举报
很多语言特性都是这些乌七八糟的语言先实现的,正规军基本上都是吃现成的,没有这些先行者哪来的后来者,给点敬意好不好
2019-12-25 15:38
21
回复
举报
scala 3 with dotty终于来了么。
2019-12-25 10:42
4
回复
举报
写起来爽,一直写一直爽,编译两行泪。
2019-12-25 10:37
1
回复
举报
更多评论
26 评论
9 收藏
分享
返回顶部
顶部