Column: Clojure の Web アプリケーションフレームワークについて¶
Clojure の Web アプリケーションフレームワーク¶
このドキュメントを読んでいるあなたはきっと Clojure に Web アプリケーションフレームワークがあるのか気になって読んでいるんだと思います。近年流行る言語は必ずと言っていいほど優れたすべてを包括するような Web アプリケーションフレームワークが存在します。Ruby なら Ruby on Rails 、 Python なら Django 、新しいところで Elixir の Phoenix ですね。ならば Clojure にも何かメジャーな Web アプリケーションフレームワークがあるんじゃないのだろうか?そう考えるのは当然かもしれません。
結論から言えば Clojure にはあなたが期待するような(例えば Rails に似た) Web アプリケーションフレームワークは存在しないでしょう。もしあなたが Luminus を知っているなら Luminus はフレームワークではないの?そう思ったかもしれません。 確かに Luminus は公式でフレームワークであると謳っていますが、その実態はただの Leiningen テンプレートです。 Rails のような素晴らしいドキュメントもありませんし、豊富な rails コマンドのようなもの提供されません。 Luminus を使う際あなたは Ring を理解して、依存関係にある全てのライブラリの README やその他ドキュメントを読む必要があります。勿論、最初の簡単なアプリケーションを作るためのチュートリアルは Luminus 自身が提供しているので、それに沿っていくことで何かしらのアプリケーションを作ることは出来ますが、それ以上に進もうと思うなら先に述べたように各ライブラリのドキュメントをあたる必要があります。
フレームワークがないことの利点¶
フレームワークよりも組み合わせ可能なライブラリを使うことを好む Clojure コミュニティですが、この風潮は特に Clojure だけというわけではなく、あまり詳しくは知りませんが F# などの言語でも組み合わせ可能なライブラリを使う方が良いという主張をする人たちはいます。さて、フレームワークを使わない利点というのは何処にあるのでしょうか。