2000年問題

Top >> Shack >> Et cetera >> Y2K
世界規模で騒がれ続けている2000年問題。 例年通り年が一つ増えるだけなのにどうしてこうも騒がれるのでしょうか。
その原因はほとんど一つに集中していて、コンピュータが西暦を2桁で管理しており00を2000年と判断せず 1900年と勘違いしてしまう為に誤動作すると言うものです。
私が一番疑問に思っている事はそれに対して文句を言っている人がほとんど居ないと言う事でしょうか。 少なくとも私の周りには一人も居ません。全く感心が無いか「そーゆーものだ」で済ませている気がします。
しかし考えなくても分かる事ですが、そのコンピュータは自らの意志でデータを処理している分けではありません。 プログラマーが組んだプログラム通りに動いているだけに過ぎないのですから、 仮に大事故が発生したとしてもそれは人災です。 もっとはっきり言ってしまえば大勢の手抜きプログラマ達が起こした無用のトラブルです。
その無用のトラブルに対処するが為に多額の予算を計上し、多くの人を導入し、しかも一部では対応が間に合わず/出来ずに 問題が発生してしまったと言うのが実態です。 電子立国日本とか言われながらもこの程度かと思うと恥ずかしいものがありますね。日本に限りませんが。

上記の文章に対して次のように反論する人も居るでしょう。
コンピュータが作られた時は今から数10年も昔で当時は年データを4桁で持っている事が資源的にも辛かった。
その為に2桁で省略した為にこのような事になった。仕方無かった。
と。確かにもっともらしい反論です。でもって、これについてとくに責めるべきところは見当たりません。 当時は16KBのメモリとか言えば大容量だったでしょうし、30年も40年も先の事を考えてプログラムする余裕もなかったでしょう。 それに30年と言えば十分未来です。今でもそんな先の事を考えずに仕様を決めても責められないでしょう。
ところでそんな大昔のコンピュータを未だに使っている所があるのでしょうか? 疑問です。
今でも資源的に厳しい計算機でちょっとした計算でさえ何日も掛けて処理させるとかしているのでしょうか?
いえ、それだったら別にいいんですけど。ちょっと考えられませんね。少なくとも私には。

コンピューターはともかく、データに関しては当時から継続して蓄積していると言う可能性はあります。 こう言った場合は仕方無いのでは、と思うところですがこれもちょっと考えると変です。 何に保存されているのかは知りませんがそんなに何十年も保存できるメディアってあるのでしょうか?
メディアも時代とともに変化するものです。移し替えの作業の時に物理的な変換をする際に論理的な変換をするチャンスと言うのも 何度かあったと思うのですが、それをしなかったのは明らかに手抜きと言えるでしょう。 いや、それ以前にデータを何十年も電子媒体で保存すると言うのは稀でしょう。大抵は捨てる事と思います。
つまり2000年に近いデータでさえその程度の管理しかしていなかったと言う事です。

「年データを4桁にしていなかったからだ」と言うのはもっともですが、これは見落としもあります。 コンピュータが活躍し始めた頃から考えても、50年頃を境にプログラム側で対処すると言う事も出来たはずです。 例えば数字が50よりも大きければ1900年代、小さければ2000年代と言うように。
処理すべきデータが自分の持ち分だけで良いと言うのならば、年データが2桁もあれば向こう100年間は正常動作するはずです。 しかし実際にはそうならず誤動作してしまったものもありました。これも立派な手抜きです。
本当に昔作られたものがそのまま手を付けられる事もなく2000年を迎えてしまい誤動作したとか言うのであれば仕方無いと 思いますが、わずか数年前に作られたものでさえ立派に誤動作すると言うのは、 はっきり言って恥ずかしくありませんか?

2000年問題をクリアすれば次は10000年問題だから当分は大丈夫。と安心している人も多い様ですが本当にそうでしょうか?
確かに4桁入力がされていれば次に問題となるのは西暦10000年です。 ですが必ずしも4桁にする必要は無く2桁もあれば十分事足りると言うのは説明した通りです。 状況によっては1桁でも十分使用に耐える事もあります。
今回2000年問題を免れた例として 「コンピュータに頼らず人の手で処理したため問題にならなかった」と言うものがあります。 やがてはそういった処理もコンピュータ化されるでしょう。しかも都合の良い事に、これから新規に作成するプログラムであれば 特別な処理をさせる事無く2桁でも90年以上正常動作するシステムが出来上がります。 2000年問題を知らずしてプログラマの職に付く人も今後は増えてくるでしょう。
そうです。次に起こるのは2100年問題です。

今回のトラブルを教訓を生かして問題を8000年も先送りしたと思っている人は甘いです。 上記の理由により100年後には少なからず同じトラブルが発生するのです。しかしここで、 「いやそんな事は無い。一度経験しているのだから今度は気づく。」 と反論する人も居るかも知れませんが、その人は甘すぎます。 100年先まで生きていて指導できる人なんてまず居ません。 それに2000年直前に作られた製品でさえ2000年問題を 起こしてしまったものは実際にあったのですから、当然同じ事が100年後にも起こると考えた方が自然です。 いえ、2100年に限りません。おそらく100年毎に同じ事を繰り返すのです。 もともと少数のプログラマによる手抜きから起きたトラブルなのですから。
たった一人がプログラムミスをしたとしても、それが重要箇所であれば被害は大きなものになります。

私はこの2000年問題を、 人類史上最もくだらないトラブルと考えています。 分かっていながらも手を加えなかったのですから当然でしょう。 「うっかりしていた」という言い訳をする人も居るかも知れませんが、高度な計算をミスしたとか言うのであれば 言い訳にもなりますが年数と言うのは日常生活にも大きく影響しているのですから 言い訳で済む問題ではありません
また、そんな人がトラブルのネタになっているかと思うと嫌なものです。
そんなわけで、私個人が体験した2000年問題を書き出してコンテンツとする事にしました。 ネタとして面白いからです。
体験しない事には書きようが無いので、もしかしたら一発きりで終ってしまうかも知れませんが。
このページを訪れた方はせめて自分だけでも2000年問題を真剣に考えて下さい。 「俺は関係ないぜ。だから知らないよ。」と言える人になりましょう。




ルーターの時計が合わせられない

私はNECのコムスターズ・ルーター(CMZ-RT-S2)を使ってインターネット接続をしております。
このルーターの時計はソフトでカウントしているらしく、停電すると消えてしまうし、狂いも激しいものがあって 1分狂うのにわずか数日でOKと言う困りものです。正直なところ使っていて不安感のあるルーターだったりします。

ふと気になってルーターの設定画面をブラウザで見たところカレンダー機能にバグは無かったらしく 正常に2000年と表示されていました。 ついでに時計も合わせようと思って管理ページに移動しボタンを押したその時、予想もしない事が起きました。
年入力が不正です
設定値は一切反映されませんでした
と表示され変更を受け付けてもらえなかったのです。
これが2000年問題である事は直後に気づきました。 そして、時刻合わせにJavaScriptを使ってパソコンからデータをもらっている事もすぐに分かりました。 早速ページを戻してソースを見てみます。が、予想に反してスクリプトにバグはありませんでした。 バグがあるどころか、仕様を忠実に守っている処理でした。 次に疑ったのはブラウザです。普段からネットスケープのバグには悩まされており、多分こっちだろうと思って 確認用のスクリプトを組んでみました。
下記の入力フォームがそれで、確認ボタンを押す事で返り値を見る事が出来ます。
   
どのように表示されましたか?(左の枠が年月日で右の枠が時分です)
私が普段使っている Netscape Communicator-4.7 では 100/1/1 と表示されました。 これは現在の年から1900を引いた値を返している事になります。
が、JavaScript のリファレンスには、

Object.getYear()
オブジェクト中の年を返す
Oblectの示す西暦が1900年代の場合には`98'のように下2桁が返る。
1900年以前と2000年以降に関しては4桁で返される。
Objectの値が空の場合には、現在日時から年を算出する。
と、書いてあります。
本来ならば 2000/1/1 と表示されるはずでなければならなかったのです。
それにしても、1900年代だけ2桁で返すと言うのもずいぶん変わった仕様です。

もともと JavaScript は今は亡きネットスケープ社が開発したものです。
その後ECMAにより規定され国際規格として使われているにも係わらず、本家であるはずのブラウザにバグがあって どう責任を取るつもりなのでしょう?

NECには同情します。私もホームページを機能的にしたいがために JavaScript を部分的に使っているのですが、 ネスケのバグのお蔭で断念し、その結果スクリプトを削除と言う事を何度かしています。 リファレンスに従い正常動作するはずのスクリプトが、ネスケのスクリプトエンジンのバグのお蔭で使いものにならないのです。
多くの企業が2000年問題を警戒し正月休み返上で客からの電話応対の為に出社している ケースになっているかと思いますが、 もしかすると今ごろはネスケ側の問題であるにも係わらず、NECの社員は文句を言われているかも知れないのですね。

あなたのブラウザは大丈夫でしたか?

参考文献:情報管理 JavaScript1.2 リファレンスブック 園田誠著


Top >> Shack >> Et cetera >> Y2K

一つ上に戻る