Scala native即将发布

洛桑联邦理工学院(EPFL)发布了一个新的网站http://www.scala-native.org/,他们宣布了一个新的项目 Scala Native,但是没有公布具体的内容,只有"coming soon"的提示, 但是网站上唯一的提示 "Your favourite language gets closer to bare metal." 隐约透漏它可能是可以使用Scala编程语言编译成本机代码的项目。

Scala除了纵向发展外(Scala本身语言的扩展), 也在横向的发展, 比如Scala.js将Scala语言引入到Javascript中,它可以将Scala语言编译成javascript。因此有理由相信,这个即将发布的项目可以将Scala代码编译成本机代码,这样就可以脱离虚拟机直接运行了。

这个项目会在接下来的几个月发布,但是在即将举行的纽约 Scala Days会议上, Denys Shabalin会介绍一个主题 "Scala Goes Native", 内容为:

Scala has historically been a JVM-centric programming language. The situation has started to change with appearance of the Scala.js that opened a door of front-end development to Scala programmers. This talk will expand the horizons of Scala even more. We’re going to announce a new ahead-of-time compiler and lightweight managed runtime designed specifically for Scala.

可以看到Scala native会提供一个编译器和一个轻量级的受管的运行时,看起来类似Golang,编译的程序会自带这个轻量级的运行时,负责垃圾回收。详细的内容在5月11号就可以知道了,估计到时Scala native网站也会进行更新。

如果这一切成真,这将会给Scala带来非同一般的功能,本地代码意味着我们不必依赖JVM,可以很容易地发布到docker中,更快更小,将会吸引更多的程序员的眼球。

但是,也有一些值得观察的因素, 如果脱离JVM,是否还能使用Java的丰富的类库,还是自己提供一个?编译的性能如何?JVM的垃圾回收器历经多年,进行了非常非常仔细的优化,如果Scala native自带运行时的化,能否做好垃圾回收功能?