SyntaxHighlighter

2013年9月10日火曜日

Web✕Java - HTML5で進化したWeb標準を、Java技術でどう扱うのか? に行ってきました


・サイト
  http://atnd.org/events/42782

 公開可能資料は後ほど、html5jえんぷら部で公開されるとのこと
 http://www.html5biz.org/

・アジェンダ
  ・今のWeb標準とStruts/Javaの問題(仮)
   出遅れて受付待ちで拝聴できず。

  ・Java EE の概要と HTML 5 の取り組み
   # 資料は9/10午前時点で未公開
   twitterのTLによると近いのは以下らしい。
   http://www.slideshare.net/mobile/OracleMiddleJP/java-ee-7-detail
   http://www.slideshare.net/OracleMiddleJP/java-ee7-html5

  ・Strutsから移行する人のためのJSF基礎
   http://www.slideshare.net/SatoshiKubo1/strutsjsf

  ・JavaプログラマのためのScalaプログラミング
   # 資料は9/10午前時点で未公開

  ・JavaからScalaへ ~ScalaでWeb開発はこう変わる~
   http://www.slideshare.net/takezoe/javascala


・全体的な感想
タイトル詐欺(笑)
html5の話がほぼなかったのは残念。

半分くらいは、Scalaだった気がする。

Scalaは業務では使えていないけど、FWとかはウオッチしているので、実体験としてのplay2、Scalatraの話が聞けてよかった。
竹添さんが言っていたけど、「エンジニアとしては新しいものが出てくる環境のほうがよい」というのは同意です。
Javaは、まだまだアクティブだと思うけど、Seasar2のコミュニティがアクティブだったころよりは熱気というのは冷めている気がする。
(とはいえ、Springは継続的にSpring4まで来ていて十分活用していますが)

ただ、熱気という観点だと、ここ数年はJava/Scalaといった言語面というよりも、CI/DepOpsといった開発サイクル全体への取り組みへと分散して行っているという感触がある。
今まではプログラム中心でアクティブだったけど(ある程度成熟してきたのもあって)、CIやリリースサイクルの高速化、運用の向上といった点がフォーカスされてきているのかなと。

また、Oracleの寺田さんのJavaの話でいつももったいないなと思うのが、過去のアーキテクチャ(Struts/Spring/Hibernate)をよくdisること。
それと比較するよりは、EE7ではこう楽なんですよとアピールして行く方が建設的なのかなと思いました。

今、Springをそれなりに使っている人は、部分活用するにしても、わざわざ全面的にJavaEEに戻ったりはしないと思うので、新規参入者に向けて標準技術がいかに楽できるんですよと言って行く方がいいのかなと思う。
EE7でできることは、すでにSpringでできるか、Springと統合しやすいようなライブラリがあったりするので。

# tomcatと比較するのは、サーバ製品を売っているベンダーということで、理解はできます

同じjava内のStruts、Springと張り合うより、nodejs、ruby、.netなど別の言語からのパイを奪うほうがjava全体にとってはいいはず。


・メモ
・Java EE の概要と HTML 5 の取り組み
  ・Struts1.xはEOL、使い続けるなら自分たちで脆弱性の対応をしなければならない
    ・# ベンダー製品もバージョンのサポート期限やバージョンアップによる検証コストもあるのでそんなに変わるかなという気もしなくもない
    ・# strutsに限っては、枯れている、大手SIerがサポートし続けるだろうというのもあって別枠として捉える方がいいと思う

  ・相変わらず(?)のStruts/Spring/Hibernate dis
    ・# そろそろ未来の話を聞きたいところ
  ・EE7
    ・Oracle寺田さんのブログ内アンケートでは、WebSocket/JAX-RSなどが人気上位
    ・従来型(JSF)、次世代型(WebSocket, JSON, JAX-RS)どちらにも対応している
    ・JMSが改善されているらしい。
      ・# が、Springだと特にJMS用のクラスとか作らないでいいので気にしたことない
    ・EE7は、本番にいきなりはおすすめできない。まずはEE6から試してほしい。
  ・GlassFish4.0ではEE7の機能はお披露目的な感じで、本番環境ではまだあやしい部分があるとのこと
    ・http://yoshio3.com/2013/06/11/glassfish-v4-0-released-0611/
    ・# APIや仕様的に気になるのが多いけど、はっきりと本番で使える品質ですって言われてないと、標準を採用基準として考える人は(標準なのに)採用しづらいのでは


・Strutsから移行する人のためのJSF基礎
  ・JSFの拡張ライブラリ、Prime Faces、Rich Facesがある
   ・Prime Faces より Rich Faces のほうが、海外の認知度は高い?
  ・モダンブラウザしか対応されていないケースが多い(業務システムには少し敷居が高い)
  ・JSF1は、メモリを大量に積んで下さい(Struts時代の2倍から10倍ぐらい)
  ・# struts->JSFは需要あるのか。自分はthymeleafに流れてしまった。


・JavaプログラマのためのScalaプログラミング
  ・Java/Scalaでの記述比較中心
    ・# が、文字が小さくてスライドがあまり見えなかったのが残念。。
    ・# 資料公開されたらゆっくり見てみたい
    ・# groovy/gradleで文法が似てる部分もあって、慣れればすんなり読めそう
  ・traitは、mixin(別のオブジェクトの実装を持てる)できる機能。(という理解でいいのかな)
    ・java8ならインターフェースのデフォルトメソッドが近い気もする


・JavaからScalaへ ~ScalaでWeb開発はこう変わる~
  ・play2、Scalatraの話
  ・Javaの(これ以上の生産性向上の)限界を感じた、らしい。
    ・Seasar2 + Click + S2JDBC からScalaにポーティング ->コード量40〜50%減。
    ・play2、ノンブロッキングIOで大量アクセスをさばきやすい
      ・が、IOがノンブロッキングでも、ボトルネックはやはりDB待ちのケースが多い
      ・viewテンプレートもタイプセーフなので、実行前にエラーがわかる
      ・# これはけっこう惹かれる
    ・play2のwarプラグインは茨の道(はまりやすい)
    ・play2 -> BtoC(大量リクエストをさばくもの)
    ・Scalatra -> 業務アプリ向き(Javaからポーティングしやすい)
      ・# javaから行くなら、play2よりScalatraのほうが親和性がありそう