Javaフレームワーク調査2015 - Play Framework編

前回の調査でなんとなくPlay FrameworkとSpringの2択かなと思ったので、この2つに絞ってさらなる調査をしてみました。 調査と言ってもググったり本読んだりするだけだし、すでに使ってる人にとっては既知の情報が多いと思います。

今回はPlay Framework編です。

概要

  • Play Frameworkは現在のバージョン2.xはScalaで書かれていて、フレームワークの利用自体はScalaまたはJavaからできる。
  • Play Framework自体がサーバ機能を持っており、Apache HTTP ServerもTomcatも必要ない。そもそもServletではない。
  • 1.xはJavaで書かれていたが2.xでScalaで一から書きなおされている。
  • フルスタックでほとんどのものが自前で用意されている。

メリット

  • フルスタックなので、ライブラリごとの相性などをあまり気にする必要がなく、これさえ覚えていればだいたい完成まで漕ぎつけられる。
  • 環境構築が楽で、すぐに開発が始められる。
  • ネット上の情報量がなかなか多く、しかもその多くがかなりポジティブな評価。

デメリット

  • 技術的難易度はそれほど高くないが、独自規格のためPlay Framework以外の技術との互換性が低く、結果的に学習コストがかかる。
  • トレンドとしてはScala開発にあり、Javaでの利用はややマイナー。
  • Apache httpdTomcat という世間一般的に当たり前のサーバを利用しないことによる、運用環境での不確定要素の多さ。

メリットでもありデメリットでもある点

  • Typesafe Activator によるパッケージ管理。スムーズに動けば便利そうだけど、ちょっと使ってみた感じバギー。
  • 色んな意味で今風でカジュアル。業務システムよりはWebサービス向きかも。
  • ステートレス。つまり基本的にSessionを使わず状態をサーバ側で保持しない。全部をクライアント上に保存する。これにどういうメリットがあってどういう制約があるかはもいうちょっと考えないといけない。