Visual Studioに代表される便利な統合開発環境(IDE:Integrated Development Environment)のおかげで,アプリケーション開発は効率化された。その余力は,デザインやユーザー・インタフェースの充実に回され,ユーザーの利便性に還元されるのが理想である(あくまで『理想』ね)。

 が,便利になった半面,OSやハードウエアのことを詳しく知らないままプログラミングに携わる人も増えている。そんなわけで今回は,プログラム生成の裏方さんについて調査した。

便利になると見えなくなるもの

 世の中,便利になったものだ。パソコンの前で項目を選んでクリックしていけば,2~3日後には商品が手元に届く。Web通販である。分厚いカタログのページをめくる手間も,郵便局や銀行に振り込み用紙を持っていく必要もない。僕もよく利用している。

 数年前,Web通販の便利さを「おうちにいながら買い物ができるんだよー」とアピールしていた人がいた。それは確かにその通りなのだが,なんだかネットの世界だけですべてのことが済んでしまうようなイメージで違和感を覚えたものだった。現実は違う。

 あなたが画面をクリックしたら,その裏側で注文の受け付けや伝票発行の仕事が発生し,生身の担当者がキーボードをたたいたりプリンタを操作したり,さらに倉庫では商品を運んでこん包したり,段ボール箱に宛名ラベルを貼り付けたり…。そしてそれを宅配便のドライバーが受け取り,深夜の高速道路を走り,汗を流してマンションの階段を駆け上り…。そんなこんなで,商品はやっとあなたの手元に届くのだ。

 Web通販の世界では,本当はあなたが電車に乗って買い物に出かけ,財布の中から代金を払って商品を受け取り,バッグを提げて家に帰る…という労働の大部分を,誰かほかの人が肩代わりしているに過ぎない。全体的な「物の流れ」は何ら変わっていないのである。

IDEの便利さの裏にも複雑な処理がある

 コンピュータの世界も同じこと。プログラミングは随分便利になったけれど,裏側では複雑な処理が行われている。昔は見えていた複雑なメカニズムが,今では見ずに済むものになっただけのことだ。

 パソコン用のプログラミング・ツールといえば,Visual Studioに代表されるIDEが当たり前だが,Windowsが登場する以前…いや,Windowsが登場してからもしばらくの間は,

 テキスト・エディタでソースを入力
 → コンパイラでコンパイル
 → バグがあったらデバッガで調査
 → んでもってテキスト・エディタでソースを修正
 → コンパイルに戻る

──というスタイルが普通だった。

 テキスト・エディタ,コンパイラ,デバッガなど個別のツールを組み合わせて作業していたのだ*1。エディタ,コンパイラ,その他必要なツールを一つにまとめたIDEというソフトウエアは,ボーランドが発売したDOS版のTurboシリーズ(Turbo Pascal,Turbo Cなど)が火付け役となって知られるようになり,その後,Windows3.1の時代に登場したBorland C++を経て,マイクロソフトのVisual Basicでほぼそのスタイルが固定化された。

 IDEでは,ソースを入力してメニューの「ビルド(build)」を選択すれば,あっという間に実行形式ファイル(Windowsでは .exeファイル)ができあがる。が,実はこの工程は複数の処理の連続であり,内部ではそれぞれ複雑なことが行われている。

 IDEになじんでしまうと,そのあたりのことを忘れてしまいがちだ。Web通販と同じで,自分が楽になったぶん,誰かが負担を肩代わりしている。それがコンピュータだったり宅配便のドライバーだったりするわけだが,結局,全体の負荷は変わっていないのだ。

 だから,受注担当者や宅配便のドライバーの汗に思いをめぐらせるのと同じくらい,IDEのビルド処理の裏側にある仕事にも思いをめぐらせたっていいじゃないか。というわけで,今回の調査対象である「コンパイルとリンクとビルド」は,まさに開発作業の裏方仕事なのである。