BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

Scala的未来

| 作者 Matt Raible 关注 11 他的粉丝 ,译者 赵震一 关注 0 他的粉丝 发布于 2014年9月1日. 估计阅读时间: 3 分钟 | Google、Facebook、Pinterest、阿里、腾讯 等顶尖技术团队的上百个可供参考的架构实例!

Scala团队最近发表了一篇题为《Scala的下一步计划》的文章,这篇文章对Scala这门语言的未来进行了描述,并对Scala后续的三个主要版本的特性和目标进行了细化:改善语言和它的类库,从而让它变得更容易理解、更加健壮,并且性能更好。

Scala 2.12是下一个主要版本,在最近的InfoQ文章《Scala 2.12将只支持Java 8》中已有所介绍。而再接下去的两个版本将以代号的方式命名,分别是Aida和Don Giovanni。2.12版的主要目标是与Java 8的互操作性,而Aida则专注于简化集合框架,Don Giovanni将会对语言进行改进,并会提升编译器的速度。Don Giovanni版还计划与项目Valhalla合作,因为这两个项目具有相似的愿景。

项目Valhalla是一个实验性的OpenJDK项目,该项目旨在开发那些同时需要更改语言语法和虚拟机级别支持的主要的Java新特性。其中Scala想要利用的两个Valhalla特性是实现泛型的新方式和值类型。

虽然向后的兼容性并不能得到保证,但是将会构建一个源代码的迁移工具来支持跨不同版本的构建。普通的Scala代码将可以很容易地进行移植,但是例如像宏(macros)这样的实验性的特性将无法得到支持。

Julian Gamble是Clojure Recipes的作者,他为Hacker News的文章添加了一些上下文信息。他提到Scala编译器的首席开发Paul Philips在去年曾进行过一次标题为“我们做的一切都错了”的分享。你可以观看他分享内容的视频,或者下载他分享的幻灯片。Gamble认为《下一步计划》这篇文章是Martin Odersky对这一现状的回应,而Gamble对他的实际行动表示了赞赏。

根据 Scala 2.12 路线图,这一版本在2016年1月之前都不会计划发布。Hacker News上的一些人表达了对向后兼容性的关注。Scala的首席设计师Martin Odersky对此作出了回应

我们将会尝试尽可能灵活地划清新老版本的边界,而它们两者的lint工具和语言导入将会是这一工作的重要部分。

同样也要注意那些我们所考虑的重写,数量多且相当琐碎。例如在你每次使用过程调用语法的时候会插入一句": Unit = ",或者会对xml"""..."""中每一个XML字面量进行包裹。

唯一让我感到有一些不放心的事就是那些试验性的特性。它们将无法干净地进行移植,而我现在的建议会是:如果你想你的代码不经过大量重写就能通过转换,那么请不要使用实验性特性。它们也许很吸引人,但是它们将会给你埋下一个个坑。

查看英文原文:The Future of Scala

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT