第40話 コードがあれば
屋根裏の小さな窓から薄い朝の光が差し込んでいた。
寝床の中で目が覚めた。隣でノラはまだ毛布に丸まって眠っている。ノラの寝息が規則正しく繰り返されていた。
身体を起こさずに、しばらく天井の梁を眺めていた。
(——昨日、揺らぎを見た)
(——魔法陣そのものは、ちゃんとそこにあった)
(——でも、それを動かす何かが、不安定になっている)
瞼の裏でフラヴィオさんの井戸の魔石が浮かんだ。一度目は色が違った。二度目は線がぼやけた。三度目で元に戻った。同じ魔石、同じ詠唱、同じ人。それなのに結果が違う。
(——表面のコードは正常。下の層が揺らいでいる)
毛布をめくって屋根裏の窓辺に座った。
朝の風がほんのわずかだけ涼しさを連れてきていた。陽の月も十日を過ぎた頃合いだ。
ふと、頭の隅で別の記憶が浮かんだ。
——コードがあれば、必ずバグもある。
前世のわたしが何度も口にした言葉だった。新人にも何度も言った。コードが書かれた瞬間にバグは生まれる。書いた人が気付かないだけで、バグはもう、そこにいる。
そして——
(——あ)
息が一瞬だけ止まった。
(——コードがあれば、必ずバグもある)
前世で何度も体験してきた、シンプルな真理。
コードを書く人間なら、誰でも知っている。
(——わたしの中にずっとあったその言葉が、今、形を持って目の前に立っている)
胸の奥で何かがコトリと落ちた。冷たくも熱くもない。ただ、形がはっきりした音だった。
魔法はコードだった。そう気付いた日からずっと、わたしはコードの方ばかり見てきた。前世で培った目線で読み解いて、構造を分類して、系統を発見して。
——だけど。
(——コードを書いた以上、必ずバグはある)
(——魔法もコードなら、当然バグはある)
なぜ今まで気付かなかったんだろう。むしろ「ない」ほうがおかしかった。
頭の奥がじんと冷えた。
◇◇◇
居間ではエマが粥を椀によそっていた。
「おはよう、リナ」
「おはよう、お母さん」
椅子に座って椀を受け取る。湯気が顔に当たって、少しだけ意識が現実に戻った。
エマがわたしの顔をちらりと見て、何も言わずに自分の椀を運んできた。向かいに座って一口すすってから、口を開いた。
「リナ、何か考え事?」
「うん」
「村の魔法のこと?」
頷いた。エマには昨日、フラヴィオさんの家から戻った時に「魔法陣の外で何かが揺れている」とだけ話してあった。それ以上は説明しなかったし、エマも聞かなかった。
「分かりそう?」
「分かりそうで、まだ分からない」
エマが小さく笑った。
「焦らないで」
「うん」
それだけ言って、エマはまた粥に戻った。
(——お母さんは、これがわたしの『眼』の仕事だって、もう察してる)
(——その上で、ただ「焦らないで」と言う)
問わないことが、エマの距離の取り方だった。受け止めて、信じて、そして自分の領分には踏み込ませない。わたしの領分にも踏み込まない。
椀の中の粥が少しずつ温度を下げていく。
頭の中で昨日からの問いがまた回り始めていた。
(——魔法陣の下が揺らいでいる。それは分かった)
(——でも、何が原因? どうすれば直る?)
直し方が何ひとつ思い浮かばなかった。
◇◇◇
椀を空にして立ち上がった。
「お母さん」
「うん?」
「バルドゥスさんに会いに行ってきます」
エマが椀から顔を上げて、わたしを見た。少しだけ間があってから、頷いた。
「気をつけてね」
「うん」
(——急がない)
(——バルドゥスさんは『急いてはならぬ』と言った)
(——でも、もう一度だけ聞きたい)
棚から薄手の上着を取って、外に出た。
朝の村は静かだった。鶏の声が遠くで一度だけ鳴いて、また静かに戻った。麦畑の端の道を進んで、バルドゥスの家へ向かう。
頭の中ではずっと、先日バルドゥスの家で聞いた言葉が回っていた。
「魔法陣はそのままでは動かぬ」
その続きが、今のわたしには必要だった。
◇◇◇
バルドゥスはベンチで日向ぼっこをしていた。
膝の上に薄い羊皮紙を置いていたが、読んでいる風ではなかった。風で端がめくれるのを骨ばった指で押さえていた。
「ふん。来たか」
目を開けずにそれだけ言った。
「はい。バルドゥスさん」
「お話を聞きたいことがあります」
バルドゥスが目を細めて、ベンチの隣を骨ばった指でとんと叩いた。
座った。陽の当たる側だった。バルドゥスの右側、わずかに冷たい木の板。
「で、何を聞きたい」
少し迷ってから口を開いた。
「……前に教えてくれた、『魔法陣はそのままでは動かぬ』のこと」
バルドゥスがわずかに目を細めた。皺の奥の目が、こちらを見てはいない。けれど、確かにこちらの何かを見ていた。
「ふん。役に立っとるか」
「役に立ってる、と思います」
少し息を吸って、続けた。
「最近、村で——魔法が、不調になっている家があります」
バルドゥスが沈黙した。
「魔法陣そのものは、ちゃんとそこにあるんです。でも、結果が回ごとに違う。色とか、線の濃さが、揺らいでいる」
老人は何も言わなかった。風が一度ゆるく吹いて、羊皮紙の端をめくった。バルドゥスはそれを押さえなかった。
(——バルドゥスさん、何か知ってる?)
数分。それともそれ以上だったかもしれない。陽の角度が少しだけ動いた。
ようやくバルドゥスが口を開いた。
「リナ」
「はい」
「わしも、知らんことが多い」
骨ばった指が膝の上の羊皮紙をかすかに撫でた。
「だが、お前さんの言うことが本当なら——」
そこで一拍だけ止まって、続けた。
「世界が、揺らいでおる」
◇◇◇
息が浅くなった。
「世界が?」
「魔法陣を読み取って動かす、世界の側じゃ」
バルドゥスは陽の射す方を向いたまま、平らな声で続けた。
「それが、何かの理由で、不安定になっておる」
「何か、理由」
「分からん」
老人が首をわずかに振った。
「だがな。伝承では、こうした『揺らぎ』が過去にも何度かあった、と聞く」
息が止まりそうになった。
「そのたびに、誰かが世界を直してきた」
心臓が一つ跳ねた。
「直す? 世界を?」
「ふん」
バルドゥスが短く息を吐いた。
「直す、というより——世界に手を加えた、というほうが正確かもしれん」
「手を、加えた」
「具体的に何をしたかは、わしには分からん。伝承は曖昧じゃ。だが、揺らぎが収まったときには、決まって誰かが『触れた』と語られる」
(——世界に手を加えた)
(——それは、わたしにもできることなの?)
(——魔力なき者の、わたしに?)
頭の中で問いがぐるぐる回った。
そこでバルドゥスが、初めてわたしの顔を見た。皺の奥の目は穏やかだった。
「お前さんは、『魔力なき者』じゃろう」
「……はい」
返事は短かった。声が震えそうだったから。
バルドゥスは目線を陽の方へ戻した。
「魔力なき者は、ある意味、世界の側に近い」
「世界の、側」
「世界に魔力で関与しない者は、世界を読み解く側に立てる」
息が止まった。
「魔力を持つ者は、世界に手を伸ばす側じゃ。手を伸ばすから、その手の届く範囲しか見えん」
老人の声は淡々としていた。
「魔力なき者は、手を伸ばさん。だから、世界そのものを見られる」
(——わたしは、見ている側)
(——『眼』を持っているのも、たぶんそれと関係がある)
胸の奥でずっと暗かった部分に、小さな光が灯った気がした。
「魔力なき者」——あの教会で八歳のわたしがそう告げられて以来、ずっとそれを欠落だと思ってきた。何もできない、と。
でも、もしかしたら。
(——欠落じゃなくて、別の位置に立っているということ?)
バルドゥスはそれ以上は言わなかった。
◇◇◇
家を出る時には、もう陽が傾いていた。
「ありがとうございました」
ベンチで深く頭を下げると、バルドゥスは目を閉じたまま、軽く首を振った。
「ふん。急ぐな」
「はい」
「直すのは、すぐにはできん。世界が揺らぐのは、すぐには止まらん」
「……はい」
「お前さんは、まず見ろ」
その言葉を背中に受けて、わたしは麦畑の脇の道を歩き始めた。
夕陽が穂の上を染めて、金色がだんだん赤に近づいていく。
頭の中が一気に動き始めた。
(——世界が揺らいでいる。過去にも何度かあった。そのたびに、誰かが世界を直してきた)
夕陽が麦の穂を一面、赤に近い金で染めていた。
(——魔力なき者は、世界を読み解く側に立てる。わたしは、魔力なき者)
胸の奥で熱が立ち上がった。前世で死ぬ間際に頭の中に巣食っていた「あと一つだけ」の声に、似ていなくもなかった。
(——もしかしたら、わたしも、何かできる?)
——でも。
歩く足が一度、止まった。
(——でも、何をすればいい?)
魔法陣を直すのは無理だ。古代の言語は読めても、書き換える術がない。わたしには魔力がない。魔石に触れても、何も起こらない。読み解くことはできる。けれど書き換えはできない。発動もできない。
指先が無意識に上着の裾を握っていた。
(——なら、外から観察する? どうやって?)
頭の中で、ずいぶん前に台所で魔石を眺めながら考えたことが蘇った。「魔力なき者でも、機械を使えば、何かできるかもしれない」。あの頃のわたしの小さな仮説。
道具。機械。仕組み。
風が少しだけ強くなって、わたしの髪を一度持ち上げた。具体的な形は何一つ思い浮かばなかった。
(——『コードがあれば、必ずバグもある』)
(——いつか思い知ると、どこかで分かっていた。その『いつか』が、今、来た)
(——でも、わたしには、まだ直し方が見えない)
立ち止まって空を仰いだ。雲が一筋、夕陽を斜めに横切っていた。
家の方角に視線を戻す。麦畑の向こうに、お父さんの工房の小さな屋根が見えた。
そこで、もう一つ別のことに気付いた。
(——わたしの『眼』は速い。けれど一度に読めるのは、その瞬間の魔法陣だけ)
(——揺らぎは何度も起きる。一度目と二度目の差を比べないと、本当の姿は掴めない)
(——『眼』のうしろに、変化を記録して比べる何かが要る——)
具体的な形はまだ見えなかった。けれど、欠けているものの輪郭だけは、薄く浮かんできた気がした。
(——明日、お父さんの工房をもう一度、見てみよう)
(——わたしがまだ目を通していない『機械』があるかもしれない)
■あとがき・解説
第40話は、リナの中でずっと眠っていた前世の言葉「コードがあれば、必ずバグもある」が、ついに物語の真ん中に立ち上がる回でした。バルドゥス老人の「世界が揺らいでおる」「魔力なき者は、世界を読み解く側に立てる」という言葉と合わさって、リナの存在意義が静かに書き換わっていきます。今回はこの回で芽吹いた、二つの大きな考え方について解説します。
■この話で出てきた言葉
■「オブザーバビリティ(観測可能性)」
物語の終盤、リナがふっと気付きます。「『眼』は速い。けれど一度に見られるのは、その瞬間の魔法陣だけ」「揺らぎは何度も起きる。一度目と二度目の差を比べないと、本当の姿は掴めない」「『眼』のうしろに、変化を記録して比べる何かが要る」——あの内省です。
現場の言葉では、これを「オブザーバビリティ」と呼びます。日本語に直訳すると「観測可能性」。動いているシステムから、どれだけ詳しく、どれだけ過去にさかのぼって、状態を観測できるかという性質のことです。
良い観測の道具は、ただ「今」を見せるだけでは足りません。「さっきは何が起きていたか」「いつもとどう違うか」を、後から見比べられるように、記録しておく必要があります。リナの「眼」は瞬間を捉える鋭いセンサーですが、記録装置が付いていない。だから「機械の方に頼る何かが要る」と感じ始めた——夕陽の道で立ち止まったリナの中で、新しい問いが一つ芽吹いたところでした。
■「修正不能だがハンドルできる問題」
リナがバルドゥス老人と話したあと、家への道で立ち止まって考え込みます。「魔法陣を直すのは無理。古代の言語は読めても、書き換える術がない」「魔力がない。魔石に触れても、何も起こらない」——できないことの一覧。
プログラマーの世界にも、似た状況があります。たとえば自分の使っているライブラリの中にバグがあっても、書いた本人ではないから直接は直せない。自分の権限の外で動いている仕組みは、根本から修正できない。
ではどうするか。「外側で受け止める」「ずれを観察して補正する」「壊れる前提で備える」——直接の修正以外の方法で問題を「ハンドルする」ことを覚える。これも立派なプログラミングの技術の一つです。
リナがバルドゥス老人の「直すのは、すぐにはできん。世界が揺らぐのは、すぐには止まらん」「お前さんは、まず見ろ」という言葉を受けて歩き出したのは、まさにこの「直接は直せないけれど、何かできることがあるはず」という方向に頭が切り替わった瞬間でした。
■「観測者の立場」
バルドゥス老人が静かに告げた「魔力なき者は、ある意味、世界の側に近い」「世界に魔力で関与しない者は、世界を読み解く側に立てる」という言葉。
現代の科学や工学にも、似た作法があります。観測者が対象に手を加えてしまうと、対象そのものが歪んでしまって、本当の姿が見えなくなる。だから一歩引いて、できるだけ干渉せずに見る。「観測者の立場を取る」と呼ばれる、地味だけれど深い構えです。
リナが「魔力なき者」という、ずっと欠落だと思い込んできた自分の立場を、初めて別の角度から見られるようになった夜——その光景は、たぶんこの物語全体の中でも、いちばん静かで、いちばん大きな転換点の一つでした。
「コードがあれば、必ずバグもある」——転生したあの夜にぼんやり考えた言葉が、ようやく彼女自身の目の前に立ち上がりました。けれど直し方はまだ見えない。見える人ですらない。それでも夕陽の中で立ち止まったリナが、次に視線を向けたのは、お父さんの工房の小さな屋根でした。彼女の中で、もう次の試作が始まり始めています。
次の話もお楽しみに。




