「嬢助」開発でPlay Framework を使ってみた感想

(タイトルにはMarkdown使えないのね…。)

とっつきやすい

なにしろ、最初に覚えることが少ない。 最初にできたひな形を変えるだけでいいんだもの。

静的

Play Framework では、実行前にすべてがコンパイルされる。 だから、つまらないミスは実行前にコンパイラが教えてくれる。こういうの大好き。

ルーティング

これもわかりやすい。 一つのファイルに、URLとそれに対応するメソッドを一行ずつ書いていく形式。 規模が大きくなるとつらくなるかもしれないけど、 「嬢助」程度の、将来的にも100ページ以内に収まりそうな規模ならこのくらいが使いやすいと思う。

なお、このルーティングの設定も静的なチェックの対象になる。つまらないミスをコンパイラが検出してくれるのは実にありがたい。

テンプレート

Play Framework のテンプレートが素晴らしいのは、これが単なるScalaメソッドとしてコンパイルされるということだ。 - 実行前にコンパイルエラーがわかる。 - 静的型による方チェックが行われる。 といった、Scalaコンパイラの恩恵を受けられる。

たとえば、あちこちで使われているテンプレートにパラメータを追加したとき、対応が漏れた箇所はすべてコンパイラが教えてくれる。一つずつページを表示させて、変だったら直す、とかしなくていい。静的型大好きな僕としては、これだけで大喜びする。

Razorをまねて、「@」だけでプログラムを埋め込めるのもいい。先に「オナ禁レコーダー」でRazorを使っていた僕にとっては、かなり使いやすいテンプレートであった。

欠点は、コンパイルには時間がかかること。 ページ数が少ないうちは大した問題にはならないので、良しとしよう。 企業で使っていると、Scala自身のコンパイラが遅いこともあって、なかなかツラいかもしれない。

結論

気に入った。