JRubyConf 2010 二日目

[追加] JRubyConf 2010の写真がEngine Yardから公開されました。> http://fb.me/IebGtJxw


さて、と、忘れないうちにJRubyConf 2010二日目のまとめを。


この日は朝10:00スタートとゆっくりめの一日です。まずは、Chad Fowler氏とRich Kilmer氏のコンビで"So You Think You Need a Rewrite?"でした。とにかく、おもしろい!の一言です。このお二人、どうしたらこんなに息の合ったすばらしいプレゼンができるのか教えてほしいくらい、すばらしいトークを見せてくれました。知的エンターテイメント、ですね。結論から言うと、"Never Ever Rewrite"なのですが、ここに至るまでの話題はどれもこの業界の人間が同調しやすいものが選ばれていて、しかも笑えるんです。広大な草原にいる我々プログラマを導いてくれるこの人、といってObject MentorのRobert C. Martin (Uncle Bob)氏が力強い演説をしている最中らしい写真が現れたときには会場から笑いの声が。Fowler氏も名前を出さずに"You should know this person."と。(おぉ、RailsConf行っといてよかった、そうじゃなかったら話題についていけなかったよ、と思った。)また、OMGについては"Oh My God, We set the standard"だそうで。話しとしてはrewriteするとはどういうことかの意義から始まり、次々と新しい言語が登場するわりにはソフトウェアプロジェクトが失敗する割合は変わっていないという事実の紹介、書き換えをするときにはとにかく一度に変更する箇所を小さくというアドバイスなどなど。ただ、大きな書き換えはするものではない、それはあまり報われないということでした。特に、ビジネス系の人たちには嫌われると。Fowler氏の主張は"Code is cheap, knowledge is value."でしたね。


2つ目はRandall Thomas氏による、"Business Ninja 101 - or how tow make money in technology (...without violating geek ethics)"です。こういう視点で話しをしてくれれる人って、あまりいないかも。。。"We get paid to solve problem."ではじまりましたが、職業プログラマの心得えですね。プログラミングとお金の話しです。ただ、お金のためにがつがつやるのではなく、アメリカ人はよく言うのですが、"Do the math." つまり、ちゃんと計算しましょうということです。Problem solvingのためにはどんなツールを選ぶのがいいのか、何はまずいのかをよく知っておくべき、と。本当に使うのかどうかわからないような機能まで盛り込んだりしないで、自分もお客様も無駄金を使わないようにしようではないか、といった話しです。日本とは若干概念が違うので、すんなりうなずけるかどうかはわかりませんが、お金は無限に与えられるわけではないので、限られたリソースの中でうまく解決する、ソフトウェアプロジェクトを成功させる心得としていい話しでした。ちなみに、アメリカでもdeath marchって言うんですね。日本語の造語かと思っていた。


そして、ここでランチです。二日目はラップ(薄皮でレタスやチキン、ハムなどを巻いたもの。二種類あった)とデザートに飲み物。これも、なかなかおいしいものでした。


午後一の話しは Keavy McMinn氏の"Must. Try. Harder." McMinn氏自信がトライアスロンに挑戦した経験を語ってくれたのですが、、、んー、と、彼女の英語とジョークは外国人にはとても難しくて、ほとんど理解できず。。。(あーぁ、もっと英語ができればなぁ、、、)。なんで、理解できなかったかというと、テクニカルな話しではないので、スピーカと共通のバックグラウンドを持ち合わせていない、ボキャブラリが違う、と。で、こういうときに人はこう言う(思う)ものだ的なところがまったくわからないので、ジョークも理解できず。。途中で聞くのをあきらめました。はぁ。とてもemotionalな素敵な話しだったらしく、"話してくれてありがとう"な感じのtweetが多数でした。ビデオをご覧になってくださいませ。(^^;


続いて、Joe O'Brien氏。"Your Customers Aren't Stupid and Your Coworkers Are Not Incompetent"というタイトルで、これもemotional系で、スライド無しのプレゼンで、ちょっとつらかった。でも、こっちはプログラミング系なのである程度理解できました。理解できた範囲で。。。。仕事がうまくはかどらなくてストレスを抱えた日々をすごしているとしたら、それはボスやお客様がモノを知らなすきるのでもないし、プロジェクトの他の人たちのスキルが無いわけでもなくて、コミュニケーション不足なのだから、もっと話しをしてお互いをわかりあおうじゃないかという内容でした。どうせわからないと最初からあきらめていて、話しをしていないのではないか、とも。ステレオタイプというのも前向きに受け止めていて、人間はみんなステレオタイプなところがあるものだから、コミュニケーションによって克服しようではないかとも言っていました。他に、問題を克服してエキスパートになるためのステップの話し、そして、"Respect other people."とハートウォーミングな話しでした。


二日目のここまでは成功への道、的話しが続いたのですが、ここで、がらりと方向が変わって、実アプリの披露となりました。登場したのは、David Bock氏とArild Shirazi氏のお二人。タイトルは"JRuby - Making the World Safe For Democracy." なんだかスゴいタイトルで、このアプリの元々の(?)プロジェクトは国際的な政治系のところに端を発しているようなのですが、アプリの方は、JRubyを利用した多国語化の実例でした。どうJRubyを利用しているのかというと、、、、国際化関係はJavaの方が完成度が高いとうことで、 JavaのResourceBundleとプロパティ(uuencodeしてあるはず。ん?JRubyはここのあたりにバグがあってUTF-8しか使えなかったような記憶が、、)を利用して、表示を国際化したものでした(昔はよくやったなぁ> ResourceBundle。懐かしい)。ヨーロッパの話しをしていたんですが、なぜか、サンプルは日本語でした。多国語化の他にも、J2EEからRubyに乗り換えて、つまり大幅にrewriteして成功した実例であるということで、Fowler&Kilmer氏の"Never ever rewrite!!"の反例なのでした。


JRubyConf 2010のトリを飾ったのは、Bernerd Schaefer氏の"Bringing Java to the Ruby World."なんだか、半分近くが帰っちゃったんじゃないかと思うくらい、人が減ってしまっていましたよ。お気の毒な感じ。日曜の午後だから仕方がないけれどね。で、この話し、残っていてよかった、と思えるおもしろいものでした。CRubyから(JRubyからではない)Javaを使ってやるぞーのgemなんですよ。私が書いたJRuby embed APIとまったく逆方向の使い方で、なるほどなぁ、と思いました。そのgemは "jruby-jars"というもの(なんか、この名前は聞いたことがある気がする。。。なんだぁ?と思ったまま忘れてしまったような)。ほとんどすべてがCRuby上で動いているもので、"nice startup time"というSchaefer氏のコメントには会場から笑いが。かなり改善されましたが、やっぱりJRubyの起動は遅いですからねぇ。で、いろいろとサンプルを見せてくれました。また、JRuby(Java)はRubyとはまた違う問題を解決してくれるので、rubyistJavaも知っておくべきだ、とのアドバイス。Schaefer氏はJavaはあまり経験がないRubyistだということですが、それでも、JRubyを使う利点に注目しているようで、そのためのツールを披露してくれたのでした。



と、こんな感じのJRubyConf 2010でした。
突然、行くことになったのは hiro asari氏が声をかけてくれて、いろいろ取りはからってくれたからなんです。行けてよかった!hiroさんありがとう。