第20話 金属加工
工房通いの二日目と三日目も、わたしはグスタフの工房に通った。
二日目は父が付き添った。三日目の朝から、ヨハンが途中まで送ることになった。
村の外れの一本道までは兄が一緒。
そこから鍛冶屋までの最後の数分だけ、わたしが一人で歩く。
帰りも同じ場所まで兄が迎えに来る——それが、父と母が出した約束だった。
(……お父さん、お母さん、ちゃんと考えてくれてる)
わたしは胸の中でぼそりと呟いた。
朝、ヨハンの背中を追って一本道を歩く。
道の分かれ目で兄が立ち止まり、「行ってこい」と顎で鍛冶屋の方を示した。
そこから先、わたしは一人で歩いた。
八歳の足で、ほんの数分の距離。
途中で何度かよろけた。
それでもわたしはたどり着いた。
「来たな」
火床の前ですでに作業を始めていたグスタフが、振り返らずに声をかけた。
「親方さん、おはようございます」
「うむ」
それだけだった。
グスタフは多くを語らない。
だけどその「うむ」だけで、わたしは「歓迎されている」と分かった。
◇◇◇
その日の作業は、鉄の棒から鋸の刃を打ち出すというものだった。
「鋸ですか?」
「ああ。隣村から修理の注文が来た」
グスタフは火床から赤く焼けた鉄の塊を引き出して、金床に置いた。
「リナ嬢ちゃん、まず見ろ。鉄ってのは温度で性質が変わるんだ」
「うん」
「真っ赤に焼くと軟らかくなる。叩けば形が変わる。だが冷ますと固くなる。何度か加熱と冷却を繰り返すうちに、鉄が鋼に変わっていく」
(——状態が変わる)
頭の中でわたしは、先日、村の畑で見たソリディス(土固化)を思い出した。
あれも土の状態を「液体寄り」から「固体寄り」へ変える、状態遷移の魔法だった。
(——鍛冶も同じだ。温度と打撃という入力で金属の状態を変えていく)
(——でもこれは魔法じゃない。道具と人の手だけで行われる状態遷移)
頭の中でわたしはふと気付いた。
(——魔法と鍛冶は同じ「状態遷移」をしている。ただエネルギー源が違うだけだ)
(——魔法は魔力、鍛冶は火と人の力)
——胸の奥がざわついた。
これは、もしかして、
(——「魔力なき者」のわたしでも、道具と火と自分の手で状態遷移は起こせる)
その閃きはたぶん、わたしが今までで一番大きな手応えとして胸に響いた。
「嬢ちゃん、何ぼうっとしてる」
グスタフが振り返らずに声をかけた。
「あ、ご、ごめんなさい、親方さん」
「お前さん、ぼうっとしてるときの方が頭が回ってるな」
——え。
「親方さん、わかるの?」
「ふん。長年人を見てきたんでな。職人の卵の目つきはすぐ分かる」
——わたしを、職人の卵、と呼んでくれた。
(……うれしい)
胸の奥がまた温かくなった。
◇◇◇
グスタフは火から引き出した鉄を金床に置いて、
ガンガン、ガンと規則的に叩き始めた。
「叩く強さは、まず最初の三回は強く」
ガン、ガン、ガン。
「その次の三回は中くらい」
ガン、ガン、ガン。
「最後の三回は弱く」
カン、カン、カン。
「これを繰り返すんだ。嬢ちゃん、見えてるか」
「うん。三、三、三、で、九回」
「そうだ。なぜこうするか、わかるか」
——わかる気がした。
頭の中でわたしは考えた。
最初に強く叩くのはたぶん、内部の歪みを大きく動かすため。
中くらいは、その動きを整えるため。
最後の弱く叩くのは、表面を仕上げるため。
(——アルゴリズムだ。強→中→弱の三段階で、内部から外側へ徐々に整えていく)
(——前世のソートでも似たパターンがあった。粗い分割から細かい仕上げへ)
頭の中でわたしは、まとまった答えを口に出した。
「……強く叩くと、内部が動く。中で整える。弱く叩くと、表面が整う」
「ほう」
グスタフが初めて手を止めた。
「リナ嬢ちゃん。お前さん本当に八歳か」
——また、その質問だ。
「えへ、たぶん」
「お前の『たぶん』は信用ならんな」
グスタフが声を上げて笑った。
「だが正解だ。粗→中→仕上げ。これは長年の職人が経験で積み上げた、規則だ」
——「規則」。
わたしの胸の中で、その言葉がもう一度深く響いた。
(——鍛冶の知識は職人が何百年もかけて最適化してきた規則の集合)
(——前世のソフトウェア工学のベストプラクティスと同じだ)
——胸の奥がぐっとなった。
「お前さん、もう一つ覚えておけ」
グスタフがふっとわたしを見た。
「『同じ動きを何度も繰り返すうちに、職人の手は自然と最適な動きを覚える』」
「うん」
「だがな、頭で『規則』を理解してから手に覚え込ませる方がずっと早い」
——その言葉は明らかにわたし向けだった。
(……親方さんは、わたしのことを何か特別な子だと思ってる)
(——でもそれを表に出さないで、職人の言葉で教えてくれてる)
胸の奥でまたざわついた。
——わたしには、彼の優しさがちゃんと伝わっていた。
◇◇◇
その日わたしは、グスタフが鉄の棒を鋸の刃に仕上げるまでをずっと見ていた。
加熱冷却、加熱、冷却。
叩く、叩く、叩く。
ヤスリで形を整える。
最後に刃の部分を、特別な液体に漬ける(焼き入れ、というらしい)。
ジュと白い湯気が立ち昇った。
「これで刃が硬くなる」
「焼き入れ、ってやつ?」
「お前さん、知ってるのか」
「うん。たぶん。夢で見たかも」
「……またそれか」
グスタフがまた笑った。
工房を出るとき、わたしは深く頭を下げた。
「親方さん、今日もありがとうございました」
「おう。明日も来い」
「うん」
帰り道、わたしの頭の中ではいくつもの新しいことがぐるぐる回っていた。
(——鍛冶の規則、状態遷移、魔法と道具の共通点)
(——「魔力なき者」のわたしにも、できることがある)
——道は増えていく。
そしてそれぞれの道はたぶん、いつか繋がる。
(——わたしが、繋げる)
そう、心の中で誓った。
夕陽が村の屋根を、橙色に染めていた。
■あとがき・解説
グスタフの工房に通い始めたリナ。鉄の棒が鋸の刃に変わっていく一連の工程を見ながら、リナの中である閃きが芽生えます。「魔力なき者のわたしにも、できることがある」。今回はその閃きの根っこにある、プログラミング世界の考え方をご紹介します。
■この話で出てきた言葉
■「状態機械」
第17話の後書きでも触れた「状態が変わることで動作が決まる仕組み」のことです。プログラミングの世界では「ステートマシン」「有限状態機械」などとも呼ばれます。
身近な例で言うと、信号機(青→黄→赤→青)や洗濯機(給水→洗い→すすぎ→脱水)。いまどの状態にいるかで、次に何をするかが決まる仕組みです。
鍛冶もまさに状態機械でした。鉄の状態は、
1. 冷えた状態(固くて叩いても形が変わらない)
2. 赤熱した状態(軟らかくて叩けば形が変わる)
3. 冷却済みの状態(叩いた形のまま固くなる)
加熱で状態が遷移し、打撃で形が変わり、冷却でまた別の状態へ。この三つをぐるぐる回しながら、鉄を少しずつ「鋼」に変えていく。プログラミングで書く状態遷移と、まったく同じ構造です。
■「アルゴリズム」
「ある仕事をやり遂げるための手順」のことを、プログラミングでは「アルゴリズム」と呼びます。レシピも組み立て説明書も、広い意味ではアルゴリズムの一種です。
グスタフが教えてくれた「強く三回、中くらいに三回、弱く三回」という叩き方も立派なアルゴリズムでした。粗く動かす→整える→仕上げるという三段階。前世のソフトウェア工学にも「粗い実装→改良→最適化」という同じパターンが存在します。
リナが「ソートでも似たパターンがあった」と思い出したのもこのためです。何百年も前の鍛冶職人がたどり着いた「規則」と、コンピュータの並べ替え技法が本質的に同じ形をしている――この符合こそ、リナの胸を熱くさせたものでした。
■「魔力なき者の道」
ここでリナが行き着いた閃きは、この物語にとってとても大きな意味を持ちます。
魔法も鍛冶も、本質は同じ「状態を変える作業」。ただエネルギー源が違うだけ。だとすれば、魔力を持たないリナでも、火と道具と自分の手があれば、状態遷移という現象そのものは起こせる。「魔力なき者」だったリナが、初めて見つけた自分なりの足場でした。
「お前さん、ぼうっとしてるときの方が頭が回ってるな」
職人を長くやってきたグスタフには、リナの目の奥が見えています。彼は「職人の卵」と呼んでくれました。
道は増えていく。そしてそれぞれの道はいつか繋がる――そう胸の中で誓ったリナの背中を、夕陽が橙色に染めていました。
次の話もお楽しみに。




