今週初め、Ceylon IDEの最初のマイルストーンがリリースされた。これは、昨年の12月に初めてリリースされたプログラミング言語Ceylon用のIDEだ。
CeylonはJVMベースの言語である。主要なスポンサーはRed Hatで、Gavin King氏を筆頭に開発が進められている(Gavin氏は、有名なHibernateフレームワークにも関わっている)。この言語は去年の4月にQCon北京で発表され、Gavin氏へのインタビューで詳細が明らかになった。
Ceylonの最初のマイルストーンでは、コンパイラがリリースされた(公式の言語仕様はこのページを参照)。CeylonのコードはJVM上で実行可能なバイトコードにコンパイルされる。Ceylonのロードマップでは、ファーストリリースでサポートされている機能の概要を確認できる。第2のマイルストーンでは、Javaとの相互運用に焦点が当てられている。
他の多くのJVMベースのプログラミング言語とは異なり、Ceylonはデフォルトで不変(イミュータブル)であることを目指している。変数の代入が必要であれば、値が変更される可能性があることを表すvariable
キーワードが必要である。加えて、変数への代入時には:=
を使う(=
を使った値の代入と区別するため)。その目的は、不変(イミュータブル)なものと可変(ミュータブル)なものをよりはっきりと区別することだ。初めてこの言語を使う人にとって混乱がないように、キーワードにはシンボルではなく単語が使われているが、Javaとはキーワードが異なっており、例えばCeylonではimplements
の代わりにsatisfies
が使われる。
Scalaと同様、Ceylonはnullを許容するOption型(Maybeとしても知られている)を提供する。この型は略語T?
を使って表す。一方、型T
はnullでない値を格納することを表す(これはタイプチェッカーが値がnullでないことを保証するのに使われる。これはJavaがかかえている問題であり、@NotNullable
や@Nullable
アノテーションで解決され始めている。null
の導入は、Tony Hoare氏の10億ドルの過ちで語られているnull
の存在をもたらした)。
今日では、対応するIDEなしで完結するような新言語は存在しない。最近リリースされたScala IDEのように、CeylonもEclipseのプラグインとしてCeylon IDEを持つことになった。Ceylon IDEはビルトインコンパイラを備えているが、EclipseでコンパイルしたコードをスタンドアロンのCeylonコンパイラ/ランタイムで実行することもできる(逆もまた然り)。
IDEドキュメントのページで機能の一覧を確認することができ、多くのスクリーンショットも見ることができる。Ceylon IDEには、追加のツールをインストールすることなく、通常実行もデバッグ実行も行うことができる環境が備わっている。Ceylon特有のリファクタリングやクイックフィックスといったCeylon用の機能の他、多くの標準機能(TODOやアウトライン表示)も利用可能だ。
Ceylon IDEはEclipseプラグインなので、EGitやSubclipse、Subversiveといった既存のツールを利用することができる。一方コードをCeylonのツールセットでコンパイルすることはできるが、AntやMavenといった既存のビルドシステム用のプラグインはまだ使うことができない。
Ceylon IDEのコードはGitHubのCeylonプロジェクトで公開されており、ビルド済みモジュールをダウンロードページからダウンロードすることもできる。
これでCeylonとCeylon用のIDEがリリースされたわけだが、あなたはこれらについてどのように考えているだろうか?