シュレディンガーの猫の手

脳幹 まこと

Null-Control


 ワルド貿易会社の管理システム刷新プロジェクト。

 俺の会社が大量の資金と人材を叩いて完了へとこぎつけた、IT界のピラミッド建設作業である。

 これを機に、我が社の技術力をアピールし、幅広く使ってもらえることを期待したわけだ。実際のところは数多の綱渡り、虚飾、出血、意識喪失が伴う修羅場。それだけの死線を潜った果てに「これ以上の不備が出れば続投は見送りにする」という地獄のような通告を受けたのだ。


 それから3ヶ月、胃薬を常飲し、脳内の神経回路を焼き切る覚悟で、防衛策を出し、予防線を張り、シナリオ通りに事を運んだのである。


 危機を乗り越え、ホッと一息、取引先担当のキュクス氏と本番稼働のカウントダウンを待っていた際に、悲劇は訪れた。


 後ろにいた若手のピッポの顔色が明らかに悪くなっていたので、笑顔のまま「どうした? 来週からぐっすり休めるぞ?」なんて軽口を叩いてみたら、ぼそりと、


「実は……バグ、見つけまして……」


 と呟いた。

 そこから、彼はぶつくさと、事の詳細を説明しだした。

 キュクス氏がたまたま席を外していたのは、本当に幸運だった。



「なぜ、今まで言わなかった!?」


「皆さんに迷惑かけたくなくて……」


 ウジウジした様子の部下。

 言いたいことは山ほどあるが、今は握り拳を作るに留めている。


 その名は、Nullヌル-Pointerポインタ-Excepitonエクセプション。null参照例外、略して「NPE」や「ぬるぽ」と呼ばれることがある実行時の例外だ。

 発生すればシステムが止まる。


 プログラムに不具合はつきものであるが、許されるものと許されないものがある。

 事前に対策が取れるものは原則として後者である。そしてNPEは基本的に対策が取れる事象である。

 本番運用でこれを吐き出すと言うことは、会社としての知識や技術力を疑われるということになる。

 例えるなら、チェスのプロが「待った」で反則負けするくらい恥ずかしい。

 信用は失われ、悪評が業界を駆け巡ることになる……



 よりにもよって、NPEだとは……!

 愕然とした。

 目の前にいるピッポのような若手社員なら、お役御免で次を待つのだろう。生憎なことに、俺はピラミッド建設長を仰せつかった身であり、この取引の破綻は即ち死を意味する。

 そんな理由で? そんな理由で、俺の努力がすべてフイになるのか?


 NPEはテストで摘まれるべき欠陥だ。なぜ残ったのか、理由は数々浮かび上がる。

 例えば……作業員もピンキリだ。きちんと見てくれる者もいれば、全てレビュアー任せという不届き者もいる。

 仕様変更の際に、影響を調べ損ねたというケースもある。俗に「品質劣化デグレード」と呼ばれる事象であり、これもまたご法度である。


 俺は秘密裏に担当分のソースを確認し始めた。

 今からでもひょっとしたら間に合うかもしれない。仮に見つけたとして、どう修正の機会を得るかは考えなくてはならないが、それでも幾分か気は楽だ。


 ピッポのガイドも踏まえて、あたりを付けていく。

 摘み取らなければならない、しかし、明らかに量が多すぎて、見切れない。

 畜生……!


 猫の手も借りたい。


 諦めかけた寸前でその箇所が見えた気がした。確かにnullの情報を取得しようとしている……!

 発見した直後、絶望する。

 システムが動けば、確実に実行される部分だ……



 キュクス氏が戻ってきて「万全の体制で作られたプログラム、期待しておりますよ!!」などと釘を刺しにくる。

 その笑顔は半分は本心、半分は皮肉によるものだ。

 何らかの不備が出れば、即座に俺はキュクス氏の慰み者にされるだろう。システム刷新を本社に提案したであろうキュクス氏もまた、同時に慰み者になる。


 システムが起動した。もう止められない。


 反省文の内容を考える。

 我が社のフーガ社長にも報告し、謝罪してもらわなければ。

 その後は方々ほうぼう遺憾いかんにより俺は死に至る。


 いつ、あの場所に達するのだろう。そして止まるのだろう。

 生きた心地はしていない。笑顔は張り付けているが、正直、誰とどんな話をしているのかも分からない。



 そして、いつの間にか壁掛け時計は12時を指し、キュクス氏が「システムは滞りなく順調に進んでおり」とかなんとか言っている……



 え?


 嘘?


 ピッポと顔を見合わせる。

 彼もまた面食らったかのような顔だ。


 何が何だか分からないまま、午前は完了した。


「午後もまたよろしくお願いしますよ!」というキュクス氏の表情は、安堵に満ちていた。


 なんだか化かされた気分だ。

 どうにも釈然としない。


 そもそも、なぜピッポはこのバグを検知できたのだろう。プログラムの総量は膨大なものだ。そのうちのたった1行の不備をどうやって?

 彼が作り込んだのなら話は早い。怒られるのを恐れて、伝えずにおいたのだ。本番が始まるとなって、途端に怖くなった……良心が辛うじて勝って報告した……若さゆえの過ちとして一応の筋は通る。


 しかし、改めて確認する限り、そうではなかった。所管こそは我が社ではあったが、ピッポの分担ではなかった。彼は今までに見たこともないソースを偶然・・見て、気づいたのだ。


 いや、それは一万歩ほど譲歩すれば、まだ何とかなる。

 そんなことよりも――

 nullを参照して処理が止まらなかったのはなぜだ。


 nullとは「存在していない」値である。だからこそ、存在しているかのように・・・・・・・・・・・参照したり、計算しようとすれば、例外NPEが発生するのだ。

 問題のある箇所を通過していなかった? いや、違う。

 あそこは確実に通る。無論、コーディングの時も、テストの時も、レビューを幾度となく繰り返している。本番直前まで気付かないなんてことはあり得ない。


 このような初歩的なミスはテスト工程で摘み取れるはずだ。

 まるで、バグが虫食い穴ワームホールから突然現れたかのようじゃないか。


 編集履歴を見てみるが、プログラムを修正した痕跡はない……



「お待ちかねの昼休みだ。スパム・ハムエッグでも食べようぜ」


 振り返ってみると、知り合いがいた。IT業界というのは狭いもので、別れたはずの人にふと巡り合うことがある。

 ブラー。5年前に退職した俺の同僚。

 天才肌で、面白い話が得意。もし辞めてなければ、ピラミッド建設長は彼だったし、格段に上手くやっていただろう。


「なんかあったのかい?」


 俺はブラーに不思議な事件の一部始終を打ち明けた。

 彼は一言も返すことなく、興味深く聞いていた。

 話が終わると、彼は上を仰ぎ、かすれた声で「ミャア」と発した。


「少なくともその時点において……そのnullには値が存在していたんだろうな」


「ちょっと待て、それはおかしい」


 俺は半笑いで突っ込む。冗談のつもりか。


「『存在しない状態』がnullのはずだろ。では一体、何の値を取得したというんだ?」


「そりゃあ、死んだ変数だろ」


……どういう意味だ? 

 

「過去の変数値、過去に設定されたことのある値。すでに代入され、今は存在していない値ってことだ」

 

 そんなバグなことがあるか。

 悪い冗談のようなことを言うのは、天才肌ゆえなのか。

 前に一緒にいた時はこんなではなかったはずだ……記憶はおぼろであるが。


「その計算領域は新しい値で置換されてしまうんだぞ。どうやって復元したっていうんだ? そもそもそんな挙動はコンピュータの仕様にはありえない話だろ」


「そりゃ……お前が『猫の手も借りたい』と願ったからだろ」


「猫の手には、神懸かり的な効果があるとでも?」


「猫は猫でも、シュレディンガーの猫の手を借りちまったってことさ」


 こいつは一体、何を言っているんだ……


 とはいえ、シュレディンガーの猫というのは、このナンセンスな状況を説明するには適切な例えかもしれない。

 誤解している人も少なくないが、あの例えは「(量子力学の理屈に基づくと)猫が生きている状態と死んでいる状態が同時に存在することになるが、そんな馬鹿なことがあり得ると思うか?」という意味合いである。


「その手を借りたから、ある変数がnullである状態とnullでない状態が同時に発生したと?」


 ハハハとブラーは笑う。彼の目が妖しく光る。


「冗談だよ……うまい具合に値が設定されたんだろ。プログラムの流れを完全に追える人はそう多くはないし」


「だが、俺も、発見した奴も確かに見たんだ」


「なら、二人とも疲れてたんだよ」


 それが一番ありうる可能性だ。

 長い討論の果てに、ごく単純な結論に達することはよくあることだ。


 昼休みは終わりかけていた。

 別れ際にブラーはこんなことを教えてくれた。


「バステトって猫の神がいるんだ」


「バステト?」


「元々はエジプトの神でな、人に裁きを下していたんだ。それから、安産を司るようになり、慈愛を司るようになった」


「猫らしく移り気なことだな」


「それで……はどうなってると思う?」


「今? 今とは?」


「猫に崇められ、人を喰う邪神になった。無貌むぼうの神と同じ世界にいる。我々と同じ・・・・・世界に」




 今日は不思議なことばかりだな。

 中でも一番不思議だったことは……

 

 なんであいつは、俺が「猫の手も借りたい」と思っていたことを、知っていたのだろう?

 出来事は説明したが、俺の内心まで説明してはいなかったのだが。


 寒気がした。

 ついでに嫌なことを思い出した。



 ブラーは5年前に退職し、


 3年前に死んでいる。




 後ろからキュクス氏の叫び声が聞こえた。

 一目散に駆けつけると、俺の襟首を掴んで揺さぶった。

 状況を把握しようと、実行画面を見て戦慄した。

 一面に、nullが表示されている。しかし、システムは止まらない。

 明らかな異常である。例外の事象が例外でなくなってしまったのなら、一体、このプログラムは何を実行しているのだ?


 理由は全く想像できないが……ロクでもないことは間違いない。

 俺は即座に社長に電話をかけた。

 電話は、すぐに繋がった。


「フーガ社長! とんでもない事態が」


 聞いたことのある声がした。

 


「なんかあったのかい?」

  • Xで共有
  • Facebookで共有
  • はてなブックマークでブックマーク

作者を応援しよう!

ハートをクリックで、簡単に応援の気持ちを伝えられます。(ログインが必要です)

応援したユーザー

応援すると応援コメントも書けます

シュレディンガーの猫の手 脳幹 まこと @ReviveSoul

★で称える

この小説が面白かったら★をつけてください。おすすめレビューも書けます。

カクヨムを、もっと楽しもう

この小説のおすすめレビューを見る

この小説のタグ