Ceylon

提供: miniwiki
移動先:案内検索
Ceylon
拡張子 .ceylon
パラダイム オブジェクト指向
登場時期 2011年
設計者 ガビン・キング、レッドハット
最新リリース 1.3.3/ 2017年8月21日(6年前) (2017-08-21
型付け 強い静的型付け
影響を受けた言語 JavaScalaSmalltalk
ウェブサイト ceylon-lang.org
テンプレートを表示

Ceylon(セイロン)は、レッドハット社によって開発されたプログラミング言語およびソフトウェア開発キットである。この言語はJava言語をもとに作られ、Java仮想マシンおよびJavaScript実行環境上で動作するものである[1][2]

この言語とソフトウェア開発キットのプロジェクトは、Java言語とJava SEソフトウェア開発キットで見られた成功と失敗を踏まえた上で、もし今それらが設計されたとしたら、商用コンピューティング向けの言語と開発キットがどんなものになっていたかを示すものであると言える。また、レッドハット自身は否定しているものの、業界のアナリストからは同プロジェクトはJavaを抹殺するためのものだと言われている[3][4]

言語の特徴

Ceylon言語はJava言語の構文のほとんど全てを受け継いでいる。下記は Hello World プログラムのCeylon言語版である[5]

void hello() {
   writeLine("Hello World!");
}

演算子の多重定義

Ceylon言語では、プログラミング言語で一般的に混乱の原因とみなされている演算子の多重定義の仕組みを提供していない。その代わりCeylon言語には、組み込み型のメソッドの省略形であるような演算子については多相性を利用できる仕組みがある。これは演算子の多重定義よりも安全で簡素な仕組みである。

インターフェース

インターフェースは、構成要素の定義のみがあって実装が含まれていないデータ構造である。異なる実装をもつ異なるデータ型に含まれる構成要素を定義するのに便利である。全てのインターフェースは暗黙に抽象データ型になっている。

インターフェースは予約語 satisfies を使ってクラスとして実装する。satisfies の後ろに、複数のインターフェースをカンマで区切って書けば、複数のインターフェースを一つのクラスで実装することができる。Ceylon言語のインターフェースでは、要素の定義だけでなく、一定の制限を満たすものであれば実装コードも記述することができる。インターフェースにはデータを初期化するコードを含めることはできないが、ミクスインであれば複数含めることができる。

shared interface Comparable<in T> {
   shared formal Comparison compare(T other);

   shared Boolean largerThan(T other) {
      return compare(other)==larger;
   }

   shared Boolean smallerThan(T other) {
      return compare(other)==smaller;
   }
   ...
}

継承

Ceylon言語のクラスは、Java言語のそれと同様、最大でひとつのクラスから実装を継承することができる。継承は予約語 extends を使って宣言する。予約語 this を使えば、そのクラス自身を指定することもできる。

抽象クラスとは、実装の雛形としてのみ使うことができるクラスである。抽象クラスのインスタンスを作成することはできない。抽象クラスだけが抽象メソッドを持つことが許されている。抽象メソッドには、どんな実装コードをも与えることは出来ないため、そのメソッドは抽象クラスでないサブクラスによって上書きされなければならない。

リリース

  • 2011年12月20日、コンパイラの公開。
  • 2013年11月12日、初のプロダクションリリースとなる1.0.0を公開。[2]

出典

  1. 2011/04/13/red_hat_unveils_project_ceylon Project Ceylon – Red Hat builds Java replacement”. The Register (2011年4月13日). . 2011閲覧.
  2. 2.0 2.1 米Red Hat、新言語「Ceylon 1.0」発表、初のプロダクションリリースに”. OSDN (2013年11月15日). . 2013閲覧.
  3. ガビン・キング (2011年4月13日). “Ceylon”. . 2011閲覧.
  4. Ceylon JVM Language”. infoq.com (2011年4月13日). . 2011閲覧. “First, I never billed this as a Java Killer or the next generation of the Java language. Not my words. Ceylon isn't Java, it's a new language that's deeply influenced by Java, designed by people who are unapologetic fans of Java. Java's not dying anytime soon, so nothing's killing it.
  5. ガビン・キング (2011年4月27日). “Introduction to Ceylon Part 1”. . 2011閲覧.

外部リンク

テンプレート:Java