コンピュータのプログラムは常に成長する。できなかったことができるようになったり,困った問題が解決したりする。
本校ではNECのサーバが入っているが,以下のような問題点があった。
(1) FTPがうまく機能しない
(2) Webの画像データがちぎれてしまう
(3) 電子メールを受け取れないことがある
(4) 内蔵のCD-ROMドライブがマウントできない(使えない)
(5) X-Window関係での問題
順次パッチなどで直してもらっているが,なぜか本校だけ一筋縄ではいかなかった。
しかし,内蔵CD-ROMを認識しない状態でCD-ROM版のOSをインストールできていたのは,なぜであろうか。NECの技術力が高いのか,Xnに誰も知らない妖しい機能が付いているのだろうか。考えると夜も眠れなくなる。
コンピュータのプログラムは,まずプログラミング言語を用いて記述する。これをソースという。これは,人間が修正しやすいような形式になっている。
これを各言語のコンパイラにかけて,コンピュータが理解できる機械語に翻訳をする。
本来プログラムのミスをみつけたら,ソースを修正してコンパイルをし直すのが普通である。しかし,そうするとプログラムは丸ごと交換しないといけないわけだ。わずかの修正の場合には,めんどうくさい。
そこで,機械語に対して直接修正をかけてしまうのがパッチと呼ばれる。機械しか理解できないものを,人間が半ば想像の範疇で手探りで修正をかけるので,高度な技術を必要とする(単にものぐさな人も多用する)。
実際Windows3.0では,パッチでの修正を前提としているかのごとく,プログラムに大量の穴があいてパッチをあてやすくしていたのは,その筋では有名な事実である(さあ,バイナリの見えるビューアで覗いてみよう)。
いわゆる「現場」では,プログラムにミスがあったことを悟られないように,客にそれと気づかれないようにパッチをあててきてしまうことが,よく行われる。
客に「何をしているんですか」と尋ねられても,「ちょっとした保守」という答えでごまかせる。これをコンパイルし直したプログラムを入れ替えると,何枚ものフロッピーやテープが必要になり,必然的に目立ち,いいわけができなくなる。
ただ,パッチをあてれば完全に機能するかどうかはわからない。かえって悪化させたり,別の問題がでてきたりすることもよくある。
そうなると,上司からただパッチをあててこいと指示された新入社員は,パニックに陥って,客先で徹夜をして修正するはめになる。
もしもの時のために,鞄の中には携帯用のコンパイラがかかせないのは,このためである(何の話だ)。
社内報告書には,その客先の状態を「奇跡で動いていた期間」,「パッチでかろうじて動いていた期間」,「再パッチでようやく動き出した期間」という風に記述する。そうこうしているうちに,リース期間が終了するのである。
パッチをあてなければならないようなプログラムを出荷してしまったプログラマは,ほっと胸をなでおろす。そして,若かったころのちょっとした過ちとして,テープやフロッピーに保存して,永久に封印するのであった(私は今でも大切に持っている(^_^;))。 戻る