BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース MountainWest RubyConf 2008のビデオ

MountainWest RubyConf 2008のビデオ

ブックマーク

MountainWestのRuby会議(サイト・英語)が、3月28日と29日に、ソルトレイクシティで開催された。
Confreaks社といろいろなスポンサーのおかげで、15セッション全てが、Confreak社のウェブサイト(サイト・英語)より既にダウンロード可能だ。Flashを使ってオンラインでセッションを見ることも可能だ。我々はあなたに、厳選されたセッションへのガイドを追加した。またコンテンツ内に印を追加し、この印があると興味のあるところへジャンプすることが出来る。

Rubyの生態系を強化するパート1:Evan Phoenix氏によるRubiniusの紹介

Evan Phoneixは、RubyのVMを実装したRubiniusプロジェクトの作者である。このセッションは、Rubiniusに関する技術的な話ではなく、プロジェクトの現状に関する最新情報に関する話だ。最新情報の一つにirbと RubyGemsの実行の話が9分12秒目に出てきて、Rubiniusが、とてもオープンな開発プロセスであることをイラストで説明している。Evanは、このプロジェクトの最も大きな成果のひとつは、Rubiniusの大きな仕様だと語った。(7分08秒)。それから、彼は9つのポイントに関してプレゼンテーションを行い、その9つのポイントがRubiniusコミュニティの成功に不可欠であり、また他のオープンソースプロジェクトのガイドラインとして有効であることを語った。

  • タスクは、小さすぎない事(17分55秒)
  • どの貢献者も価値がある。(20分5秒)
  • どの貢献も価値がある。(21分22秒)
  • 許しを請う事は、許可を求めるよりよいことだ。(21分44秒)
  • ディベートは、健康的だ(22分26秒)
  •  あなたは、あなたのプロジェクトではない(24分31秒)
  • 城への鍵は神話だ。(29分47秒)
  • 里子の実験(33分38秒)
  • 興奮は広がりやすい(実例を示してリード) (38分00秒)

Rubyの生態系を強くするパート2:Ezra Zygmuntowicz氏によるMerbの紹介

Ezra氏は、ウェブフレームワークのmerb(サイト・英語)の紹介を始めた。このセッションでEzra氏は、merbのモットーである「コードはコードより早くない」という基本原則とキーとなるデザインの検討事項を説明した。Ezra氏は、merbのことを語っただけでなく、Rack(サイト・英語)やGitHub(サイト・英語)の紹介もした。

  • Ezra氏が、merbの開発を始めた理由と、Railsが常にベストソリューションでない理由(7分0秒)
           
  • merbの新しい機能(10分43秒)
    • Rackを足早に紹介(12分43秒)
    • Merb::Router(21分16秒)
  • merb-moreのコンポーネント(30分46秒)
  • merb-pluginsに関して、一言、二言(34分48秒)
  • GitHubのクールなところ(36分22秒)
  • merbのパラメータが、actionへ渡される仕組み(46分45秒)

コード生成:Giles Bowkett氏のメタプログラミングの安全ハサミ

Giles氏は、ギリシャ文字のパイ、ラムダ、そしてメタという単語を表示させて、メタプログラミングの話に入った(5分25秒)。Giles氏が論じたのは、我々は真のメタプログラミングを行っていなくて、通常行っているのはメタオブジェクト指向だということであった。最初のライブデモは、Ruby2Rubyに関するデモであった(6分28秒)(サイト・英語)。Railsのモデルクラスを、rubyのコードに戻して、魔法のRailsが動くのを確認した。

Giles氏は、大変話が旨く楽しませてくれるスピーカーなので、彼のセッションを通しで見る事をお薦めする。入り口が幾つかある。

  •  
  • 既存メソッドを置き換えるMonkey Patchingが常に適切でない理由(12分15秒)
  • Monkey PatchingをMonkey PatchingするメタMonkey Patchingを如何に行って、オブジェクトグラフを視覚化するスクリプトを生成するか(14分33秒)
  • 「Code Generation in Action」は全プログラマ必読の書(26分14秒)
  • Lispを取り上げてみて、Giles氏が考える、誰もLispを使わない理由(29分12秒)
  • Rubyは、LispやPerlと比較して、シンプルさとコードのマジックに関してバランスが良い(38分20秒)

結論として、彼が一番伝えたかったことは、みんな、「Code Generation in Action」を読まなきゃいけないよということであった。

Jeremy McAnallyの深遠なRuby

Jeremy氏は、ほとんどのプログラマは、Rubyのオブジェクトを正しく使用してないと思っている。だから彼のセッションでは、シングルトンクラスや、instance_eval等の高度な話題に光明を投じるものとなった。

  • オブジェクトとは何か?定義と他言語との比較(4分19秒)
  • 振る舞い:オブジェクトの機能を変更する方法(8分19秒)
  • 動的:evalメソッドファミリー(11分40秒)
  • アドバイス:instance_evalよりもdefine_method and instance_variable_setメソッドを使おう(14分24秒)
  • 実用性:コードとベストプラクティスの重複をなくす事(16分09秒)

話は20分間に渡り、残りの時間は質疑応答に使われた。

ドメイン固有言語:Joe O'BrienによるRubyの形成

ライフサイクルとメンテナンスは、ソフトウェアコストの85%を占めている(11分55秒)、従ってソフトウェアは、他人が読んでも理解しやすくなるように書くべきだ。DSLを使えば理解しやすいコードを書ける。Joeは、Starbucks DSLという古典的な例を出して(13分41秒)、Rubyが、DSLを書くのに非常に適した言語であることの理由と、その要因がどこから来ているのかという点をセッションで語った(24分10秒)。

プレゼンテーションの後半は、DSLの話が3つ紹介された(31分31秒)。

  • 演目1:「しまった、DSLを作ってしまった」というストーリは、rakeタスクに関してで、Jim Weirich氏が、偶然rakeを作った方法を紹介している。
  • 演目2:一貫性、Railsモデルのカスタムアサートの例(37分19秒)
  • 演目3:Business Language、顧客が仕様書を理解しやすく且つ検証しやすくするためにDSLを使う方法

Shaving with Ockham

Jim Weirich氏の本当の基調講演のタイトルは、「私が話したい事」というもので、フレデリック・ブルックスのプログラミングの本質に関する著書「人月の神話」からの素晴らしい引用(5枚のスライド)で始まった。Weirich氏は、自分がどのようにしてプログラマとなり、(5分40秒)そして彼が見た最初のLispのコードのことを話した(6分56秒)。次の10分は、Lispの紹介で、Lispの基本とLispが何故パワフルな言語なのかということについて説明した(21分24秒)。


次に最初に携わったソフトウェアプロジェクトのことを語り、そのプロジェクトでは、軍事関係向けに手の込んだグラフィックシステムを実装していたことや、その際誰も使いたがらない予備のハードウェアを使っていた事を語った。彼らは、二つの大変ことなるアーキテクチャとアセンブラ言語を使って作業をしなくてはいけなかった(26分10秒)。この厳しい環境で働くために、彼らは、Forthを両方のシステムにポートした。ポート作業は比較的簡単だった。なぜならとても小さなForthのコアが、マシンスペックだったからだ(34分53秒)。


後の仕事で、Jimは、マルチスレッドのシステムを手がける必要があった。このことは、スレッドプログラムは、難しいという結論を彼にもたらした(46分39秒)そして、この専門領域で、他をしのぐ言語であるErlangのことを話した(47分25秒)。この後の10分間は、Erlangの紹介であった。

プレゼンテーションの終わりは、なぜ我々が常に非常に複雑なソフトウェアを作る誘惑にかられるかということと、ソフトウェアデザインを構築する二つの方法に関するTony Hoare氏の引用を含んでいる。我々にとって、幸いな事は、前途有望な動向があるということだ(1時間8分5秒)。

注記:InfoQは、Jim Weirich氏とのインタビュー(インタビュー・英語) を公開しました。そこでは、rakeとDSLのことを語っています。

原文はこちらです:http://www.infoq.com/news/2008/04/mountainwest-rubyconf-2008-video

この記事に星をつける

おすすめ度
スタイル

BT