「Scala 2.11」リリース、コンパイラの性能強化などが行われる
プログラミング言語Scala開発チームは4月21日、最新版となる「Scala 2.11.0」をリリースした。小型化、高速化、安定性の強化の3つにフォーカスして開発したもので、Java 8の実験的サポートも追加されている。
Scalaはオブジェクト指向言語と関数型言語の両方の特徴を備えるプログラミング言語で、Scalaで実装されたコードはJava仮想マシン上で動作する。バイトコードレベルでJavaと互換性があり、Javaと組み合わせて利用することが可能。パターンマッチ、並列コレクションなどの特徴を持つ。
Scala 2.11.0は2013年1月に公開されたバージョン2.10に続くリリースとなり、600以上のバグを修正した。Java 6をターゲットとし、Java 8は実験的サポートとなる。
コンパイラの性能強化が行われており、インクリメンタルコンパイルに新スキーマを導入した。精度を維持しつつ、性能を大きく改善できるという。パッチコンパイルの性能やランタイムリフレクションなども強化した。
コード生成の高速化も図られており、新しいバイトコードエミッター「GenBCode」を実験的に導入した。GenBCodeはまだオプティマイザにはマージされておらず、2.11の開発工期を通じて統合を進めていくという。さらに、Java 8風のクロージャでバイトコードを小さくすることで高速化を実現する新手法が実験的に実装されている。
コアScalaライブラリのモジュール化も進められ、これにより小型化や安定性の強化が進んだという。これに合わせて、公式のScalaリリースを構成するモジュールを集めることができる新アーティファクト「scala-library-all」の導入も行われた。コンパイラのモジュラー化も進められており、.NETバックエンドなどの古い技術を取り除いた。これによりScalaコンパイラのプラットフォーム化を強化するとしている。
バージョン2.11のリリースを受け、2.10系はメンテナンスモードとなる。2014年末に予定されているバージョン2.10.5のリリースのタイミングで2.10系のサポートは終了となる予定。2.10系の現在の最新版は3月に公開された2.10.4。