kagamihogeの日記

kagamihogeの日記です。

webプログラマーのカルチャーショック

Javaの宣伝文句の一つに「write once, run anywhere」があります。「write once, run once」なんて皮肉られることもあるので、完全にはうまくいってません。が、今私がいる環境からすると「write once, run anywhere」はかなり高いレベルで実現されてるように思えます。

組み込みプログラムというヤツは何かしら現実に存在する製品に乗っかります。今私がいるところは、同じ製品でもビミョーにバージョンやら何やらが違う製品がたくさんあり、その製品ごとにビミョーにソースコードが違います。異なる部分というのはおおよそ機種依存ってヤツで、本質的に何かしら動作が変わるってことはあまりないみたいです。

使うソースが違うだけならまだしも、使用するOS、コンパイラやリンカのバージョンやオプション、リンクするライブラリetc etc・・・とにかく色んな要素が違ってくるので、一筋縄では動作はおろかビルドもできません。

その辺を上手く扱うために、makefileというビルドツールがあり、さらにmakefileを生成するimakeというツールがあるんですが・・・このファイルが超巨大。ちょっと見ただけじゃ、ナニがどうなってmakefileが出来てそれがどんなビルドしてどんなファイル生成するのかサッパリわかりません。

makefileのメンテナンス要員が専門にいるというのにビビりましたが、さもありなんです。imake環境がソースコード以上に複雑なので・・・。

Javaの場合VMのバージョンはともかくとして、機種とかOSの違いをシビアに気にしなければならないことはほとんどない。

まーなんつーか・・・知らない世界というのは苦労も多いんですが、それよりも驚きでいっぱいですよ。