Java言語入門 番外編(Java8の展望)に参加してきた

http://tohoku-dev.jp/modules/eguide/event.php?eid=135


寺田さん([twitter:@yoshioterada])直々にお話を聞けるというので参加してきました。仙台の勉強会は比較的おとなしくなりがちなので、寺田さんが空回りしないように一生懸命twitterで援護射撃したよ。:-)
#毎度のことながら運営の[twitter:@MasanoriMurakam]、[twitter:@i_takehiro]、お疲れ様でした。


テーマは「Java8の展望」で、JavaOne 2012 Tokyoの報告を兼ねつつと言った趣でプレゼンは展開。プレゼンに使っていた資料はたぶんこれだったと思う。
JavaOne 2012 Tokyo 外人スピーカー&ご注意事項 | 寺田 佳央 - Yoshio Terada


いっとう最初に余興で流していたビデオはこれですね(当日は字幕版を流してもらいました。
Java 関連ビデオのご紹介 | 寺田 佳央 - Yoshio Terada


「The "Java Life" Rap」を観ていて、砂をかむような思いでJavaをやっているのは世界共通なのか?なんて思ってみたり、あとちょっと脳みそダダ漏れだったので、知らないうちにこんなツィートをつぶやいていたみたい(無意識って怖いわー。


JavaSEの今後

そんでまあ本編。



JavaOne 2012 Tokyoは大成功でOracle内部でも日本におけるJavaの関心の高さが再認識されたとかなんとか。でもさ、わざわざJavaOneに行く意識の高いエンジニアはさておき、仙台くらいだと


なんてのも珍しくないよね。この辺は、新しいのが良くて古いのはダメと一概に言えないところもあって、まあ悶々とするところではありますよっと。
昨年Java7が登場したので、当然今年の話題はJava8となるわけでして。Nashornとかinvokedynamicなんてのがキャッチーな話題になるよね。要するにJVMによる動的言語サポート。動的言語といえばいろいろありますよねって言ってたけれど、オレは聞き逃さなかった!



node.js狙いがあるのでJavaScriptのほうに興味があるんだと思うけど、なぜ動的言語を列挙する際にいの一番にGroovyと言わんのじゃぁ。(´;ω;`)ブワッ

ちょっと放心してしまい、気がついたらHotRockitとかLambda、Jigsawとか話し終わってた。個人的にはHotRockitは歓迎(G1コレクタとかどうなるんだろ?)。Lambdaはふーんって感じで、Jigsawはびみょー。



あとJavaFXの話で、Swingがすでにメンテナンスモードになって、今後JavaGUIJavaFXを使うことになるって話がセンセーショナルだった。



続いてJava9と今後のバージョンアップ予定の話。なんどかtwitterのTLなんかで話題になってるけど、Java6は今年の11月でEOLになるって話と、今後2年おきにメジャーバージョンアップしてきますよって話。



Sun時代の延長サポートの「Java for Business」相当のサービスはOracleになってもあるようなので、何らかの理由でJava7に切り替えできない場合は、それを利用するかアップデート出ないことを承知で塩漬けするかのどちらかになるかと。でもまあ、本番環境とかいろいろしがらみあってそう簡単に切り替えなんかできないよなって。実際やってみりゃ大した問題もないと思うけど、そう簡単には行かない面倒臭さよ。:-)


(おまけ)


JavaEEの状況

よせば良いのに、JavaEEの話もしていただいたw。興味深かったのは、Strutsの利用率。全世界だと1%程度なんだけど、日本国内に限ると30%になるとか(数字はうろ覚え)。日本終わってる。\(^O^)/オワタ
ただ、自分のまわりに限って言えば、Strutsすら流行ってないんですけどね。



要するにJavaEE6になってずいぶん変わったのでJ2EEで印象悪くした人たちも、だまされたと思ってJavaEE使ってみてよって話。それはわかる。



J2EEが登場したときは、1も2もなく「J2EEEJB)を使うこと」が非機能要件に含まれてる案件は珍しくなかったのに、JavaEEになってそれが復活することって無かったなー。なんでだろ?あとJ2EEは重すぎたんや、と提供元が心を入れ替えたのに、J2EEパターンとか要らんもんばっか浸透しちゃったのも悲しい話。なんて思うと、J2EEへの怨み言がふつふつと蘇るw


JavaEEJSF/JPA/CDI/etc)は全体的に悪くないと思うのだけれど、情報の少なさが普及をさまたげてる1つの要因なんだろな。


とか残念でならない。あと国内事情固有の基礎情報不足とかも。ってJ2EE自体にさんざん検証した文字コードマッピング問題が再現しうるかどうか程度なんだけどね。1〜2週間もあれば検証できるのだけれど、その時間や機材すら調達できないのが現状だったり。:-(
あとJavaEEの普及を妨げているのは、それ以外の実装技術で構築された既存システムの存在だよね(と、その技術で育成したエンジニアの活用もか)。これらについては、逆に海外事情のほうが不思議で、向こうだっていわゆるレガシーなシステムやエンジニアがいるだろうに、なぜにそうも簡単に新技術に移行できるのか不思議でならない。まあ、JavaEEの情報が少ないといっても「日本語の」って話で「英語の」情報は結構豊富にあるから学習する事についての不便は少ないんだろな。あとは、よくもまあ古いシステムを思い切って刷新してくよなぁって事か。


JavaEE7の話で興味があったのはサービスプロビジョニングとマルチテナンシーの2つ。J2EEの登場によって、パッケージングとデプロイメントという作業と役割を分けたんだけど、個人的に役割を分けたのはよけーなお世話だと思ってた。たまに、デプロイメントをインフラ(or 運用)屋さんに任せる事例があるんだけど、アプリケーションサーバの管理ができるインフラ屋さんって希で、大抵トラブルの元になるのよねん。そうゆうケースだとアプリケーション屋さんもパッケージング(warかear作るだけ)しか知らなくて、アプリケーションサーバのリソース管理がすげーおざなりになる。
そんなのを尻目にRailsとかGrails、Jenkinsとか見てたので、


と思った。ホント、そのアプリケーションが使うJDBCドライバすら一緒にパッケージングしてしまいたいくらいなのだ。アプリケーションサーバのリソース管理とかある意味で邪魔。:-P


とまあ、いろいろ文句もあるけれどJavaEEそのものはキライじゃないです。がJavaEEを実適用する上で気になるのがバッチの扱い。JPAがJavaSEで使えるのは分かったんだけど、EJBとかCDIで作ったコンポーネントバッチ処理で流用できるかどうかが気になるところ(流用できるなら流用したい。そんなわけで、


NetBeansを使ったJavaEE6のデモ


というのは冗談として、



JavaEENetBeansをインストールすればGlassfishも入るし、JavaDB(Derby)のサンプルDBもサンプルデータ付きで準備されてるし、JSFJPAも追加ダウンロード不要ですぐ使えるので、NetBeansとJavaEE6の相性は抜群と言えますね。
裏を返すとNetBeans以外でJavaEE6のお試しやると、7割くらいは環境設定でサジ投げるんじゃないかな?(参考:当社比w


EJB3に限らず、コンテナ管理トランザクション(CMT)はEJB2の頃から唯一の利点だと思うのですが、ところがどっこい


なんてのもありますんで、アピールが難しいですよね(白目。


あとfacelet。JSPはクソだと思うんだけど、その答えがfaceletってのも力が抜けるというかなんというか...。JavaEEの狙いがBtoCなスタートアップ向けというより、BtoBなえんたーぷらいず(なぜか変換できない)向けだとすると、xhtmlでひたすらタグ打つより、ポトペタで画面作れるほうが嬉しいなって。


所感

実際使ってみないと何ともなところもあるけど、そんでもJavaEEJ2EEより大分マシだと思う。何を使ったって多少の不満はでるのだから、だからといって似て非なるモノを再発明するよりは、JSFなりJPAを補完する何かを作った方が健全だと思う。そんでも問題になるのは、どうやって既存のモノをJavaEE化していくかなんだよな。それは自分らの仕事なんだけど、ウチの会社もStruts推しってのはナイショだ。:-P


SunがOracleに買収されてJavaはどうなるんだろ?と危ぶんでた時もありましたが、寺田さんを見てると、そんなの杞憂に過ぎないなって思いました。



寺田さんに会うのは約1年ぶりになりますが、こうして先端行ってる方と直接お話しできる事はとても刺激になりました。来週からまた普通の日常に戻りますが、次にお会いできるときもイチャモンつけれるバックアップできるよう、ヒマ見てこつこつJavaEEの素振りをしとこうと思います。:-)


ps.
文中にでたサカナ本とはこれのこと(ステマ

Beginning Java EE 6~GlassFish 3で始めるエンタープライズJava (Programmer's SELECTION)

Beginning Java EE 6~GlassFish 3で始めるエンタープライズJava (Programmer's SELECTION)