Play! Framework Update
          2012/07/14
   第 3 回 Playframework 勉強会
      池田尚史 @ikeike443
自己紹介

• 池田尚史(いけだたかふみ)
• 株式会社シャノン Product Manager
• @ikeike443
• Play! Framework コミッター
• 日本 Playframework ユーザー会
• 『 Jenkins 』オライリージャパン 寄稿
• 勉強会、翻訳等々やってます
Agenda

• Play って何?(おさらい)
• 数字で見る Playframework
• 1.x の現状
• 2.x の現状
Playframework って何?

• Java/Scala 用 Web フレームワーク
• フランスの Zenexity 社が開発
• 現在は Typesafe 社の Typesafe Stack の一部でも
  ある
• Rails ライク
    ●
        フルスタック
    ●   CoC
Playframework って何?

• Web 開発者の Web 開発者による Web 開発者の
  ための Web フレームワーク
• 決して JEE のフレームワークではない
• JEE の規約に則っていない
• Servlet を使っていない
• XML 不要
コアメンバー
Playframework の歴史
2007 年頃 (ver0.x)




• 社内フレームワークの時代
• Servlet / JSP
2009 年末〜 2010 年頃 (ver1.0)




• OSS 化
• Groovy テンプレート , Python シェル
• この頃から既に非同期 I/O を実装
2011 年頃 (ver1.2)




• ネットワーク周りを Mina から Netty へ
• Websocket サポート
• Scala サポート
現在 (ver2.0.2)




• 全体を Scala で書き直し
• Netty+Akka で非同期 I/O の徹底
• 基本的な思想は 1 系と同じ
Play1 と Play2
• Play1
 Java で書かれた Java のフレームワーク
 Scala はプラグインでサポート


• Play2
 Scala で書かれた Scala/Java のフレームワーク
Play1 と Play2

• 基本的な設計思想は同じ
• 完成度を取るなら Play1
• 未来への成長を取るなら Play2
Play1 と Play2

• Play1 が好きな人から見ると、 2 はデグレード
  したように見えており、少しもめていた
• Play1 は今後もサポートされることを発表し、
  メンテナーを増員した(それが私)
• Play1 が好きな方も安心してください
Play1 → 2 利点

• バイトコード操作との決別
   ●
       Javassist : あらゆる箇所で
   ●
       Javaflow : Continuation の実装で
• 上記を Scala + Akka で置き換えられる
• 特に Javaflow は 2008 年でメンテナンス止まっ
  ている
数字で見る Playframework
ML 登録メンバー数




   6300 人超
  • 2 年半で 15 倍以上の伸び
1.x と 2.x の比較
                1.x      2.x
Age (years)
Age (years)
                   2.5      0.5
Pull Requests
Pull Requests
(Open)
(Open)              49      15
Pull Requests
Pull Requests
(Close)
(Close)           473      363
Fork
Fork
                  409      427
Watch
Watch
                 1308     1995
Modules
Modules
                  135       27
• やはり世間の注目は 2.x に集まっていると言っ
  ていい状況
• 同時期の 1.x に比べ 2.x の開発はかなり活発
• 特に Pull Request の消化数は驚異的
• モジュールの数も時期を考えれば少なくない
1.x と 2.x の現状
1.x の現状

• 1.2.5 リリース
• 1.2.4 から実に半年かかった
• 正式にメンテナンスモードへ移行
• 次リリース( 1.3 )でおそらく終了
• メンテナ
    ●   Nicolas, Peter Hilton, Morten, Takafumi
1.3

• Hibernate4 対応( JDK5 サポート切り捨て)
• DocViewer の i18n
• 上記と細かい Bug fix のみ
• 例えばマルチ DB 対応などは入らない可能性が
  極めて高い
• i18n of docviewer のデモ
2.x の現状

• 2012/07/08 現在、 2.0.2 リリース
• ドキュメント未整備(みなさん Wiki を編集し
  てください)
• モジュールリポジトリなし(開発中)
• モジュール志向なのにモジュールの作り方分か
  りづらい?
2.1 ロードマップ

• Scala2.10, sbt0.12 対応
• Play 独自 Promise を Scala 標準 Promise(SIP-14)
  へ変更
• スレッドプール設定の簡略化
• Scala JSON API の改善
• コンパイルスピードの改善
• 等々
2.x への要望

• なにかあればぜひ!
• Play は OSS です。みなさんの貢献が頼りで
  す。
• 何か要望があれば本日まとめて伺って、ユー
  ザーグループの意見としてコアメンバーに共有
  します。
• もちろん基本はコードを読んで Pull Request ま
  たは本家 ML へ直接問題提起
ありそうな要望

• ロードマップを出してほしい → 出た
• ドキュメントを整備してほしい
• リリースノート書いてほしい
注目すべき記事

• Sadek が最近立て続けにブログ書いてる
• Play と RealTime WebApp
     ●   http://sadache.tumblr.com/post/26784721867/is-socket-pu
• Play の Http API
     ●   http://sadache.tumblr.com/post/26258782102/bitsbou
           t-play2-architecture
日本 Playframework ユーザー会
• https://groups.google.com/forum/?fromgroups#!forum/play_ja
日本 Playframework ユーザー会

• 不定期に勉強会をやってます
• 将来的にはコアメンバーたちを日本に呼ぶこと
  も構想しています!!
• その実現のためには、みなさんのご協力が!!
日本 Playframework ユーザー会

• ドキュメントの翻訳も行っています!
• 現在は 2.x の翻訳を進めています。
• 興味のある方はぜひ ML でお知らせください。
というわけで
Play 勉強会、始まるよ!

Play ja 3_update

  • 1.
    Play! Framework Update 2012/07/14 第 3 回 Playframework 勉強会 池田尚史 @ikeike443
  • 2.
    自己紹介 • 池田尚史(いけだたかふみ) • 株式会社シャノンProduct Manager • @ikeike443 • Play! Framework コミッター • 日本 Playframework ユーザー会 • 『 Jenkins 』オライリージャパン 寄稿 • 勉強会、翻訳等々やってます
  • 3.
    Agenda • Play って何?(おさらい) •数字で見る Playframework • 1.x の現状 • 2.x の現状
  • 4.
    Playframework って何? • Java/Scala用 Web フレームワーク • フランスの Zenexity 社が開発 • 現在は Typesafe 社の Typesafe Stack の一部でも ある • Rails ライク ● フルスタック ● CoC
  • 5.
    Playframework って何? • Web開発者の Web 開発者による Web 開発者の ための Web フレームワーク • 決して JEE のフレームワークではない • JEE の規約に則っていない • Servlet を使っていない • XML 不要
  • 6.
  • 9.
  • 10.
    2007 年頃 (ver0.x) •社内フレームワークの時代 • Servlet / JSP
  • 11.
    2009 年末〜 2010年頃 (ver1.0) • OSS 化 • Groovy テンプレート , Python シェル • この頃から既に非同期 I/O を実装
  • 12.
    2011 年頃 (ver1.2) •ネットワーク周りを Mina から Netty へ • Websocket サポート • Scala サポート
  • 13.
    現在 (ver2.0.2) • 全体をScala で書き直し • Netty+Akka で非同期 I/O の徹底 • 基本的な思想は 1 系と同じ
  • 14.
    Play1 と Play2 •Play1 Java で書かれた Java のフレームワーク Scala はプラグインでサポート • Play2 Scala で書かれた Scala/Java のフレームワーク
  • 15.
    Play1 と Play2 •基本的な設計思想は同じ • 完成度を取るなら Play1 • 未来への成長を取るなら Play2
  • 16.
    Play1 と Play2 •Play1 が好きな人から見ると、 2 はデグレード したように見えており、少しもめていた • Play1 は今後もサポートされることを発表し、 メンテナーを増員した(それが私) • Play1 が好きな方も安心してください
  • 17.
    Play1 → 2利点 • バイトコード操作との決別 ● Javassist : あらゆる箇所で ● Javaflow : Continuation の実装で • 上記を Scala + Akka で置き換えられる • 特に Javaflow は 2008 年でメンテナンス止まっ ている
  • 18.
  • 19.
    ML 登録メンバー数 6300 人超 • 2 年半で 15 倍以上の伸び
  • 20.
    1.x と 2.xの比較 1.x 2.x Age (years) Age (years) 2.5 0.5 Pull Requests Pull Requests (Open) (Open) 49 15 Pull Requests Pull Requests (Close) (Close) 473 363 Fork Fork 409 427 Watch Watch 1308 1995 Modules Modules 135 27
  • 21.
    • やはり世間の注目は 2.xに集まっていると言っ ていい状況 • 同時期の 1.x に比べ 2.x の開発はかなり活発 • 特に Pull Request の消化数は驚異的 • モジュールの数も時期を考えれば少なくない
  • 22.
    1.x と 2.xの現状
  • 23.
    1.x の現状 • 1.2.5リリース • 1.2.4 から実に半年かかった • 正式にメンテナンスモードへ移行 • 次リリース( 1.3 )でおそらく終了 • メンテナ ● Nicolas, Peter Hilton, Morten, Takafumi
  • 25.
    1.3 • Hibernate4 対応(JDK5 サポート切り捨て) • DocViewer の i18n • 上記と細かい Bug fix のみ • 例えばマルチ DB 対応などは入らない可能性が 極めて高い
  • 26.
    • i18n ofdocviewer のデモ
  • 27.
    2.x の現状 • 2012/07/08現在、 2.0.2 リリース • ドキュメント未整備(みなさん Wiki を編集し てください) • モジュールリポジトリなし(開発中) • モジュール志向なのにモジュールの作り方分か りづらい?
  • 28.
    2.1 ロードマップ • Scala2.10,sbt0.12 対応 • Play 独自 Promise を Scala 標準 Promise(SIP-14) へ変更 • スレッドプール設定の簡略化 • Scala JSON API の改善 • コンパイルスピードの改善 • 等々
  • 29.
    2.x への要望 • なにかあればぜひ! •Play は OSS です。みなさんの貢献が頼りで す。 • 何か要望があれば本日まとめて伺って、ユー ザーグループの意見としてコアメンバーに共有 します。 • もちろん基本はコードを読んで Pull Request ま たは本家 ML へ直接問題提起
  • 30.
    ありそうな要望 • ロードマップを出してほしい →出た • ドキュメントを整備してほしい • リリースノート書いてほしい
  • 31.
    注目すべき記事 • Sadek が最近立て続けにブログ書いてる •Play と RealTime WebApp ● http://sadache.tumblr.com/post/26784721867/is-socket-pu • Play の Http API ● http://sadache.tumblr.com/post/26258782102/bitsbou t-play2-architecture
  • 32.
    日本 Playframework ユーザー会 •https://groups.google.com/forum/?fromgroups#!forum/play_ja
  • 33.
    日本 Playframework ユーザー会 •不定期に勉強会をやってます • 将来的にはコアメンバーたちを日本に呼ぶこと も構想しています!! • その実現のためには、みなさんのご協力が!!
  • 34.
    日本 Playframework ユーザー会 •ドキュメントの翻訳も行っています! • 現在は 2.x の翻訳を進めています。 • 興味のある方はぜひ ML でお知らせください。
  • 35.