BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース Scala 2.8 ベータ1リリース

Scala 2.8 ベータ1リリース

原文(投稿日:2010/01/27)へのリンク

プログラミング言語Scalaの作者達は長く待たれていたScala 2.8の最初のベータをリリースした。 

2.7.7に対して大量のバグフィックスと多くの新機能を含んでいます。このベータは今後数ヶ月のうちにリリースされるはずの2.8.0最終バージョンの基礎となるものです。

(2.7.7からの)バージョン番号のわずかな増加からは、この言語に対して行われた変更の数の多さを適切に理解することはできない。残念ながら、Scala 2.8は2.7ブランチとバイナリ互換ではない。

新機能のいくつかの例は以下の通りである(包括的なリストはリリースアナウンスを参照のこと): 

再設計されたコレクションライブラリ

Scalaのコレクションライブラリは完全に再設計された。今や新しいコレクションを実装するのがより簡単になっているだけでなく、ユーザは(ほぼ後方互換であるにもかかわらず)その恩恵に気づくだろう。Daniel Sobral氏がScala-Userメーリングリストでこのことについて以下のように発言している: 

Scala 2.7は"Map"を返す"map"を"Map"からつくるのに必要な力を持ち合わせていませんでした。このようなことができるようにすることがScala 2.8における新しいコレクションライブラリの主な理由なのです。

新しいコレクションに関してはScalaウェブサイトのこのエントリでさらに知ることができる。 

名前付き引数とデフォルト引数

Scala 2.8は他にも新しく名前付き引数とデフォルト引数のような新しい言語機能を提供している。名前付き引数は呼び出されたメソッドの仮引数の名前に対して割り当てを行うものである: 

def resize(width: Int = 800, height: Int = 600) = { ... }
resize(width = 120, height = 42)

 名前付き引数とデフォルト引数は連携して動く; ある特定のパラメータをその名前を使って取り出し、それ以外のパラメータに対してはデフォルトを使うようにすることもできる: 

resize(height = 42) 

これらの新機能は他の新機能でも利用されている:ケースクラスはメソッドのパラメータの現在の値をデフォルトにするようなコピーメソッドを持つ。名前付き引数を利用してコピーされたインスタンスの値を選択的に変更することができる。これについてはScalaウェブサイトで示されている。 

改善された対話型インタープリタ

Scalaの対話型インタープリタはずっと強力になり、パッケージ、クラス、メンバのタブ補完がサポートされた。この機能はリフレクションを利用しており、Scalaコードに対してだけでなくJavaコードに対しても機能する。Arjan Blokzijl氏によるブログポストでこの新機能についてより詳細に調べられている。 

改善されたEclipseプラグイン

Scala Eclipseプラグインの新バージョンはScala 2.8とともにリリースされるだろう。JDTとの統合はぐっと改善された;新しいビルドマネージャはずっと高速により信頼できるコンパイルを実行する。Scalaプラグインの主要開発者であるMiles Sabin氏によるプレゼンテーション (PDF)では、昨年行われた作業についてのさらなる詳細が示されている。

InfoQはMiles氏と話し、IDEの現状と将来についてより知ることができた。IDEは新しいバージョンのScalaのサポートを実現してリリースされるだろうが、Scala 2.7もサポートするのか? 

IDEは現在本質的にコンパイラとつながっています ... IDEの意義に影響を与えやすい機能の全てを動かしているのはコンパイラなのです。2.8より先のリリースに対して複数のバージョンをサポートするように依存性をわずかに緩めることは可能でしょうが、残念ながらこれまでのバージョンに対しては不可能です。今のところ、2.7と2.8のそれぞれのストリームでの作業に対して別々のEclipseインスタンスを作成することをおすすめします。

最近の会議レポートでは、Scala IDEが独自のリリーススケジュールを持つことにも言及されていたが、この裏にある意図は何なのか? 

2.8ストリームでは、IDEは以前持っていたよりも、ずっと安定した基盤の上に成り立っています。今より早く先に進むことができるようにすべきですし、メインのScalaツールチェインよりもずっと頻繁にリリースするという選択肢が必要なのです。

IDEの将来に対するあなたの計画はどのようなものですか? 

私のScalaツールに対する目標は、最低限Javaと同等のものにすることです。そうなるには道のりがありますが、到達できると思います。 
2.8最終リリースとともに、IDE専用のウェブを立ち上げたいと考えています。それは、新しいサイクルでのリリースに対する主要な情報源となり、存在はしているものの少々散在しているIDEに関するドキュメントやリソースを集約し、ユーザと開発貢献者が集まる中心となるようなものです。

もちろんEclipse IDEだけが2.8をサポートしているわけではない; NetBeansIntelliJの開発も進行中である。 

Scala Days 2010

4月15-16日に、Scalaの熱心な開発者達がScalaの生誕地、スイスのローザンヌにあるEPFLに集まり、"アイデアを交換し、ビジネス関係を形成し、同時にScalaに関わる最新の実践的および理論的開発を発見する"初めてのScala Days"が行われる。

Scala 2.8ベータを手に入れ、バグや問題点を報告して"数ヶ月のうちに"準備されるはずの最終リリースに向けて、修正されるようにしよう。

この記事に星をつける

おすすめ度
スタイル

BT