htmxというフロントエンドのフレームワークがあります。というかつい最近知ったんですが。
ここしばらくフロントエンド開発から離れていたので全然キャッチアップできておらずお恥ずかしい話ですが、去年あたりから世界的に流行っているらしいですね。
このフレームワークについての説明は上記の記事や公式サイトに任せますが、これを見たときに最初に思ったことは「ついに来たか」でした。
フロントエンド開発の変遷からして、いずれはこういうものが来ると思っていたのです。
20年ほど前にJavaScriptを使ったリッチなフロントエンドの開発が流行り始めたとき、最初はjQueryやPrototypeなどのライブラリーを使ってDOMを直接操作していました。Ajaxとかいう言葉が騒がれ始めたのもこの頃です。
しかし変数の値が変わるたびにDOMを操作する、あるいはDOMの構成が変わるたびに変数に反映させるという処理はややこしかったので、やがて変数とDOMをバインディングさせるという発想が出てきました。AngularJSやReactです。ReactはVDOMという別の概念ももたらしたのですが、これは別の話。
さて、「DOM直接操作」から「変数とDOMをバインディング」と変遷して開発者はロジックの記述のみに専念できるようになったわけですが、このあたりから「次はそもそもロジックを書かずに済むフレームワークが出てくるんだろうな」と考えていました。
ロジック(≒プログラム)を書かず、イベントが発生したときに呼ぶAPIと、戻り値を反映させる先をYAMLファイルのようなもので指定しておくだけで済めばデバッグの手間も大幅に減ります。なんでも作れるというわけではありませんが、これで十分なウェブアプリケーションも決して少なくない。そんなフレームワークがそろそろ出るだろうと。
このhtmxは、まさにこの思想から生まれたものだと思っています。YAMLではなくHTML内に直接指定ですが、そこは些細なこと。要はロジックを書かずに宣言的にアプリケーションを作れる時代がやってきたということです。
あ、上のアイデア(YAMLで指定する云々)を誰かパクって新しいフレームワーク作ってもいいんですよ?