今、PlayFrameworkをはじめるなら、1.2.4か2.0か?


という話題について書いてみたいと思います。独りハッカソン中にそんなことをいろいろと考えてました。
1.2.4か2.0かという話題は、1.2.4Javaか1.2.4Scalaか、2.0Javaか2.0Scalaかという細分化が出来ます。
あと、シチュエーションによって結論が違うので結論としては3つです。

1. すぐ仕事で必要になりそうな場合

  • 1.2.4Javaを頑張りつつ、2.0Scalaを研究する

2. すぐに必要ではないけど、将来的には仕事で使いたいから勉強

  • 2.0Scalaを頑張り、その後、2.0Java

3. 自分のサービスを作りたい

  • 2.0Scalaを頑張るもしくは、好きなのを使う

理由についてそれぞれ書いていきます。

1. すぐ仕事で必要になりそうな場合について

「すぐ仕事で必要になりそうな場合」ですが、これは1.2系がお勧めです。理由は簡単で、2.0系はまだ機能が少なく、モジュールも不足しています。どのあたりが最終ゴールかも実はよくわかりません。1.2.4Scalaも仕事に使えると思いますが、実案件で使ってないので判断が出来ません。

1.2系には、モジュールが既に大量に用意されており(サイトのモジュールのページにあるものは1.2系のものです)、何よりもフルスタック型なので機能がしっかり入っています。実案件でも納品済みで、なかなかに快適です。

http://www.playframework.org/modules

Javaを薦める理由としては、実際の仕事(自社サービスなどの場合は環境の決定権が社内にあるので、また違うと思うため、受託案件の場合)では、Javaであるという点のメリットは大きく、Scalaでとなると、まずは言語の採用に関するプレゼンテーションからはじめる必要が出てきます(しなくていい会社さんはうらやましいです) もちろんScalaが許される仕事であれば各自の選択に応じてとなります。

2. すぐに必要ではないけど、将来的には仕事で使いたいから勉強について

このケースの場合は、実は僕は最初2.0 Javaをやっていくのでもいいかなと思っていたのですが、2.0をしばらく使っていて、2.0Javaというのは、2.0Scalaを把握した上で使うようなシロモノであるような気がしてきました。なので、2.0 Scalaを頑張るのがいい感じです。

2.0Javaを使っていく上で、コアのコードを追う必要が出てきますが、追っていくと必ずScalaのコードに突入します。Play2.0がScalaのフレームワークであるためです。Java脳で進んでいていきなりScalaに変わるのはストレスが僕にはあるので、それならScalaで全体を把握した上で2.0Javaに進むほうがいいかなと思いました。
なんで最終的にJavaかは、前述の通りです。

3. 自分のサービスを作りたいについて

この場合は、好きにしたらいいと思いますが、1.2.4Javaを固めに使用していってもいいし、冒険して2.0Scalaでいってもいいと思います。現状、楽にいけるのは1.2.4Javaだと個人的には思いますが、これは個人のスキルによるでしょう。本音を言うと、何故Playなのかを考え直したほうがいい可能性もあります。

PlayFrameworkが得意なフィールドは、僕の感覚ではWebアプリ単体では済まない様々な連携が必要だったりJavaのライブラリで便利なものが既にある状況かつ、それなりに動作速度が求められる、比較的コンパクト(画面構成的に)なMVCWebアプリケーションに適していると考えてます。実際LL系のフレームワークに比べてアプリの立ち上げこそ遅いものの、その後の動作スピードは圧倒的に速いです。1.2.4以降、WebSocket周りが整備されてきたので、今後はMVC型WebSocketフレームワークとして化ける可能性もあり、僕はそちらにも魅力を感じているのですが、まだ特殊な利用用途といえるでしょう。

Playとか抜きに考えるなら、とりあえずCakePHPとかでモックアップを作ったりしちゃうのがいいかもしれません。

ということで、僕も方向転換して2.0Javaではなく2.0Scalaを研究しつつ、1.2.4Javaを仕事で使って行こうと思います。

Comments are closed.