Concurrent Cleanとは

Concurrent Cleanは、オランダのネイメーヘン大学で開発している、純粋な関数型言語です。

以下のような特徴が挙げられます。

  • 非正格で純粋な関数型言語(言葉の意味はこちらを見てください)
  • マルチプラットフォームで動作する(動作可能なプラットフォームは、Windows, MacOS X, Linux, Solaris)
  • 標準でGUIライブラリを備える(プラットフォーム非依存なGUIライブラリ。バックエンドでは、OSのAPIを呼び出している)
  • 非常に高速なコンパイラ(*2)
  • 標準で統合開発環境を同梱している(ただし、GUIビルダーは付属していない)
  • ネイティブコードでの実行のみ可能(インタープリタはない)

このように、非常に強力な言語であるにもかかわらず、知名度はいまいちのようで、Googleの検索結果では5,920件(OCamlが681,000件で、Haskellが2,440,000件、Javaは143,000,000件)です。当然、ユーザーサイトもほとんどなく、日本語のサイトは池田 聡さんのサイトだけのようです。(*1)

日本語の取り扱いについては、日本語化プロジェクトにて取り組んでおります。

  1. 2005年7月2日現在の状況です。ちなみに、このサイトは、日本の2つ目のユーザーサイトを目指して作られました。特に実用的なプログラミングテクニックの観点から、いろいろ掲載していこうと思います。
  2. ベンチマークはこちら。GCCと比較して、遜色ない実行速度であることが見て取れます。Javaなどは言うに及ばず、速いといわれるOCamlよりもよいパフォーマンスが出ています。

ライセンスについて

正確な情報は、公式ホームページを参照してください。ここの情報は、理解を助けるために、lethevertが個人的に情報をまとめたものであり、全く非公式なものであり、法的な効力はもっていません。

Concurrent Cleanのコンパイラ、統合開発環境、ライブラリは、LGPLと商用ライセンスのデュアルライセンスで配布されています。商用ライセンス版は、75ユーロです。(*1)(*2)

LGPLの性質上、商用利用であってもLGPLを選択することは可能です。ただし、その場合、ライブラリを静的リンクして作成したソフトウェアはLGPL(もしくはGPL)で配布しなければなりません。ライブラリを動的リンクにした場合は、作成したソフトウェアは任意のライセンスで配布できます。

ライブラリを静的リンクにした上で、LGPLとGPL以外のライセンスでソフトウェアを配布したい場合には、商用ライセンスを選択しなければなりません。つまり、クローズドソースのソフトウェアとして配布したい場合は、商用ライセンスを購入する必要があります。また、商用ライセンスの場合は、技術サポート(*3)を受けることができるそうです。

  1. LGPLの性質を考えると、もし、公式に配布しているライブラリを全く使用しなければ、コンパイラの配布元のライセンス許諾には全く関係なく、Concurrent Cleanで開発したソフトウェアを配布できるはずです。多分。
  2. もし、LGPLでライセンスされたConcurrent Cleanのコンパイラ、統合開発環境、ライブラリなどを別の人が改変した場合、その改変部分は常にLGPL(もしくはGPL)で再配布されなければならず、商用ライセンス版にマージすることは不可能です。これは、すべてのデュアルライセンスのソフトウェアに当てはまる制限です。
  3. 技術サポートがどのようなものを指すのかは、はっきりとは書かれていません。