Eiffelのコンパイラや開発環境

# はじめに
この文章の内容は、筆者が所属している会社・団体とは一切関わりがありません。いわゆる「自主的な研究の成果の発表」というものです。

10年近く以前に自分のページに書いていたものを引っ張り出してきたら、「（そちらに）よくまとまっています」とか書いていたまとめサイトへのリンクも含めてリンクがほぼ壊滅でした。なので、ここでEiffelのコンパイラや開発環境についてまとめておくと（劣化版）車輪の再発明以上の意味があるかな、と。でも、当時から

> 私は主に Mac OS X 上で SmartEiffel を使っているので、 それ以外の環境に関する記述は正確でないかもしれません

（Mac OS X上？SmartEiffel？あぁ、そんな時代もあったね、と）とか

> 内容が少し古かったり、リンク先がなかったりしますが

とか書いてあったりして、それが元ネタだったりしますから、変な期待はしないでください。

あと、ここに書いてあるのは（有料、無料に関係なく）「Eiffelのコンパイラや開発環境」であって、言語としてのEiffelの話ではありません。言語としてのEiffelに興味関心のある方は、バートランド・メイヤーさん（Eiffelの設計者です）が書いたObject-Oriented Software Construction（ただし、第2版ね）[^OOSC]を読みましょう。日本語版も出ていますよ。

- [オブジェクト指向入門 第2版 原則・コンセプト](https://www.shoeisha.co.jp/book/detail/9784798111117) 
- [オブジェクト指向入門 第2版 方法論・実践](https://www.shoeisha.co.jp/book/detail/9784798111124)

最後に。Qiitaに書いているのですから、こんなおことわりは不要と思いますが、エッフェル塔とは関係ないですよ。

# 現役

## Liberty Eiffel
https://www.liberty-eiffel.org/

2.3以降更新されなくなってしまった[SmartEiffel](#smarteiffel)から派生する形で作られたものです。SmartEiffel同様こちらも「GNU の Eiffel コンパイラ」を名乗っていますが、より GNUと親しい印象です。最新（公開）版はBellですが、公開されたのは結構以前だと思います。なので、本当の意味での最新版を使うのであれば、gitで本家から取得してください。多くのOSで動きます。 

GNUとか言っているわけですから、当然オープンソースなわけで無料で利用できます。

LibertyEiffel派。（たぶん一人派閥。）

## EiffelStudio
https://account.eiffel.com/

Eiffelの本家Eiffel Software Inc.(ESI)の統合開発環境です。25.02が最新です。このバージョンの書き方は2025年の2月に公開という意味でしょうから、本当に最近ですね。FreeBSDでは（かなり以前のバージョンのものではありますが）packageになっているので、とりあえず使ってみるにはこれが一番楽かもしれません。 

いろいろな条件を満たせば、無料で使える可能性もあるようですが、基本は購入ということになりそうです。

ISE Eiffel派。（ISEというのはESIの以前の名前と考えておいて良いかと（厳密には正しくないですが））

## Gobo Eiffel Compiler
http://www.gobosoft.com/eiffel/gobo/gec/index.html

私がEiffelのことを気にしていた当時（ン十年前？）は、Goboと言えばライブラリだった気がするのですが、ライブラリだけでなくコンパイラまで手を広げたようです。（だから、このコンパイラはライブラリ付属のユーティリティとして配布されている、のかな）2022年の1月に最新版が公開されているようです。

ISE Eiffel互換のオープンソースと言っていますから、無料で利用できます。

当然、ISE Eiffel派。


# お隠れになった皆さん
ここに書いてあるものの多くについて当時のURLを知ってはいますけど、歴史的意味しかありませんので、書きません。猫のような好奇心をお持ちの方はググるかWayback Machineか、、、
あと、動作環境のOSとかが凄いものになっているのは、以前の記述を（ほぼ）そのまま持ってきているからです。ぜひ郷愁に浸ってください。

## SmartEiffel
フランスの大学（正確には研究所でしょうか）で開発されていたGNUのEiffelコンパイラです。最新版は2.3です。2007年の7月に更新されています。(そしてその後更新されていません。) 多くのOSで動きます。 

もちろんオープンソースで、以前はFreeBSDでもpackageになっていました。

LibertyEiffel派。（逆です。こちらが元祖）

## SmallEiffel
[SmartEiffel](#smarteiffel)の以前の名前ですね。


## Visual Eiffel
Object Toolsという会社の統合開発環境です。 最新版は 5.0b (Build 2508) です。2004年の11月に更新されています。 Windows95/98/NT と Linux で動きます。 (Linux の方は、統合開発環境ではなく、コマンドラインコンパイラのようです。) 5.0 からはオープンソースになりました。MacOSX でも動くかも知れません。

が、そもそもObject Toolsという会社がすでにEiffelには関わっていないはずです。

## Eiffel for OS X (lite license)
Object ToolsのMac OS X 用の Eiffel コンパイラのようです。 XCode2.x 用と XCode1.5 用、CodeWarrior 用の三種類があります。 2003年の2月に更新されています。 

が、そもそもObject（以下同文）

## Eiffel for OS X
上の[lite license](#eiffel-for-os-x-lite-license)と同じです。 購入するとコンパイルできるクラスの数の制限が外れるそうです。 

たぶん、無料版がlite licenseで、商品がこちら、と。

## Eiffel/S
Object Toolsのコンパイラだと思います。以前はFreeBSDでもpackageになっていました。インストールしてhello worldなプログラムをコンパイルした記憶があります。（「だから何だ？」と言われそうですけど。）

## tecomp
https://sourceforge.net/projects/tecomp/

これ、何なのでしょうか。Wikipediaに載っていたので書きましたが、今まで知りませんでした。

> The tecomp project is no longer under active development. Successor project: http://albatross-lang.sourceforge.net

とあるので、お隠れなのは間違いないでしょう。それにSourceForgeですし。

## TowerEiffel
Tower Technologyという会社が作っていたものです。が、Tower Technologyはかなり早い時点でEiffelから撤退していて、さらにその後倒産しています。

> Unfortunately, due to the financial climate of the past year, Tower closed its doors at the end of 2002. All efforts to find a way to resume operations have failed. 

と自社のページに書いてありましたので、2002年の12月に倒産したのでしょう。

## HalstenbachのEiffel
ISE Eiffelに機能追加をして販売していたようです。が、今となっては正確な名前すら不明です。Halstenbachという会社自体は存続しているようです。（Halstenbachというのは人名なのでしょうか、Halstenbach単独で検索すると違うものが表示されますね。Halstenbach ACTで検索するといいみたいです。ACT=応用コンピューター技術かな。）

# 覚書
## 「派閥」
各コンパイラ/開発環境のところに「LibertyEiffel派」とか「ISE Eiffel派」とか書いているのは、Eiffelの方言のことです。なので、Gobo Eiffel CompilerでコンパイルできたソースコードをEiffelStudioに持って行ってもそのままコンパイルできるでしょうが、Liberty Eiffelに持って行ったら、そのままはコンパイルできません。逆もまた真です。（キリッ、と言い切ってますけど、どれも確かめたことはありません。）

まあ、Eiffelの本家ESIが作っているのがEiffelStudioで、EiffelStudioは「ISE Eiffel派」なのですから、「ISE Eiffel派」が東京弁、「LibertyEiffel派」はうちなーぐちでしょうか。ECMA-367、ISO/IEC 25436という標準語に相当するものがあるのですけどねぇ。

それに、SmallEiffel-SmartEiffel-Liberty Eiffelが一つの系統だと言っても、SmallEiffel向けに書いたプログラムがそのままLiberty Eiffelでコンパイルできるとは限りません。むしろそれなりの規模のプログラムならどこかで必ずコンパイラに怒られるのではないでしょうか。（はい、経験談です。）Eiffelには言語としてそういうところを指摘してくれる機能があるので、なぜ怒られているのか分からない、ということにはならないのですが。むしろ、自分のン十年前のコードですから、そちらをまともにする方が大変です。（「中二病」とか「黒歴史」という言葉が身にしみて分かりました:sweat_smile:）

## 雑感
書き始める前から覚悟はしていましたが、[FreeBSDの子供たち](https://qiita.com/koizumistr/items/df889946778fd2d5351a)以上に香ばしい感じ（真っ黒焦げ？）になりました。

あと、[Qiitaの言語別記事数･フォロワー数ランキングをシェル芸で作る](https://qiita.com/eggplants/items/b3d11f864298ab50f32a)によれば、Eiffelは「タグはあるが記事もフォロワーもいない言語」（2020年03月14日当時）だそうです。もしかして、この記事でEiffelタグ一番乗りでしょうか。（でも、3年近く前のデータなので、先人がいるかも。）

[^OOSC]: Eiffelについて知るだけでなく、タイトルの通りオブジェクト指向を勉強するのにも良い本だと思います。が、（日本語訳が2分冊になることから察しはつくでしょうが、枕としても高めなくらい）厚いです。