サーバサイドがメインの人のための宣言的UI

フロントエンド界隈を眺めているとたまに見かける宣言的UIという言葉。
なんだろう?と思ったので調べて自分の言葉で説明してみた。

宣言的UIとは……

宣言的UIが何か分からなかったので調べてみた
https://zenn.dev/arei/articles/f59e263aa3edf2
大変わかりやすくまとめられていました。
サーバサイド視点から見るとこれって……?と疑問の浮かぶ点がいくつかあるので追加で調べて考えてみた次第です。

.NETに明るい人向け

上の記事を読んだら頭に浮かんだ人もいると思いますが……私はXAMLじゃん!ってなりました。
XAMLの定義を調べてみたところ「宣言型マークアップ言語」とのこと。
XAMLも宣言的UIなのだと理解してよさそうです。

上記以外の人

.NETなんて知らないよという人や、.NETは使ってるけどXAMLは……という人向け。
読んでいて、サーバサイドの経験がある人はCGIJSP、aspx(今ならRazorかな……)を思い浮かべた人も多いのではないでしょうか?
私はその感覚は正しいと思います。

古のCGIServletでは文字列をHTMLの形式で結合するプログラムコードを書いてそれをHTTPレスポンスとして返却するようなコードを書いていました。
ただ、それだと出来上がりのHTMLが想像しにくいのでそれらを解消するために生まれたのがJSPだとかHTMLにPHPのコードを埋め込んだりとかするようになったと。
その流れがフロントエンド界隈にも来たということなのかなと。

ただ、CGIJSPにはなかった要素としてUIとオブジェクトを紐づけ(バインディング)してUIを操作した時に決められた動作をするだとかオブジェクトの値が変わったらUIにも反映されるだとか言ったものがあります。
CGIJSPは基本的にサーバでHTMLを生成して返却する仕組みなのでないのは当たり前かもしれません。(完全に皆無だったかと言われるとASP.NETはクライアントの操作でHTMLを再生成させるようなものがあったような気はしますが……主流とは言い難かったと思います。)
と、いうことでサーバサイドな人としてはCGIやらJSPのようにHTMLベースでUIを表現することがクライアントでもできるようになって、さらにそのUI操作とクライアントサイドのコードとも紐づけられるようになったぐらいの理解をするとよいと思います。

本当のことを言うとUIのコンポーネント化だとかMVVMとの関連性とかその先の発展があるような気はしていますが導入としてはこんなところでよいのではと感じます。