JavaOne 2013 サンフランシスコ報告会 Tokyo
JavaOne 2013 サンフランシスコ報告会 Tokyoに行ってきました。
Java SE のアップデート(櫻庭 祐一氏)
Nandini Ramani 副社長の話
JavaSE/ME統合自体は2011年に発表していること。
重要なのはNandiniがIoTを担ぎ出してきたこと。
→Oracleが力を入れている。
教育用にRaspberry Piはくる。
LEGO Mindstorm、Arduinoも若い人にはいいのでは。
JavaDayTokyoにはロードマップにJDK8.1と8.2があったが、今回は飛ばされている。
JDK8.1に書いてあったJMC 6が個人的に重要。JDK8に入ってくるかもしれないが、おそらく9ではないか。もしくはEE8
Brian Goetzの話
Java 並行処理プログラミングの本の作者
Java並行処理プログラミング ―その「基盤」と「最新API」を究める―
- 作者: Brian Goetz,Joshua Bloch,Doug Lea
- 出版社/メーカー: ソフトバンククリエイティブ
- 発売日: 2006/11/22
- メディア: 単行本
- 購入: 30人 クリック: 442回
- この商品を含むブログ (170件) を見る
Project Lambdaとは言っても
- Lambda式
- 型推論
- Method Reference
- Default Method
- Stream
といろいろある。
Stream
注目すべきはStream。
マルチコアのためにStreamが重要。
Streamを実装するにも匿名クラスが面倒なのでLambda式が必要となった。
Streamは
- 機能拡張版Iterator
- 関数型言語の考えを導入
Stream自体は値を持たず、リストをなめていくだけ。
xxx.stream()
.filter(p->p.isXX())
.map(p->p.getXXX())
.redue(0, (x,y)->x+y);
の場合、実際のfilterとmapの処理はreduceの際に行われる。(処理遅延)
これによりパフォーマンスがかなりよくなっている。
Stephen Colebourne, Roger Riggsの話
Date&Time APIの話
Stephen ColebourneがDateとCarendarを嫌ってるので、全て置き換えたがっている。
Date/Calendarの置き換え
機能豊富/クラス大量
→いろいろ結局みんなZonedDateTimeを使うのではないか。
Alex Buckley, Joseph Darcyの話
Enhanced Metadataの話
要するにアノテーションのこと
SE8では、@Pathが複数書ける。
@Path("xxx"), @Path("yyy")
class XXX ...
いろんなところにアノテーションが入れられるようになった。
書けるようにはなっても、それをチェックするところがないから微妙。。。
NullをListに入れたくない場合
SE7
@NonNull List
SE8
List<@NonNull String> f;
John Rose, Gary Frost
Project Sumatraをやってる2人
Project Sumatra
GPGPU for Java
まだOracleとAMDの方向性が合ってない印象
Mark Reinholdの話
Project Jigsawをやっている人
Project Jigsaw
Javaをモジュール化しましょうという話。
jlinkというコマンドが新しくできた。
モジュールをリンクできる。
正直まだ微妙な感じ。
まとめ
JavaSE8
とにかくLambda
Date&TimeAPIもにぎわってた
JavaSE9
未だに曖昧模糊
JavaFX のアップデート(青江 崇氏)
JavaFXとは
モダンなGUIツールキット
- FXMLの導入によるプレゼンとロジックの分離
- アニメーション、エフェクト
- CSSによるスタイリング
- WebKitベースのブラウザコンポーネント
SE8からは標準コンポーネントに
FXML(HTMLっぽいやつ)の属性とJavaのプロパティが自動で紐付いたりする。
JavaFX8の新機能
- 画面のテーマが新しくなった
フラットデザイン風のとか - Lambdaを使用してコンパクトに書ける
- 3Dを本格的に使えるようになった。これまでは限定的なサポートだった。
- DatePickerの追加 Date&Time APIにも対抗
- SwingNode
JavaFxの上にSwingが乗せられるようになった
SwingコンポーネントをSwingNodeでくるんで追加できる - 基本APIの強化
- フルスクリーン機能の強化
- 印刷APIの追加
などなど
JavaFXの向かう先
- 採用事例が増え、ライブラリ、フレームワークも増えている
- Windows、Mac、Linuxすべてで使えるGUIツールが減ってきている
AdobeAirもLinuxを切り捨てたし、最近はAdobeがあまり力を入れていない - 組み込み機器向けGUI
- IoT時代におけるGUI開発の主役になる可能性も
Java EE のアップデート(井上 誠一郎氏)
パーフェクトJavaの著者
パーフェクトJava (PERFECT SERIES) (PERFECT SERIES 2)
- 作者: アリエル・ネットワーク株式会社,井上誠一郎,永井雅人,松山智大
- 出版社/メーカー: 技術評論社
- 発売日: 2009/09/24
- メディア: 大型本
- 購入: 26人 クリック: 360回
- この商品を含むブログ (35件) を見る
EE7の目玉機能
- WebSocket
- JSON標準API
- Java Batch
- Concurrency Utilities
CDI(Contexts and Dependency Injection)
- DIの標準規格
- JavaEE6で登場
JPA(Java Persistence API)
- O/Rマッパーの標準規格
- Hibernateも今ではJPA実装の一つ
- JPA実装は独自実装を持つのが実情
JAX-RS
- RESTfulなURLルーティングやHTTP処理の標準規格
- アノテーションでURLとクラスやメソッドを対応づける
- EE7のJAX-RS2.0で非同期APIとクライアントAPI追加
JavaOne2013のJavaEE概論
- ProjectAvatarのオープンソース化が発表されたが、それほど盛り上がらず
- EE全体的にも盛り上がらず
- EEの扱いが軽い印象
- MEにスポットライト
Java EEセッションのピックアップ
Java Caching
- 12年かけてJCacheのスペックが纏まりそう
- 今年の12月にスペック確定予定
- javax.cacheパッケージのAPI
- アノテーションはEE8とSpring4で実装予定
- 実装:Ehcache、Oracle Coherence
JTA(Java Transaction Processing)
- JTAが1.1から1.2に10年ぶりのバージョンアップ
- CMT(コンテナによるトランザクション管理)がEJBの専売特許ではなくなる
- CDI管理のBeanをCMT可能
- 要はSpringの@Transactional
WebSocket
- プログラマブルAPIとアノテーションAPIの両方あり
- 同期処理APIと非同期処理APIの両方あり
Jersey 2 MVC
- JerseyはJAX-RS規格の実装
- JAX-RS自体はMVCではない
- EEのMVCはJSFなので、JAX-RSがそこは踏み込めない
- Jerseyは独自拡張でMVCを提供
- Jersey MVCはSpring MVCと同じアーキテクチャ
- ビュー処理のサポートテンプレートエンジン:JSP、Freemarker、Mustache
Spring
- Spring Source社からPivotal社へ
- ソースコードがGitHubへ
- Spring4.0は、Java8およびJavaEE8対応
- SpringのJdbcTemplateなどはJava8のLambdaと相性が良い
- WebSocketやJava BatchでJavaEEと協力関係
- Spring DataでNoSQLやSolrに対応
- Spring for Hadoop
- Spring XD(ストリームデータ処理)
- WebSocket上にSTOMP(Simple(or Streaming) Text-Oriented Messaging Protocol)