無限パターンと戦う
無限にあるパターンをどう収束させるか。
最初は真面目に考えた。
「数じゃない。濃淡だ。強弱だ。方向性だ。世界はベクトルで出来ているんだ」
なんか急に芸術家みたいなことを言い出した自分を横目に、 ロジックを組み始める。パターンを削るのではなく、 濃くする。薄くする。 組み合わせの“流れ”を作る。
よし、これはいける。
……いける気がする。
数時間後。
動いている。
まだ生きている。 システムは呼吸をしている。
しかしその翌日。
破綻。
完全に破綻。そいつは急にやってくる。
何を指示しても成功しない。
昨日までの君はどこへ行った?
「それは無理ですね」 「仕様上できません」 「予期せぬ動作です」
いや、昨日できてたし。
何で今日はできないのさ。
ここからが本番。
修正。
調整。
条件追加。
例外処理。
さらに例外。
例外の例外。
いつの間にかロジックはこうなる。
if (基本条件) {
if (例外A) {
if (例外A-2) {
if (例外A-2-α && ただし火曜日) {
...
}
}
}
}火曜日関係ないだろ。
だが、なぜか必要になる。
要らないはずだけど、これ消すとほかで動かなくなる。
そんなのばかりで意味が分からない処理が詰みあがる。
対処療法が始まると止まらない。
バグが出る。
パッチを当てる。
別の場所が壊れる。
またパッチ。
システムは徐々にこうなる。
「触るな危険」
しかも恐ろしいことに、 別パターンを考えるとまた破綻する。
「なるほど、ならこの方向性で制御すれば…」
破綻。
「じゃあ抽象度を上げて…」
破綻。
「ルールベースを減らして…」
破綻。
破綻、はたん、たん、たん、たたたん。
数日後。
私はそっと git log を見つめる。
そして唱える。
reset --hard
巻き戻し。破滅ではない。
過去に戻るのだ。
あれだけ悩んだロジックを、
静かに破棄。
この瞬間、
人は少しだけ悟りに近づく。
ここでようやく気づく。
自由を奪わずに規制するのか。
規制の中で自由を与えるのか。
そして、それはどちらが正しいのか。
制御しすぎると窒息する。
自由にしすぎると爆発する。
……これ、民主主義の話だっけ?
いや違う。
よく考えたら、ただのプログラミングだった。
無限パターンとの戦いは続く。
今日も私はコードを書く。
そしてきっとまた、
火曜日が増える。
無限に続く火曜日は嫌だよね。



