RubyKaigi2008 スペシャル★レポート

RubyKaigi2008 2nd day Photoレポート[随時更新]

この記事を読むのに必要な時間:およそ 5.5 分

本日(6月22日)行われている,RubyKaigi2008 2nd dayのPhotoレポートです。随時,更新予定です。本日もメインセッションを中心にお届けします。

各セッションの模様は,角田さんにレポートしていただきました(角田さんのスケジュールの都合上,大場さん・高井さんのセッションまでのレポートになります)。

2日目のセッションは朝9時という早い時刻から始まりましたが,大ホールには多くの人が集まっていました。

拡張ライブラリの書き方講座(artonさん)

2日目の最初のセッションは,田島あきお(arton)さんの「拡張ライブラリの書き方講座」です。

まずは1999年に発売された『オブジェクト指向スクリプト言語Ruby』(アスキー)から引用し,拡張ライブラリの定義を確認しました。

  • CまたはC++言語で記述されていて,Rubyに組み込むことのできるライブラリ
  • 重い処理の本質的な部分を任せる
  • コンパイラ型言語によるプログラムと大差ない実行速度と比較にならない開発効率を両立させることも可能

1から10までの数字を出力する処理を,Rubyのコードと,Ruby APIを使ったCのコードで示し,Cで書かれたコードが余計な処理が入らずいかに速いか,またCで書いても余り速度に大差がない箇所もあることを説明しました。

次に,拡張ライブラリを書くにあたっての情報源として,1995年以降全く更新されていないREADMEや書籍,関連ヘッダファイル,技術などを紹介しました。

そして拡張ライブラリの配布方法を説明した後に,拡張ライブラリの雛形を生成する「extrails」という自作ライブラリのデモを行いました。デモ中,typoにより上手くデモが出来ずに悩んでいる間,後ろのスクリーンに移っているIRCログでtypoの指摘と「うしろうしろー!」といった発言が流れたことは,非常に一体感がある場面でした。

さらに,テキストやネットワーク処理,ファイル操作などはRubyが得意とする処理なのでRubyに任せ,アドレス操作,割り込み処理,ネイティブAPIなどが拡張ライブラリに適していると主張しました。その後,拡張ライブラリの本質にそって作った「HeapShow」という自作ライブラリを使って,メモリのヒープ領域の利用状況を視覚化するデモを行ったところでセッションの持ち時間が終了してしまいました。

画像

このセッションの模様の一部です。

ニコニコ動画:http://www.nicovideo.jp/watch/sm3730488

さらに仕事に使うRuby(後藤 謙太郎(ごとけん)さん)

このセッションでは、発表者の後藤謙太郎(ごとけん)さんが仕事で使っている以下のRubyツールを,それぞれの特徴や利点ともに紹介しました。

  • Hiki:お客様との連絡用のツール
  • Redmine:案件の管理用のツール
  • 影舞:伝票管理のツール

Hikiは,お客様と同じ情報を見ることができIssue Trackingのプラグインが使えることが導入のきっかけになっています。また画面構成をカスタマイズしたりプロジェクト毎に新しいHikiを作成できるよう自動化に取り組んでいるようです。

RedmineはTracと比較して機能の充実さや分かりやすいUI,Railsで書かれたコードが手本になる,などの理由で採用しました。また日本語ファイル名の添付ファイルの扱いでトラブルがあった体験を話しました。

古くからずっと利用している影舞は,カラムソート機能やよく使うリンクなどのカスタマイズをしていることを紹介しました。

そして,グループウェアや社内掲示板など,社内にあるRSS出力に対応していないアプリケーションのフィード管理にmechanize,hpricot,fastladderを利用しているようです。

質問の「Issue Tracking機能がどれもカブっている」には,「お客さんに見せたくないチケットなどがあるため現状はシステムを分けている」と答えていました。

画像

erbを偲んで(関将俊さん)

dRubyやERBの開発者,関将俊さんの発表です。毎度おなじみ「初版まだ買えます」と,自著『dRubyによる分散・Webプログラミング』(オーム社)の紹介から始まりました。Pragmatic Programmers(達人プログラマー) シリーズより英語バージョンの発売も予定しているようです。

セッションでは主に2007年に行われたオブジェクト倶楽部のライトニングトークでの発表を元に,「MVCのVはテンプレートのことではなくView Objectだ」ということを説明しました。

最後に,ERBがstrscanが無い環境でのテストが抜けていて1.8.7で動作しなかったことの事情について,ERBのパフォーマンスチューニングの試行内容を解説しました。

画像
画像

matzを説得する方法(田中哲さん)

産業技術総合研究所の田中哲さんの発表では,Rubyのこれまでの開発において,取り込まれた提案と受け入れられなかった提案を検証し,どうアプローチすればまつもとさん(matz)に受け入れてもらえるか,について話しました。

当然のことながらバグレポートは通りやすいですが,その際に再現可能な報告やコード,実行例などを示す必要があります。

それ対して,新機能や機能変更はなかなか通らないことが多く,「途中省略されて表示されるスタックトレースを全部表示させたい」という過去にあった提案を例に話を進めて行きます。ちなみにその提案をやり取りした内容はruby-devのメーリングリストで見ることができます。

この提案は2002年から行われており,9回目となった2007年に田中さんによってやっと受け入れられました。そしてそれまでの提案を検証したところ,「設定という概念の導入」「話が大きすぎる」「悪影響が出る可能性が高い」という理由により受け入れられませんでした。これにより受け入れられにくい提案というのは,以下の問題を抱えていると指摘しました。

  • 必要性が納得出来ない
  • なにが問題なのかわからない
  • 本人以外が困っているのか疑わしい
  • 解決策が疑わしい

逆に受け入れられやすい提案は,以下の傾向があることを指摘しました。

  • 必要性が納得出来る
  • 解決策が妥当で副作用が少ない
  • Perlが採用している(matzはPerlが好き)

また,受け入れられる要素として「一貫性」はあまり当てはまらず「多態性」を重視して便利さを重要視した方がよいようです。

そして,名前は非常に重要らしく,機能は問題ないのに名前が決まらないだけが理由で受け入れられないことが,たくさんあったことを例を挙げて紹介しました。

最後に,最近の提案をとりあげました。提案内容は「Time#strftimeに小数点以下を取り出したい」というものです。田中さんの指摘通り,現在この提案は進んでいないようです

この提案の問題として「どういう用途で欲しいのか書いてない」と挙げ,実際に提案者に聞いたところ,「誰か他の人が欲しいって言ってた」という回答だったようで,この提案が通ることは難しいといえると話しました。そして,GNU DateやJava,C#が%Nを使って表せることを調べて,まずは「%Nが適切な用途を見つける」ことが提案採用に近づく道なのではないか,と述べました。

画像
画像

日本Rubyのリファレンスマニュアル2008・初夏(青木峰郎さん)

Rubyのリファレンスマニュアルを刷新作業を行っている,青木峰郎さんの発表です。2006年8月から新リファレンスマニュアルを作成を開始しており,最新の状況は「Rubyリファレンスマニュアル刷新計画」のサイトで参照できます。

今年の5月にsnapshotをリリースしましたが,今月にもupdateした内容をリリースしたいと発言していました。進捗状況として昨年のカバー率が2%だったのに対して,現在は31.2%にまで上がっています。規模が大きいtkとsoapを除けば52%にまで上がり,組み込みライブラリに関してはほぼ100%カバーしているそうです。

続いて,プロジェクトの概要について説明しました。まずはコミット数ランキングを表示し,sheepmanさんがダントツの多さでした。管理システムにはRedmineを利用しており周辺システムの改善を行っているようです。

今後の予定として,1.8.7対応を6月中に行い,組み込みライブラリを100%にし,来年のRuby会議までにはtkとsoapを除いて100%を目指しているようです。Ruby言語仕様やC APIリファレンスに関しては現状誰も行う予定はなく,言語仕様に関しては水面下で交渉を行っている段階のようです。質問された英語バージョンとの整合性についても,今のところは特に考えておらず,別々に進めればいいのではないか,という考えを示していました。

画像
画像

著者プロフィール

角田直行(かくだなおゆき)

普段はお仕事でPHPやJavaを使ってWeb開発をしています。一部でセレブエンジニアとか言われてますが,全然セレブじゃありません。

コメント

コメントの記入