今回は『Gradle徹底入門』(Gradle=グレイドルと読みます)というOSS(Open Source Software)の新しいビルドツールの企画を担当しました。
プログラミングの入門者/初級者には馴染みがないかもしれませんが、「ビルドツール」は本格的にソフトウェア開発をしている人には身近なものです。開発のまとめ役を果たす人であればビルドツールについての知識も必ず持っていることでしょう。
ソフトウェアの開発は一般的にソースコードを書くだけではすみません。「コンパイルする」「テストする」「必要なファイルをまとめる」などの工程がありますが、これらをまとめて定義して自動実行してくれるのがビルドツールです。
ビルドツールの歴史は古く、Make(メイク)やAnt(アント)などが有名でしたが、2004年ごろに業界にMaven(メイブン)という革命児が現れました。Mavenはプラグインで機能を拡張でき、ライブラリ管理の仕組みも備え、バージョン管理システムとの連携も可能というたいへん斬新なツールでした。
でも、「設定ファイルがXMLで書きにくい」とか「ファイルやフォルダの配置が決まっているので、既存プロジェクトに適用しにくい」など、使い勝手の悪さも指摘されていました。そこで、Mavenの良い点を継承しながらも洗練させ、さらに現場への柔軟な適用を考えて開発されたのが今回の「Gradle」です。
Gradleでは設定ファイルをGroovy(グルービー)というスクリプト言語で書きます。プログラミングと同じ要領で定義ができ、ファイル構成なども柔軟に変更できるようになりました。また、Gradleラッパー(wrap:「包み込む」という意味です)機能を使うとGradleを自動でダウンロード/実行してくれるので、末端の開発者にGradleを意識させません。Javaプラグインなどの充実した拡張機能もあり、現場で使うことをとことん意識したものになっています。
最近、GradleはJava系、特にAndroid系の開発で盛んに使われだしました(本書でもAndroid開発に関して1章を割いています)。多くのプロジェクトが公式ビルドツールとしてGradleの採用を発表しているほか、Gradleを前提にしたGoogle公式の開発ツールAndroid Studioも登場しています。今後もGradleを採用するプロジェクトがどんどん増えてくるでしょう。国内でもセミナーや勉強会が開かれるなど、Gradleを学ぼうという盛り上がりを感じています。
編集としては、当初「Gradleを使うためにGroovyを覚えるのは大変なのでは?」と思っていたのですが、Gradleの定義の記法はパターン化していますし、Groovy自体Javaを元にした言語なので習得は難しくありません(ついでに言えば、Groovyの簡単な解説とリファレンスも用意してあります)。また、AntやMavenからすんなりGradleに移行するための方法も紹介されています。
ソフト開発を学ぶにはMakeやAntなどの定番ツールの知識も必要ですが、一足飛びに最新のビルドツールを学べば、現在のソフトウェア開発のいろいろな最新事情が得られることでしょう。Gradleの新しい部分/面白い部分を学んで、この機会に「ビルドもいけるエンジニア」をアピールしてもらえればと思います。
いしかわ