いっちゃん
考えてみればこれが今年最初のエッセーの更新なんだよな。全体の更新としてもCGIスクリプトのY2K修正ぐらい。ともあれ、本年もこのエッセー集を、どうぞよろしくお願い致します。m(..)m
さて、西暦2000年は従来とは全く違った年明けとなった。西暦の1000の桁の数字が変わり、特にクリスチャンにとっては、キリストの降誕2000年という記念すべき年である(注1)。この誠に聖なる新年を、世界中の人々が特別な気持ちで迎えたことだろう。太平洋上の島では、「うちが一番早く2000年の初日の出が見られる!」などと張り合っていて、また別の場所でも打ち上げ花火など、大々的なイベントがあった。
そんなわけで筆者も、2000年の年越しをネット上で迎えたい、などと思っていたのだ………が、実はコンピュータはこの年越しを極めて厄介がっていたのだ。コンピュータは通常年月日をカウントして、それをファイルの更新履歴などに利用したり表示したりするのだが、ある程度旧式のコンピュータやソフトはチップなどのコストを下げるために、年号を西暦の下2桁で扱うようにしていた。ところがこのシステムが、西暦2000年を迎えるにあたり次のような問題を起こすのだ。
(1) 西暦の下2桁を格納する場合:「99年」→「00年」………100年前に戻ってしまう!
(2) 1900年からどれだけ経ったかを表示する場合:「99年」→「100年」(注2)
このせいで、世界中でコンピュータを使っている業界は誤作動に警戒しピリピリとした空気に包まれた。各業界や官公庁はコンピュータやマイコンチップのアップデート、ソフトのデバッグやテストに追われた(注3)。また事故に備えて年越しで社員を待機させ、或いは管理職を中心に自宅待機させたところもあった。メーカーのサポート電話や安全確認の電話が殺到する可能性があったので、電話会社は「おめでとうコール」やネット接続を控えるよう呼びかけた(注4)。更にここへY2Kにつけ込んだウィルスが蔓延とくれば、パニックの恐れがある。
一般市民も公共インフラなどの障害に備え様々な防災対策に走った。自治体は住民人口分の食料や非常物資を蓄え、デパートやスーパーはY2K対策と称してテントだの懐中電灯だの乾パンだのを売って「Y2K特需」の恩恵にあずかった。ここはまさに、各国で頭の良い(?)商人たちが市民を不安に駆り立て、普段買いもしないものを見事に買わせてしまった大ヒットであった。
で、実際に年を越してY2Kはどうだったか?筆者も紅白の後にNHKをつけて年を越し、ニュースに釘付けになり、小渕首相の「安全宣言」を心待ちにしたが、特にこれといって大きな事故はなかった。やれやれ。
ところが、後になってバグがボロボロと発生した。住民票に登録されている赤ちゃんが76歳に、その父親が2歳、母親が3歳とされた。イタリアではレンタルビデオが延滞100年となって、豪邸が1件買えるような額を請求される人が出るところだった。また大事故ではないけど、福島県にある原発の管理用コンピュータが誤作動した。しっかりせぇよ東京電力。
結局、あまりこれといったトラブルもなく、めでたしめでたしといったところだった。というより、事故が起きるかもしれないと大騒ぎしたのが何だったのか?
これがY2Kの結果であった。(今年はネズミ年じゃなくてタツ年だったヨナ?)まあともあれ、事前に世界中の机の上でネズミが技術者の手を乗せてちょこちょこ駆け回ったことは確かであるが(^^;)。勢い非常物資は余り、自治体は無料で配布したりし、中には大量の廃棄物にもなった。年明けに連日乾パンを食べ続けたという話は結構聞いた(注5)。
この一連の騒動によって、コンピュータは様々な教訓を我々に残したが、それは大きく次のように分けられる。
人々はこれまで、コンピュータは決して間違いを犯さないものと過信してきた。その結果、このような不測の事態に対策が後手に回ってしまった。その過信とは裏腹に、コンピュータの実態は間違いだらけなのだ。
確かにコンピュータが間違いを犯す場合としては、物理的には演算素子の内部に電磁波のノイズが入ってビットがひっくり返ってしまう、ぐらいしかないと最初は思われてきた。というのも、元々コンピュータは現在のようにノイマン型(プログラムを格納して実行する方式)ではなく、単にハードウェアのロジックに1行の命令を打ち込んで実行するものだったのだ。こうなれば、ロジックの設計が間違っていない限りは、物理的外乱以外では絶対に誤動作することはなく、しかもハードの信頼性が向上してこの種のトラブルは大幅に減った。
ところがノイマン型の移行によりソフトウェアが作られると、このソフトウェアがそれ以前と違ったタイプの間違いを犯し始めるのだ。ソフトウェアはハードウェアよりもはるかに多種多様で、人の思考に基づいてそれぞれ組み立てられているので、人の思考のちょっとした間違いがプログラムのバグとなり、誤動作を引き起こす。それもプログラミングは間違っていないのに、設計が間違っているということも十分あるのだ。
それでY2Kの前には、コンピュータの運用者は必死にソフトのテストを繰り返し、わざと危険なXデー(注6)に設定を変更して異常がないか検証を行なった。それで念入りに行なったにもかかわらず、わずかながらY2Kによる時刻表示の異常がみられた。こんなことが分かっていたならば、なぜもっと早くから手をつけなかったのだろうか?
人々はコンピュータを設計するとき、かつてはそれが機械的に故障でもしない限り、永久に正しく使えるものと思っていた。しかしその結果、時代の変化にも目を向けず古いロジックを使い続けた。そう、実はその設計したロジックが現状に対して間違っていたままになっていたのだ。
そもそもコンピュータというものは、かつて真空管素子を使っていたものがトランジスタ、IC、LSI、VLSI、ULSIと進化し、当初人間が想像もしてこなかった速さで発展している。それによって、かつて実現不可能だったものが実現され、またその発達したコンピュータ環境の中で新しい使い方が生まれ、更にコンピュータの最適なアーキテクチャ(構成)の考えも次々と変わる。そうなれば、コンピュータは使っているうちにどんどん時代にそぐわないものとなり、現実に全く適応できなくなってしまい、自然とそのロジックが間違っていることになってしまう。
となると、コンピュータの寿命は実際の物理的寿命よりも短く設定されることとなり、動作保証もそれにかなり制約されてしまう。時代の移り変わりはあまりに速く、この様子はしばしばドッグ・イヤーといわれる。メーカーや金融などコンピュータが不可欠な企業はこの急激な変化にはかなり機敏に対応しているのだが、あまりコンピュータに通じていない企業や一般家庭はどんどんその変化に置いていかれる。筆者は頻繁にソフトのアップデートを行なったが、こういうのは頻繁に使う人でないとやらないだろうか。(これを読んでいる方々で、もしや古い機種なのに何もやっていないなんて方は、もういないでしょうね?せめてインターネットにつなげるような方々はね。)
なぜパソコンを持っていない人々までが、非常食を用意したのだろうか?それは、この世の中があちこちでコンピュータ化されてしまったからである。何といっても通信・電力・水道・ガス・交通などのインフラにコンピュータが介在してしまっているのは大きい。もしこのような場所でコンピュータが誤作動を起こせば、我々の生活は大混乱をきたし、最悪の場合大きな事故が発生するかもしれない(注7)。コンピュータを生み育てた米軍も当然、コンピュータにより管理されている核ミサイルが誤発射されないよう警戒しなければならなかった。
金融機関や証券会社、商社なども膨大な顧客データをコンピュータ管理しているので、そのコンピュータが誤作動しては顧客データや金額データが破壊されてしまう。また各種メーカーも、伝統産業や零細の町工場などを除き、工場の生産ラインをコンピュータにより精密制御できるようにしているが、ここでは誤動作で在庫管理がおかしくなるばかりか大事故の危険性がある。筆者が採用面接を受けたことのある鉄鋼メーカーによると、薄板鉄板の圧延ラインでは末端で鉄板が100km/h以上で走るそうなので、突然ラインが止まることは大変恐ろしいことだとすぐ分かるだろう。
一般市民が持っている家電でもマイコンチップが広く使われていて、これも旧式の製品は桁数が少ないためにある数字で突然止まってしまうなどという不安があった。カーナビは1999年に既に日付ビット桁あふれによりトラブルを起こしている。携帯電話も元日にはサーバがY2Kを引き起こし、メール機能で異常をきたした。
とにかく、我々の周りでは殆どのものがコンピュータ化されていて、どんなにコンピュータから離れた生活を送っているつもりでも少なからず影響を受けている。それにコンピュータに深く関連している商品が広く出回り、市民のかなり多くはそのような機器を持っている。日本でコンピュータの影響を受けずに暮らせるところはどこか?電気もガスも水道もない、人里離れた山奥か無人島ぐらいしか考えられない。そのぐらい我々の生活にコンピュータは浸透しているのだ。
で、これからはY2K以外に、コンピュータによる同じような問題は発生するのだろうか?それは全く予想できない。というのは、コンピュータはこれからどのように発達していくか予測は不可能で、現在のコンピュータがいつどれだけ陳腐化していくかも分からないからである。
まあ、年号を西暦4桁で表示しているのだから、今から8000年後の西暦10000年において「10000年問題」が発生することは目に見えている。だから今のうちに年号を5桁にしておこうか?……ぉぃぉぃ、その頃には僕らみーんな死んでるぜよ。それに現在のコンピュータにはいずれ物理的に寿命がやってくるので、そんな年代までずっと稼動していることは絶対にあり得ない。ま、そこは
ってことで、我々の子孫に任せてうっちゃらかしておきまひょ。(^^)
……「おぉー、Y2Kってカリウム化二イットリウムっていう化合物なのか?それは大発見だ!ノーベル化学賞ものだ!」はにゃ?僕は大学で化学を専攻してないから、その辺のことについちゃよう分からんですたい。……ちーと待て、それじゃ金属原子と金属原子がくっつくんだから化合物でも何でもなくてただの合金。そもそもそんな物質あるんかいな?……あのねー、僕はコンピュータの話をしてるんだよ。腰を折らんといてや。……もっともその物質、あったとしたらカリウムってんだから同じように危険なんだろうなぁ。
……「へぇ、西暦2000年で誤動作って、ファスナーが噛んじゃったのか?」ちょっとそこの人、一体何を聞いてたんだ?あ、もしやY2KをYKKと勘違いしたわけね。確かにYKKさんも生産ラインにコンピュータ入れてるだろうけど。
……「Y2Kといやぁ、いっちゃん、社会の窓開いてるよ。」まーた勘違いしとる(-_-;)。……あ、失礼失礼、いつの間にかズボンのチャックがずり落ちてた(^^;)。
ともあれ、Y2Kは確かにYKKとは似てますね。社会の窓が開いてるのに気づきにくいのと同じく、コンピュータの誤動作も気づきにくいということでは。Y2Kとはいわばコンピュータの「社会の窓」、いや社会の「ウィンドウズ」とでもいうんでしょうか?……あ、Macとか使ってる方々ごめんなさい。(^^:)