宣言的記述のメリットとかパラダイムについて考える
宣言的な某のメリットとか、どう変わるかとかを考える プログラミング周辺で宣言的なんとかという場合
Reactのような宣言的UI
terrafrom, kubernetes のような、インフラの状態
こういうのは、開発者が望む「理想」の状態を示すものである
こういう形にしたいという理想、要求
それを実現するために、個別のDOM操作をreconcilerとかが頑張る
「理想の定義」と「実現のための作業」を切り分けるパラダイムと考えられる
切り分けて上手に抽象化することで、
「実現のための作業」の部分をライブラリとして切り出せたり
そこだけ切り替えて、共通の理想状態を異なる場所に展開できる
reactの異なるrendererとか
また、宣言的パラダイムを有するライブラリは、「実現のための作業」の部分だけを実装するのに集中すればいい
これはプルリクが出しやすいように思う
なぜなら、terraformを例にとると
AWSやAzureの新しい機能がリリースされる
そのAPIを確認する
それらを呼び出すために必要なterraformの実装をする
これは既存のものを参考にすればいいのでやりやすそう
デメリット
「実現のための作業」部分が、どんどん変更が入るとか
追従作業が多いとキツイ
仮想DOMの概念を知ったときから感じていたが、
そもそもブラウザが仮想DOMの仕組みを取り込んだほうがいいはず
宣言的なAPIを提供すればいい
気づいたら意識すらする必要がなくなりそう、
と思っていたが数年経っても特に変化は無いな
terraformは変数やモジュールがあって快適そう(まだ使い倒せてないので分からん)
プログラマブルになってる
宣言自体をプログラマブルにできるのは最高
ReactとかはそもそもHTMLをjs上でハンドリングすべきだろ!やろうぜって感じなので、デフォルトでプログラマブル
HCLはjson直接操作するより人間が読みやすいようにやっていこうぜという考え
json,yml等をプログラマブルにするという考えが生まれるかもしれない
それjsでよくね?とは思うものの、
どこでもどんな言語でもそれができるとしたら快適に違いない
設定記述記法上に変数等のプログラマブルな仕様を定義して、
各言語上でそれを実装する、ということはできるかもしれない
細かい仕様が一致しない地獄はありそう
そのくらいするならjs書けという感じもあり、そのような形になるかは怪しい