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

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

优秀的个人博客,低调大师

微信关注我们

原文链接:https://www.oschina.net/news/112322/road-to-scala-3

转载内容版权归作者及来源网站所有!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

相关文章

发表评论

资源下载

更多资源
优质分享Android(本站安卓app)

优质分享Android(本站安卓app)

近一个月的开发和优化,本站点的第一个app全新上线。该app采用极致压缩,本体才4.36MB。系统里面做了大量数据访问、缓存优化。方便用户在手机上查看文章。后续会推出HarmonyOS的适配版本。

Mario,低调大师唯一一个Java游戏作品

Mario,低调大师唯一一个Java游戏作品

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Java Development Kit(Java开发工具)

Java Development Kit(Java开发工具)

JDK是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具。

Sublime Text 一个代码编辑器

Sublime Text 一个代码编辑器

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。