ビルド言語
2004年1月17日
Bruce Eckelの最近の投稿をきっかけに、ビルド言語についての考えを共有しようと思い立った。antとmakeはどちらも、ビルドが行われる方法を指定する。ビルドを記述するための言語である。どちらも広く使用され、成功を収めている。しかし、どちらにも限界があり、大規模なシステムでは、ant/makeファイルを他のプログラムから生成する人がよく見られる。
理由については、ブルースの意見に同意するようだ。単純なビルドは、一連のタスクと依存関係として表現するのが容易である。そのようなビルドでは、ant/makeの機能がうまく機能する。しかし、より複雑なビルドには条件ロジックが必要であり、それにはより一般的なプログラミング言語の構成が必要となる。ここで、ant/makeは機能しなくなる。
Antは、XMLをファイル形式として使用するという決定を下した。当時、それは良い選択だと思った。初期の頃は、Matt Foemmelと大規模なプロジェクトに取り組んでおり、彼はantに似たシステムを構築した(当時はantはなく、必要だった)。彼はまた言語としてXMLを選択した。XMLは階層データを記述する妥当な方法であり、階層はビルドスクリプトの要求に合うように思えたので、私たちにとっては理にかなっていた。それ以来、私たちはどちらも、プログラミング言語の方がより適切な方法であり、それは良いUseOfXmlではないという結論に達した。
私はRubyでかなりのプログラミングを行っているので、自然とRakeで遊び始めた。rakeファイルの面白い点は、タスクと依存関係を宣言するためのいくつかの規則とサポートを備えた通常のrubyプログラムであることだ。私は小さなタスクしか扱っていないので、これまでのところとても使いやすいと感じている。それは本格的なプログラミング言語なので、大規模なビルドにもうまく機能すると期待している。ループやサブルーチン、ビルドファイルでのリストコレクションなどの操作に便利であることがすでにわかっている。