電子立国日本の自叙伝は本当に素晴らしい

子供の学校の古本市をちらちらみていたら、電子立国日本の自叙伝が全巻セットでたった1$で売られていたので、買ってきました。

NHK 電子立国日本の自叙伝〈上〉

NHK 電子立国日本の自叙伝〈上〉

僕はソフトウェアの人なのですが、中学校の頃ちょっとだけ電子工作をやっていたこともあって半導体の話は少しはわかるし、何よりもここに登場する技術者達の生き様があまりに格好良くて、毎晩深夜になるまで読みふけっています。DVD全巻セットも2万円くらいで買えるみたいなので、買おうか悩んでいるところです。プロジェクトXも嫌いではないけれど、ちょっとドラマ仕立てが過ぎることもなくはありません。その点、この本は本当に素晴らしい。

あまりに素晴らしいので、Sunも潰れたことだし、誰かJavaの世界の興亡もこうした本にまとめてくれないかな...と思ったので早速インターネットで探してみたら、


なんと!


ありました!


民明書房刊、タイトルは「Java、その歩み」。著者は不詳で、中古本で第3巻だけをかろうじて入手できました。一部を紹介します。

■第三章 Maven誕生秘話

Mavenの生みの親であるジェイソン・バン・ジルさんをMountain Viewに訪ねた。ジェイソンさんは眼光鋭いカナダ人である。今はMavenの直接の開発からは離れているそうだが、Mavenの事になると鋭い眼光を一層鋭くして語ってくれた。


ーどうしてMavenを作ろうと思ったのですか?
ジェイソン「当時はAnt全盛の時代でしてね。私がその頃コンサルタントとして派遣されていた仕事先でもみんなAntを使ってビルドスクリプトを書いていたんです。これからはMakefileはオワコンだ、ってな調子でね(笑)。ところが、多くの班に別れて作業しているような環境では思ったより効率があがらないように私には思えたんです。」


ー効率があがらない?
ジェイソン「そう。何しろ大きなプログラムを開発していたんでね、そう、300人位はいたかな。だから、両手でも数えきれない位の班が、それぞれの部分を開発していたんです。そうすると、みんながてんでバラバラにビルドスクリプトを書くでしょう。そうすると、同じようなことをしているのにあっという間に全然違うスクリプトができちゃう。


ー1人の人が書くんじゃないですか?
ジェイソン「とても一人じゃ書ききれないですよ、何千行もあるんだし、ビルドスクリプト専属なんてやりたがる人もいなくてね。私も直したことあるけど、良くわからないから適当に誤魔化したりとかね。だから、ビルドスクリプトの部品を共通化してみんなで使ったらいいんじゃないか、って思ったんです。そうすれば、それぞれの班が同じようなことを繰り返さずに済むし、どの班も同じ手順でビルドできたら人を融通しあうのも簡単になるでしょう。だから、最初はそういうところからスタートしたんです。今ではAnt自体にもマクロといって共通部分を部品化する仕組みがありますけどね、私のほうが3年は早かったね。


ー周りの人の反応はどうでしたか?
ジェイソン「最初は私の班と隣りの班のから始めたんです。隣の班の人は私がビルドスクリプトを手伝うといったら鴨がネギしょって来たと思ったみたいでね(笑)、喜んでやらしてくれましたよ。2つの班の共通部分を括り出して行ってね。最初は大変だったけど、2つやったら後はドミノ倒しみたいなもんでうまくいきました。実際にやってみると、うまく部品化するためには班に固有の部分を記述するための方法が必要だとわかってきて、それをPOMと呼ぶことにしました。


ーそれがあの有名なpom.xmlになったんですね
ジェイソン「それはMaven2だからもっと後の話でね。当時はproject.xmlっていう名前だったんですよ。


そういって立ち上がると、ジェイソンさんは引き出しの中を開けてDVDディスクを探し始めた。しばらくして奥のほうから出てきたディスクの中に、当時のプロジェクトが入っていた。

Mavenのところを読んでいたらAntのところも気になったのでちょっとページをめくって見ました。

ーAntは最近は使う人も減ってきているみたいですね
ジェシー「そういう見方もあるとは思います。確かに、antのビルドスクリプトを目にすることは減っていますし、これからもその傾向は続くでしょう。少し寂しい気持ちもないではありません。ですが、目には直接見えないところでantは今もたくさん使われていますよ。例えばGradleというツールをご存知ですか?新しいビルドツールなんですが、これも実際の仕事をしているのはAntですよ。Jenkinsというツールでも使われているし、JSPコンパイルだってAntを使っているやつがたくさんあるのです。


ー縁の下の力持ちですね
ジェシー「ソフトウェアのビルドにはファイル操作やプロセス操作など、色々OSに依存する処理が必要になります。ですが、Javaは伝統的にそういう処理が嫌いでライブラリを提供していないのです。そのために、AntにはコアのJavaライブラリではできない機能が沢山書かれることになりました。こうしたコードは簡単に置き換えがきかないので、最先端のビルドツールもAntに頼る、というわけなんです。Antを馬鹿にしている人に限って、そういうことに気付いていないんですよ。


ジェシーさんの話しの端々から、彼がAntのことをとても誇りに思っているということが伝わってきた。

ね、面白そうでしょ。全部で何巻あるのか、他の言語のもあるのか、全くわかりませんが、他の巻を書いた人は見つけた人はぜひ教えてください。








(念の為、この本はフィクションで、実在の人物とは何ら関係がありません。)