50万奖金+官方证书,深圳国际金融科技大赛正式启动,点击报名 了解详情
写点什么

Scala 的未来

  • 2014-08-31
  • 本文字数:983 字

    阅读完需:约 3 分钟

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

2014-08-31 14:045384
用户头像

发布了 52 篇内容, 共 24.9 次阅读, 收获喜欢 5 次。

关注

评论

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

Go实现并发聚合,批量提交功能

人生如梦

Go 并发 请求聚合

毕业总结

whoami

架构训练营

DNA to Face,会是寻人缉凶的一颗“银弹”吗?

脑极体

java高级用法之:调用本地方法的利器JNA

程序那些事

Java nio 程序那些事 3月月更

恒源云(GpuShare)_医学图像分割:MT-UNet

恒源云

深度学习 机器翻译 transform

用 vite 2 平滑升级 vue 2 + webpack 项目实战

CRMEB

知识管理的成功案例大赏

小炮

产品帮助中心的制作方法及工具推荐

小炮

优雅的DO,VO,DTO转换工具MapStruct

卢永德

3月月更

尚硅谷Maven新版视频教程发布

@零度

maven

【51单片机】点亮LED灯(四种形式)

謓泽

3月月更

电商秒杀系统架构设计文档

皓月

「架构实战营」

科技创新力强,旺链科技创始人刘涛荣登G60科创走廊创业榜单

旺链科技

区块链 产业区块链 创新创业

VuePress 博客优化之增加 Valine 评论功能

冴羽

JavaScript 前端 vuepress 博客搭建 Alogia

程序员硬核测评:全方位测评 GaussDB(for Redis) 和开源 Redis

华为云数据库小助手

性能分析 GaussDB GaussDB ( for Redis ) 华为云数据库 开源Redis

重点操作之上线、恢复、部署 - 大屏云极简使用手册

shulinwu

Java 8 Stream 从入门到进阶——像SQL一样玩转集合

Geek_rze78a

Java JAVA stream

Go学习笔记——条件判断if

为自己带盐

Go 学习笔记 3月月更

URL重定向及跳转漏洞

喀拉峻

网络安全

毕业总结

皓月

「架构实战营」

实用机器学习笔记二十四:模型调参

打工人!

学习笔记 机器学习算法 3月月更 模型调参

基于云效代码管理的源码漏洞检测是怎样的?

阿里云云效

阿里云 代码 代码管理 源代码 Codeup

操作系统面试总结

yuexin_tech

操作系统

AHPA:开启 Kubernetes 弹性预测之门

阿里巴巴云原生

阿里云 Kubernetes 云原生 AHPA 弹性预测

写给20几岁的程序员

shellc

财富 35岁

39 个 Java 集合框架面试题

逆锋起笔

java面试 死磕 Java 基础 3月月更 Java集合框架

华为SmartCare和AUTIN品牌升级:助力运营商走出5G发展迷宫

白洞计划

Python 获取字典中的第一个键

AlwaysBeta

Python 程序员 编程语言 字典

信息安全无小事!教你如何做日志脱敏

卢永德

翻译 | 解读首部 Kubernetes 纪录片

RadonDB

开源 Kubernetes RadonDB

Linux中如何使用Htop监控工具?【网络安全】

H

Linux 网络安全

Scala的未来_Scala_Matt Raible_InfoQ精选文章