実行前に結果が読めることがIaCの根本価値である
IaCの根本価値は「apply前に結果を見せる」ことにある。だから予測可能性 — 実行前にコードを読んだ時点でresource graphの形と各ノードの属性値を読み取れること — は、他の設計軸と並ぶ一つの軸ではなく、他の判断の基準になる位置にある。
記述言語の選択と記述自由度の所在を一つの因果で束ねられるのもこの軸である。言語が決める範囲が広ければ「予測しにくい書き方」が文法で書けないので予測性が構造的に高く、規約に委ねると抽象化を使った瞬間に落ちる。ツール間の差を構造的に立てられるのがこの軸なので、比較の主軸に選ばれる。
「予測可能性が崩れるとどうなるか」を裏側から見ると、根本価値であることがはっきりする。「人もAIも読めないがapplyはできる」は危険である。plan予測が崩れると、apply前に結果を見せるというIaCの機能そのものが毀損する。静的予測可能性が低いとplanでunknown値だらけになり、人にもAIにも何が起きるか見えなくなる。
学習コスト、既存人材との適合、エコシステム流通、テスト容易性、IDE統合、運用責任分界、ガバナンス容易性など、言語選択で重要な軸は他にも多数ある。それらを主軸にしないのは重要でないからではなく、主観・状況依存で構造的比較が難しく、ツール間で比較粒度が揃いにくいからである。予測可能性は構造的比較に適した軸として選ばれている。
ここへリンクしているノート
- 抽象化境界の透明性は記述自由度とは独立した軸である
- AIのコンテキスト窓は人の局所読解と同質の制約である
- IaCでは賢い抽象より退屈で逐語的な記述の方が価値が高い
- ツールの限界は出自を四層に分けないと解消手段を取り違える
- 動的段階の効果の閉包性はP1完全性とP2帰属性に分解できる
- 予測可能性はgraph形状と属性値の二側面を持つ
- IaCではIRダンプが一級の製品機能である
- AI時代に予測可能性の根拠は組み替わるが重要性は落ちない
- 「DSLだから読みやすい」のではない
- 結果予測性に効く記述自由度は三つに絞れる
- 黙って捨てるのは、落とすことより悪い
- 出力先に重ねる層があるなら、状態を溜めずに済む
- 予測可能性には二つの源がある — コードから読めることと、既に知っていること