2011/07/17

Ruby Kaigi2011に参加して(二日目)

今日のRuby Kaigiでは、ライブラリ、テストについてのセッションを中心に聞きました。
Rubyには、RubyGemsという、アプリケーションやライブラリを管理するツールがあり、世界中の開発者が作成したライブラリを簡単に手元のシステムに組み込むことが可能です。

Eric Hodel氏は、ライブラリを作成するにあたっての注意点や、コツをたくさん紹介しました。ライブラリ開発時に実装したほうがいい機能などから、公開後、重要となるユーザーとの情報共有の手法など多岐にわたりました。

Richard Huang氏は、手元のRailsアプリケーションが、ベストプラクティス(最適な手法)で記述されているかどうか、調査するライブラリ「rails_best_practices」を紹介しました。外形上の問題だけでなく、構文解析を行うことによって、プログラムの流れにまで踏み込んで調査することが可能です。

Rubyでは、各要素の影響範囲がはっきりしているため、複雑な拡張ライブラリも、読みやすく記述できることが大きな利点だと言えます。「rails_best_practices」でも構文解析では別の作者のRubyライブラリ「ruby_parser」を利用して実現しています。

午後聞いた、テストの話やRubyのJIS規格化の話はまた別の機会にご紹介できればと思います。

2011/07/16

Ruby Kaigi2011に参加して(第一日目) その2

今日、参加したRuby KaigiのAaron Pattersonのキーノート、午前中のRubyの未来についてのセッションは考えさせられる内容でした。全体通して、剛柔併せ持った発表内容に、まったくもって魅了されました。目頭熱くなり、頭の中熱くなり、色々刺激的でした。

その中で、一番私が関心を持ったのは、Rubyの開発管理についてのアイデアでした。Aaronの話の中でも、「responsibility to communicate(対話の責任、説明の責任)」という提案は重要だと思いました。

世界で5本の指に入るくらい注目される言語に成長したRubyにとって、これまで以上に説明する必要は高まるでしょう。
Rubyのコア開発チームとして、世界の開発者に対して質問に答えられるスポークスマンを配置する必要があるかもしれません。チケットベース、メーリングリストがあるから、と言うよりは、podcastとか少し距離感がある人にも届くメディアを使う時期だと思います。

その後の、コアコミッタによる未来のRubyについての話も面白かったです。8月末にリリース予定というRuby1.9.3を土台にして、その未来はどうなるのでしょうか。

Ruby1.9.4なのか、Ruby2.0なのか。そしてそのバージョンは、どんな思想でRubyの世界が構築されるのでしょうか。
誰も答えを持たない(Matzにも)そんなわくわくした謎掛けは、夏の夜長に思いを巡らすのに最適なのではないでしょうか。

一日で頭の中が熱くなっています。
さあ、あと二日どんなサプライズがあるのか。とっても楽しみです。

Ruby Kaigi2011に参加して(第一日目)その1

今日は、Ruby Kaigi 2011に参加しました。3日間連続開催という日本でのコンピュータ言語に関するカンファレンスでは、かなり大規模なイベントです。

初日の今日は、Rubyの開発者の一人Aaron Pattersonの基調講演からスタートし、開発チームによるRubyの未来についてのセッションの後、2つのホールを利用しての参加者によるセッションが続きました。

午後のセッションでは、クックパッドの舘野さん、GitHub(ギットハブ)のCorey Donohoeさんのセッションに参加しました。私の関心分野でもあるウェブ開発の話だったので、とても面白く話を聞きました。

舘野さん、Coreyさんの話で共通して感じたのは、継続的に顧客に価値を提供するために、貪欲に新しい技術を取り込んで行こうとしている姿勢です。クックパッド、ギットハブとも様々なツール(オープンソース、有料サービス問わず)を活用し、世の中になければ自作していくことが徹底しています。

面白いのは、両者の顧客層で、クックパッドは、30代女性の半分は利用しているというサービスであり、一方、ギットハブは、30代女性の大半はその存在すら知らないと言うサービスなのです。(ギットハブの名誉のために言っておきますが、会場内での利用者は9割を超えていました。)

つまり、顧客の要望が大きく異なっていても、開発側のベストプラクティス(最善の手、定石)にはそんなに違いがないのです。

実際、ギットハブの手法(一日に何回もデプロイ(システムの更新)できるし、実際する)と言うのは、通常のウェブサービスではびっくりするような斬新な内容ですし、クックパッドのRailsのExtensionの機能をフルに使って、試験的なサービスを限定的に安全に提供するというのも、私にとっては新鮮な提案でした。

しかし、現在、動くプログラムに追加機能を追加して、やっぱり動くようにするということは、どの会社にも共通する課題ですし、そのためのいろいろな手法の大半は共通しているのです。

CI、テスト、自動化、ハートビート、LVS、モニタリング、memchached・・・。

クックパッド舘野さんの言葉を借りると、「定石をきちんとやっておけば大丈夫」なのです。とても、刺激になった午後の2セッションでした。
Aaron Pattersonのキーノート、午前中のRubyの未来については、次のエントリーで書いてみます。