Let's write β

プログラミング中にできたことか、思ったこととか

ClojureのNoirがすごい

Common Lispで良いWebFrameworkというものはないだろうかと探していたのですが、
ClojureについていえばNoirがとても良いように感じられました。
特に気にいったのがレイアウトシステムです。
実装をみてみると単純にhiccupのhtmlに展開するだけの単純なdefpartialですが、このhtmlが
ちゃんと関数をつかって分割しておいて、それを組みあわせてやっても適切に動作するのです。
Common Lispのcl-whoやcl-markupでは、同様に展開されるマクロや関数を定義しておいても、
その関数を呼びだした部分の内容がエスケープされてしまったり、出力先のストリームを伝播してやらなければならなかったりします。この仕様は僕にはちょっと面倒だなと感じていたのですが、
hiccupはそのような事はないようです。

Noirについてですが、とうぜんClojure上で動作するライブラリですので、Windowsでも正常に動作するようですし、
編集したファイルもきちんとリロードされるようです。
モデルというディレクトリはあるようですが、現状は特にデータテーブルの面倒を見る部分の機能までは有していないようで、
データの保存については他のライブラリを利用する事が必要なようです(柔軟性をもたせるためには、しかたがない事だとはおもいます。)

Clojureはherokuにも対応しているようですし、将来有望な言語といえるのではないでしょうか。