/ Home / Archives / Remark / 19990714
 ↑ Return

 ▲ Next

 ▼ Prev

 2000年問題ってなんだ? 

1999/07/14
ネタが尽きてしばらくはマスコミもおとなしくなっていたが、残り半年を切ったということで、最近またこの話題が騒がしくなってきた。そもそも2000年問題って一体何なのだ。

その1
西暦年号を下二桁でしか処理していないコンピュータでは、2000年をうまく認識できず、誤動作する可能性がある。
一体何を言っているのだろう。どうしてコンピュータが誤動作するのだ。ただ単に00年として正常動作するだけではないか。最初にプログラマが作ったとおりに。それがユーザの意に反するかどうかは確かに問題ではあるけれども、コンピュータは決して誤動作したりはしない。
「00年が99年よりも前になってしまう」のは、当然の結果であって、誤動作ではない。小学生でもわかる算数だ。

その2
食品や薬品の有効期限が1900年と表示されてしまう。
そうですか。隣のスーパーの牛肉100gのパックが、「賞味期限1900年1月10日」と表示されていても、私はちっとも困らない。「100年前に賞味期限切れとるやんけぇ」などと因縁をつけるのは、よほどくだらないヤクザだけだ。もっともそうなる前に「食品の賞味期限表示は1900年または00年を2000年とみなす」という法律を、臨時国会で通してしまえば済むことだろう。確か平成になったときも、免許証などで、「昭和xx年表示は、63を引いて平成とする」とかいった内容の法案が可決されたはずだ。後はコンピュータでもプリンタでもゆっくり直せばいい。

その3
メンテナンスのインターバルを監視するタイマーが誤作動し、エレベータが緊急停止する。
リセットしてもう一度電源を入れなさい。組み込みチップの内蔵時計などというものは、最初から正確に動いていることを前提としてシステムを作ったりはしない。電池が切れたら時計も止まるし、そもそも最初から正しく設定される保証など、どこにもないからだ。携帯電話、ビデオデッキ、電子レンジ、ファックス、内蔵時計だらけだが、どれもみんな正確に動いていないと困るだろうか。

その4
2000年は、100で割り切れる年としては、400年に1度の例外で閏年である。だから100年ルールだけを組み込んで、400年ルールを考慮していないシステムのカレンダは、2000年を閏年として認識しない。
そんなプログラム作ったプログラマが本当にいるだろうか。100年ルールも400年ルールも組み込まずに、4年に一回閏年というだけのプログラムならいくらでもあろう。しかしわざわざ100年ルールを組み込んで400年ルールを組み込まないプログラムが本当にあるのだろうか。最初の例外は2000年だということはわかりきっているのに。つまり100年ルールも400年ルールも組み込まなければ西暦2099年まで使えるのに、100年ルールだけ組み込んだら1999年までしか使えないことは最初からわかっているのだ。まさか100年ルールを知っていて、400年ルールを知らない人間は、そういるわけではあるまい。
これはちょっと謎である。そういうプログラムがあったら、ぜひとも作ったプログラマに会ってみたい。

その5
上記のような問題で、ローンや預貯金の金利計算するプログラムは、誤った答えを出す。
これは理論的にはあり得る。しかし1999年7月になって、2000年以降の金利計算をまだ一度もしていないプログラムはほとんどないだろう。家電品の6分割払いだって、今購入すれば支払いは2000年だ。そんなプログラムなら、もうすでに問題が出ている。
現在から過去にさかのぼって期間計算をするプログラムなら、2000年に入ってから問題が出るだろう。しかしそんなプログラムは、どこで使われているのだろう。

その6
核兵器の報復装置が誤動作して、意図せぬ発射が起きる。
だから、それは誤動作ではない。プログラムは作ったとおりに動くのだ。普通、もし緊急の事態があって、コンピュータの計算に論理的なエラーが生じたら、フェールセーフといって、発射できなくなるようにシステムを作るものである。もしエラーのときに発射するようにシステムを作ったのだとしたら、明らかに確信犯である。絶対にないとは言えないけれど、それは2000年問題どころの騒ぎではない。それよりも原子力潜水艦の艦長がバーボンを飲み過ぎて、お茶目にボタンを押してしまう危険性のほうが高いのではないだろうか。

と、いうわけで、いろいろと細かい問題は出るだろうが、それほど大騒ぎするようなことにはならないのではないかと思っている。もっともこの件に関して責任を追及されても困るが。
ただひとつ気になるのは、きわめて短期の期間計算をするプログラムだ。一番怪しいのが図書館の貸出管理。あれはせいぜい2週間から1か月程度の期間計算しかしないから、潜在的に2000年問題があっても、本当に年末にならないとわからない。しかも官公庁はそういうことに関していい加減だ。それ以外、たとえ日付を西暦二桁で入力するようなプログラムであったとしても、期間計算をしないようなものなら、ほとんど何の問題も起きないはずだ。それより未だに和暦でデータを扱っているコンピュータが山ほどある方が問題だと思う。
それから今年の年末から来年にかけて、大手のコンピュータ会社はどこも休日返上で会社待機らしい。しかしその間、一般の会社は休日だと思うのだが。1月4日になって出社してみたら、電子メールの日付が狂っている。などという騒ぎはあるかもしれない。

いずれにしても一般の人に誤解されたくないのは、コンピュータは決して誤動作しないということだ。作られたプログラムどおりに動くだけだから。意図しない動作をすることはある。しかしそれは使い手と作り手の、意識のズレの問題であって、コンピュータの問題ではない。
それから2038年には、もっと大変な問題が控えていることも忘れてはいけない。