Fantom (プログラミング言語)
| Fantom | |
|---|---|
| パラダイム | マルチパラダイム |
| 登場時期 | 2007年 |
| 開発者 | Brian Frank, Andy Frank |
| 最新リリース | 1.0.51 / 2010年02月6日 |
| 型付け | 静的型付け, 動的型付け |
| 影響を受けた言語 | C#, Java, Scala, Ruby, Erlang |
| ウェブサイト | www.fantom.org |
Fantom は汎用のオブジェクト指向言語で、そのプログラムはJava仮想マシン、Microsoft .NET 共通言語ランタイム、JavaScript 処理系で動作します。Fantom言語はクロージャーによって関数型プログラミングをサポートし、アクターモデルによって並行コンピューティングをサポートしています。Fantom言語の型システムは静的型付けと動的型付けの両方の特徴を兼ね備えています。構文はC#言語やJava言語と似た中括弧を使うものになっています。
目次 |
型システム [編集]
Fantom言語の型システムは簡素に設計されています。全ての変数は、C#言語やJava言語と同様に、静的に型付けされています。複雑さを避けるため、Fantom言語では汎用プログラミング機構は採用されていません。その代わり、汎用のデータ型が組み込まれています (List、Map、Func)。また、Fantom言語には、動的なメソッド呼び出しの仕組みと、自動的な型キャストの仕組みがあるため、動的片付けの言語のような雰囲気のプログラムができます。Fantom言語には使いやすいリフレクションのAPIがあり、メタプログラミングも可能です。
ポッド [編集]
Fantom言語では、開発の単位を「ポッド」と呼びます。ポッドは名前空間やパッケージやモジュールなどと同じものです。個々のポッドは「~.pod」のファイルに保存します。このファイルは、「FCode」と呼ばれるFantomのバイトコードや、関連する文書のファイルや、プログラムの実行に必要なファイルが、ZIP形式でまとめられたものです。ポッドには、他のライブラリーやアプリケーションで使われるデータ型の定義をいくつでも含めることができます。データ型の名前はそれが含まれるポッドの名前によって完全修飾されます。例えば、「fwt::Widget」という型は「webapp::Widget」という型とは異なるものとして区別されます。また、ポッドに「Main」という名前の型が含まれていれば、「fan <podName>」というコマンドでそれを実行することができます。
Fantom Widget Toolkit [編集]
Fantom言語の処理系には、「Fantom Widget Toolkit」(または、「FWT」)と呼ばれる標準のウィジェット・ツールキットが同梱されています。FWTはいくつかのプラットホームで使えるように設計されています。現在のところ、FWTの実装としては、Java仮想マシンで動作するSWT用のものとJavaScript処理系で動作するcanvas用のものと、JavaFX用のものがあり、ウェブブラウザーでもFWTのアプリケーションを使うことができます。また、Microsoft .NET 共通言語ランタイムで動作する Windows Forms 用の実装を作成する計画もあります。
例 [編集]
Fantom言語による Hello, World! プログラムはこうなります。[1]
class Hello { static Void main() { echo("Hello, World!") } }
言語の名前 [編集]
この言語はもともと「Fan」という名前でした。それは、この言語の作者が住んでいる米国バージニア州リッチモンドの住所にちなんでつけられたものでした。しかし、その後、この言語の知名度が上がるに伴い、この言語のコミュニティーのメンバーたちが、この言語の名前のSEO対策について問題視するようになりました。そして、2009年9月に、この言語の名前は公式に「Fan」から「Fantom」へと変更されました。[2]
関連項目 [編集]
脚注 [編集]
外部リンク [編集]
- Fantom言語 公式ウェブサイト
- Why Fantom
- 「Re: Fan Programming Language」 (jvm-languages@googlegroups.com メーリングリスト)
- 「Not a Fan of Scala? An Evolutionary Approach | Ajaxonomy」
- 「The Fan Programming Language | Javalobby」