札幌 Java カンファレンス 2011開催しました

札幌 Java カンファレンス 2011 with TDD BootCamp 札幌サテライトを開催しました。最終的には、来場者数55名、事前キャンセル6名、ドタキャン1名となりました。スタッフや講師を除外しても50名以上が参加され、本当にありがとうございます。当日にはポストできませんでしたが、簡単にレポートをまとめておきます。
今回のイベントは、Java7のLaunchイベントの一環として札幌で何かできないか?という相談を寺田さん(@yosioterada)から頂いた事がキッカケです。そこで開催しなかったら、札幌Javaコミュニティを立ち上げた意味がありません。快諾し、日程を調整した結果、7月9日開催となりました。
ところが、TDD BootCamp東京も運悪くバッティング。実は参加を企んでいたのですが、未遂に終わります。しかし、各地でサテライト開催の企画があがっていたため、札幌も便乗する流れになります。実は、ここにはちょっとした目論見もありまして、「札幌 Java カンファレンス 2011」としてはJava7のローンチイベントであるため、基本的にはTDDに興味がある人よりもJavaに興味がある人、特に仕事でJavaを使っているような人がメインターゲットのイベントです。なので「そんな人にTDDに興味を持って貰うのは面白いな」と考えました。結果的にはこの目論見は大成功となっています。会場の半分くらいの人は「TDDってなに?」状態だった所に、TDDを布教できた事は大きな効果があったと思います。アンケートを見ても、TDD関連のセッションは十分に満足して貰えました。

テスト駆動開発について - 和田卓人(Ust配信)

東京からのUst配信でお送りしました。内容としては、TDD Boot Campの紹介や開催の歴史、テストの再分類とユニットテストの位置づけ、テスト駆動開発の目的・こころ・効果といった内容です。何度聞いても為になる話ですね。こちらはUstのアーカイブが公開されていますので、興味のある人は見るのが一番です。

Trac/SVN/Jenkins/Maven/JUnitで構築する開発スタイル - 渡辺修司

続けて自分のセッションです。枠としては TDD Boot Camp札幌サテライトの地元発表的な位置づけですが、Javaカンファレンスの一環ということで、Javaにスコープを限定した中での3本柱に関するセッションです。和田さんの話す内容についてはだいたい知っているので、それを踏まえ、あえてやや実践的でツール寄りの内容となっています。内容はタイトルの通り、チケット管理・バージョン管理・テスティング・自動化を広く浅く扱っています。また、各ツールの紹介だけではつまらないので、導入事例の紹介として苦労話や導入していくコツなんかを盛り込みました。資料は公開していますので、興味のある方はどうぞ。

Java SE 7 で切り開く新しい Java の世界について - 寺田佳央

Java7のローンチイベントですので、メインセッションの1つです。Java7のリリースに向けて、これまでのJavaを振り返り、どんな変更がJava7で行われるかが主な内容です。Java7は、6年ぶりのJavaのメジャーバージョンアップですが、細かい言語仕様の変更やJVMがより他言語に対応するような方向で進んでいるというのを認識できました。特に最近はScala, Groovy,JRuby, JythonなどJVMで動く言語の勢いが強くなっています。Java自体はより使いやすくという点では進化していますが、Javaを中心とした環境の広がりは興味深い傾向でしょう。

Fork/Join Framework。そしてLambdaへ。 - 櫻庭祐一

続けて櫻庭さんによるJava7のセッションの1本目、並列処理関係のお話です。なにはともあれ、櫻庭さんの話は面白くて、解りやすくて、そして美味しそうでした。内容としては、Java7で追加されるFork/Join Frameworkが必要になった経緯と仕組みに関する内容がメインです。1990年代から2005年くらいまで続いた計算機の処理能力の向上は頭打ちとなり、マルチコア時代になった今、求められている並列処理の方式も変わってきているというのが肝となっています。分割して処理し、最後に上手くまとめるという方式が計算機を効率よく使えるため、再帰処理などうまく分割できればより効率よく性能を発揮できるわけです。そしてそれを上手く使うためにLamdaが導入される(Java8)というストーリーは解りやすくためになりました。

もっとNew I/O - 櫻庭祐一

さらに櫻庭さんによるJava7のセッションで、New I/O の話です。こちらは主にファイルシステムAPIの紹介と、New I/Oは協力だよという話でした。java.io.Fileは本当に貧弱なAPIでファイルのコピーや移動すらも面倒なコードが必要であり、ほとんどの会社で独自のFileUtilやFilesといったクラスを作っているかと思います。パーミッションの変更やファイルのメタデータもこれまではサポートされていなかったのは不思議なくらいです。これらが、"やっと"提供されるわけです。実務的なJavaプログラミングで一番恩恵を受ける部分かと思います。

もう Java EE 6 でいいんじゃない - 寺田佳央

次はエンタープライズJavaの話です。一昨年リリースされたJava EE 6での変更点を紹介されていました。自分もかつてはEE系の仕事もやっていたのですが、気付けばEEといってもServlet/JSPレベルの業務系が主流となり、最近ではGAE以外でJavaのウェブ系はほとんど触っていません。先日もウェブ系のサービスを作りましたがDjangoPython)です。とはいえ、参加者はそれなりにEE系の人が多いのかな?と思いきや、あまりエンタープライズ系のJavaを触っている人がいませんでした。そんな流れだったので内容としては高度すぎてあまりついていけないって感じだったと思います。Seasar2系などは知っている人は多かったため、やっとJavaEEがおいついたのかーといった反応が目立っていたかと思います。軽くなったとはいえJavaEEは重厚ですね。適用範囲を考えればそうでもないのですが。

JavaFX 2.0 – リッチクライアントのためのUI基盤 - 櫻庭祐一

個人的には一番期待していたセッションです。というのもJavaFXの話を聞きたいがために櫻庭さんに札幌まで来て頂いたと行っても過言ではありません(本当にありがとうございます)。内容としては、JavaFX1.0がどうなったかという黒歴史の紹介とJavaFX2.0がこれからどこに向かっていくのかという点がメインでした。簡単にまとめると、JavaFX1.0はなかった事になり、停滞しているSwingを置き換えるような位置づけとしてJavaのデスクトップアプリに最適化されていくようです。とはいえ、会場にディスクトップJavaをやっている人など自分の会社の関係者くらいしかいませんでしたが(苦笑)Swingもそうですが、マルチプラットフォームでアプリケーションを作れるってのは大きなアドバンテージなので上手く進化できればいいと思います。まあ、HTML5があればウェブアプリでいいじゃんという話はあるのですけど。

昨日までは Tomcat 今日からは GlassFish - 寺田佳央

ラストセッションはGlassFishです。TomcatではなくGlassFishを選ぶ理由とv3.1の新機能の紹介がメインです。自分も2008年くらいからよくGlassFishは使っていますが、ちょうど業務系Javaアプリから離れはじめた時期であり、あまり使っていませんでした。とはいえ、起動の早さや管理コンソールの使いやすさは体験しており、業務で利用する機会があれば使いたいと考えていたところです。また、自動増殖クラスタなど今風の機能が強化されている点についてはTomcatではない部分だなと思います。今後はそのような今風のシステムに必要な方向で進化していくようです。尚、寺田さんは1日3本というセッションとなりました。本当にお疲れ様です。

懇親会

懇親会は舟盛りメインです。まさか活ウニがでてくるとは思いませんでした。というか、活きが良すぎて船から逃亡する始末。前半は撮影しながら黙々と食べ続けていた気がします。値段としてもあの内容で4000円(飲み放題込)は安いなーと思いました。北海道風の懇親会をするのには幾つか候補がありますが、当面はあの店で決まりでしょう。

総評

というわけで、朝から夜まで濃厚な内容でお送りできました。アンケートの内容も、まずまずの内容で良かったと思います。北海道ではJava屋によるJavaの話題をメインとしたJava屋のためのイベントは行われていません。一昨年はひがさんを招いてSeasar系の話を、去年は矢野さんにWicketの話題と小川さんによるGAEの話題とやってきていますが、年に1回はこのようなJavaのイベントを開催し続けていきたいですね。