写点什么

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:044957
用户头像

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

关注

评论

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

安装R语言编译器:

唯爱

服务化构建-多维度的认识中台

图南日晟

软件工程 分层架构 架构设计

解决版权难题,“豪横”字体自己做

zhoo299

设计 CG

游戏夜读 | vim,vim,vim

game1night

tput命令介绍

唯爱

XSKY发布XMotion纳管热迁移技术,OpenStack集群迁移效率提升超10倍

XSKY星辰天合

《中国互联网简史》系列笔记之P2P

dongh11

读书笔记

小谈校招offer选择

dongh11

职场 职业规划 应届毕业 心态 招聘

深入浅出Mysql索引的那些事儿

猿人谷

MySQL 性能优化 索引

磁盘挂载

唯爱

Vol.7 聊聊我热爱的陕西省图书馆

pyfn2030

记录 生活,随想

【写作群星榜】5.22~5.28写作平台优秀作者&文章排名

InfoQ写作社区官方

写作平台 排行榜 热门活动

Vol.8 云栖小镇游记

pyfn2030

阿里云 随笔 数字化转型

Vol.9 Web前端发展历程及前端工程化

pyfn2030

大前端

Rust 遇上 C/C++(二):函数传参

Coding Fatty

c c++ rust 编程语言

MySQL死锁系列-常见加锁场景分析

程序员历小冰

MySQL

金灿灿的季节 - Apache DolphinScheduler收获5位新Committer

代立冬

认识数据产品经理(四 与互联网产品经理的区别)

马踏飞机747

大数据 互联网 产品经理 职业规划

Eureka 实例注册状态保持 STARTING 的问题排查

张晓辉

spring Spring Cloud netflix

时序数据库

pydata

Dataway 整合 Swagger2,让 API 管理更顺畅

哈库纳

Spring Boot DataQL Dataway Hasor

ARTS|Week 1 第一次使用LeetCode

Puran

LeetCode ARTS活动

只用CSS实现响应式Full-Width img 2种方法

寇云

CSS css3

超简单入门MyBatis,看了就会了~

程序员的时光

mybatis

在培训机构花了好几万学Java,当了程序员还常被鄙视,这是招谁惹谁了?

四猿外

Java 学习 程序员 个人成长

服务化架构-状态码设计要点

图南日晟

微服务 RESTful 架构设计

珍藏已久的 OS 学习网站拿出来分享给大家

苹果看辽宁体育

操作系统

Java 学习笔记(三)数据类型

杜朋

控制 Pod 内容器的启动顺序

张晓辉

Kubernetes

避免争执

孙苏勇

职场 随笔杂谈

不懂送女朋友什么牌子的口红?没关系!Python 数据分析告诉你。

JackTian

Python 程序员 数据分析 python 爬虫 口红

Scala的未来_Scala_Matt Raible_InfoQ精选文章