業務システムエンジニアのためのHTML5勉強会#04 Web✕Java - HTML5で進化したWeb標準を、Java技術でどう扱うのか? -

業務システムエンジニアのためのHTML5勉強会#04 Web✕Java - HTML5で進化したWeb標準を、Java技術でどう扱うのか? - に行ってきました。

HTML5の話はあまりなくて、JJUG的な勉強会でしたがw、気になってたけど手を出してない技術の話をいっぱい聞くことが出来ました。
Tomcat、Struts、Seaser、Springあたりはもう時代遅れ的な話がちらほらあって、いろいろ変わってるんだなぁとか思ったり。

Java EE の概要と HTML 5 の取り組み

日本オラクル シニアJavaエバンジェリスト 寺田佳央 さん

Tomcat、Strutsやめよう運動をしてる。

Struts1.xはサポート終わる。
世界のトレンドではStruts1.x、2.x共に選ぶ人が減っている。

Struts、Spring、Hibernateはすべて作ってるところが違う。
システム納品後の瑕疵担保期間はいいが、それが終わったら誰が見るのか。
セキュリティアップデート等でどれかがバージョンアップしたら他との相性はだれが保障するのか。
ほとんどのエンドユーザはそんなことは理解しないで使っており、結果的に大きな保障問題に発展することがある。

Java EE6では必要なものがオールインワンですでに入っている。
脆弱性はパッチを当てればOK。
⇒独自技術から標準技術への移行

JavaEE7はJavaEE6と比べて注目度がとても高い。
ローンチ・イベントに世界から1万人超が参加。

Java EE6までは、アプリ内でスレッドを作るのが禁止されていた。
スレッドがアプリサーバーとは違う環境で動くようになっており、例えばWebアプリを停止してもスレッドが動き続けるので危険。
JavaEE7からは安全にスレッドが使用できるようになった。

Strutsから移行する人のためのJSF基礎

グロースエクスパートナーズ株式会社/JJUG幹事 久保 智 さん

JSFとは
2004にv1.0がリリース
Strutsの開発者が使用策定にかかわっている。

Ajax前提に作られているので、リッチなUIを作りやすい。
Strutsに骨子が似ているため、理解しやすい。

JavaScriptレスなAjaxを使用したUIが作成可能。
JSFはIE8ぐらいから動くが、プラグインを使用すると最新のブラウザでないと動かないことがあるので注意。

JSFの1.xと2.xは別物
1.x使うくらいならStrutsの方がまし。

managed-bean

StrutsではActionFormとActionで分かれていた入力値処理を1つに纏めた。
XMLによる設定ではなくアノテーションで指定。

XML+タグライブラリ

JSPと違い、Servletに変換されなくなった。
エラー時のスタックトレースにXHTMLの行数で表示される。

JSF Validator + Bean Validator

JSF Validator:バリデーションを画面に直接書く
Bean Validator:プロパティファイルに書く。アノテーションベースのエラーチェック

JavaプログラマのためのScalaプログラミング

ストーンシステム 代表 石黒尚久 さん

ScalaとJavaの違い

  • 文末のセミコロンは不要
  • publicはデフォルトなので不要。(予約語ですらない)
  • System.out. がデフォルトインポート済みなので不要
  • returnは書かない
  • getter/setterは不要。自動で作成される。
  • 変数定義が違う
    var data: int = 0 // 型が後にくる
    var data2 = 100 // int型がわかっているので省略可能
  • メソッドの書き方が違う
    表記上の省略がいくつかあるので、同じ定義でも書き方が何種類かある。
  • 引数にデフォルト値の指定が可能
  • ScalaはJavaよりも純粋なオブジェクト指向。プリミティブ型もオブジェクト

他にもいろいろ
Javaの冗長な記述を無くそうとしているのではないか。

石黒さんの書かれた本

速攻理解!JavaプログラマのためのScalaプログラミング

速攻理解!JavaプログラマのためのScalaプログラミング

JavaからScalaへ ~ScalaでWeb開発はこう変わる~

NTTデータ先端技術 竹添直樹 さん

Javaで生産性上げるのに限界を感じてScalaに取り組み始めた。

Javaアプリを移行したらコード量が40~50%削減。想像以上に減った。
スクリプト言語のようなFlexibilityとJavaのようなSafetyが特徴。

業務でも十分に使える言語

Play2

一番メジャーなフレームワーク

タイプセーフでWebSocketも簡単に使える。

ステートレスでサーバーサイドで値を持たない。セッションIDだけCookieに渡してデータはKVSとかに置いたり、クライアント側で管理したりする。
warにするプラグインがあるが、茨の道なのでやめたほうがいい。
ステートレスなので、既存システムをもってくるのには向いていない。

竹添さんの書かれた本

Scala逆引きレシピ (PROGRAMMER’S RECiPE)

Scala逆引きレシピ (PROGRAMMER’S RECiPE)