Ruby設計者まつもとゆきひろといろいろ語りたい[動画]言いたい放題「Ruby×アジャイル開発」(1)

プログラム言語Rubyとアジャイルソフトウェア開発の連携が生み出す新たな可能性を縦横無尽に語り合う。全6回シリーズの第1回。まつもとゆきひろ(ネットワーク応用通信研究所)がRubyの来歴を語り、平鍋健児(チェンジビジョン)がアジャイル開発とRubyの接点を模索する。角谷信太郎(永和システムマネジメント)が両者の橋渡しをする。

» 2007年05月29日 12時00分 公開
[角谷信太郎(永和システムマネジメント),@IT]

なぜ、「まつもとゆきひろ」か?

 「RailsによるアジャイルWebアプリケーション開発」は一風変わった書籍である。RubyによるWebアプリケーションフレームワーク、Ruby on Rails解説の決定版である本書は、書名に「アジャイル」を冠しながらも、本文では具体的なアジャイルソフトウェア開発手法への言及がほとんどない。その理由は「アジリティ(agileであること)はRailsの構造の一部」であり「フレームワーク自体にアジャイル宣言の原則を語らせるように」執筆したという。

 Railsのように野心的なWebアプリケーションフレームワークの出現を可能にしたプログラミング言語Ruby。われわれアジャイル開発の実践者たちは、今回のRubyブームに乗じて、アジャイル開発をソフトウェアビジネス界に対してアピールする作戦を考えた。いま、Rubyについて考えることは、アジャイル開発の、そしてソフトウェア開発ビジネスの未来を考えることでもある。

 そこでわれわれは、現在の日本で最もRubyについて語るのに適切な人物との「鼎談」(ていだん)を申し入れた。その人物とはほかならぬ、プログラミング言語Rubyの言語設計者にして自他ともに認める日本を代表する言語オタクである、まつもとゆきひろ氏である。

 鼎談は、Rubyとアジャイル開発、そして2007年現在のビジネスアプリケーションを語るうえで欠かせないJavaのそれぞれについて、現在に至る流れを振り返ることから始まった。

Javaの来歴

1996年にJDK 1.0がリリースされて以来の十年余にわたるJavaの発展の歴史は、間接化とコンポーネント化の歴史でもある。JVM、Webアプリケーションフレームワーク、O/Rマッパ、EJBコンポーネント、XML設定ファイル、Dependency Injectionコンテナ。こうしたJavaの発展を支えたのは、コンピュータの処理速度の向上と高速なネットワークインフラの整備である。間接層の導入はさまざまな問題を解決するが、同時に複雑さも増す。

 Java陣営もこの複雑さの増加を認識しており、現在はEoDを標榜(ひょうぼう)しているが、それでもやはり大規模な基幹業務システムではない「普通の」Webアプリケーション開発にとって、JavaEEは依然として複雑過ぎるのが実態である。

Rubyの開発とブーム

 Rubyはまつもと氏によって1993年に生まれ、1995年に最初のバージョンがリリースされた(0.95)。開発動機は「作りたかったから」。

 現在、Rubyの開発は「まつもとゆきひろと愉快なコミッタたち」によって続けられている。目下の開発のメインターゲットは、処理系の刷新されるRuby 1.9.1のリリース。リリース予定は2007年12月である。

 日本国内でのRubyの知名度の向上は、2000年に京都で開催されたPerl/RubyConferenceと、その前後に起きたRuby関連本の出版ラッシュである。このころのブームは「第1次Rubyバブル」と呼ばれている。

 海外でRubyが認知される大きなきっかけとなったのは、「プログラミングRuby 達人プログラマーガイド」の出版である。Dave ThomasとAndrew Huntの「達人プログラマー システム開発の職人から名匠への道」のコンビによって執筆された。彼らは本書を1年足らずの間に、怒とうの勢いで書き上げた。

 当時、Rubyの存在を知る海外プログラマーの多くが、本書をきっかけにRubyを使い始めたという。そして、本書が出版された翌2001年に米国ではRuby単独カンファレンス「RubyConf」の第1回が開催された。

 Rubyが広く認知され始めたのは21世紀に入ってからであるが、それでもなお、2005年にRuby on Railsが流行し始めるまでは「知る人ぞ知る」言語だった。

 Rubyコミュニティとしては普及すること自体を重視しておらず、現在のようにRubyが幅広く注目を集めたのも「結果的にマーケティングだよね」とまつもと氏は語った。

プログラミング言語の潮流

 10年前に登場した当初、Javaはビジネスアプリケーションの世界では「おもちゃ」「遅くて仕事には使えない」という評価を受けていた。現在のRubyも多かれ少なかれ似たような状況にある。「プログラマーのおもちゃ」「大規模開発には向かない」などなど。

 「JavaからRubyへ マネージャのための実践移行ガイド 」によれば「成功するプログラミング言語は、ほぼ10年毎に出現している」という。Cの登場が1971年、C++は1983年、Javaが1996年。そして2007年の現在、数多くのソフトウェア開発者の興味を集めている言語の1つがRubyである。

 「Javaで起きたような変化が、もう一度起こるのではないか?」こうした予感を抱いているソフトウェア開発者は、われわれだけではなさそうだ――少なくともあと1人、「JavaからRubyへ」の著者であるBruce Tateは、Rubyの勢いにJavaと同じものを感じているようだ。

アジャイルソフトウェア開発の評価

 アジャイルソフトウェア開発は、状況の変化に対して迅速かつ適応的にソフトウェアを開発する軽量な開発手法である。アジャイル開発のムーブメントは、1999年の「XP エクストリーム ・プログラミング入門」出版をきっかけに、21世紀初頭に盛り上がりを見せ、2001年2月の「アジャイルマニフェスト」の制定へと結実した。その後に表面的なアジャイルブームは去り、2004年に「エクストリーム・プログラミング入門 第2版」が出版されたが、第1版が出版された当時のような大きな盛り上がりには欠いた状況にある。

 しかし、海外では一定の間隔でアジャイル開発関連書籍が出版されており評価の高い書籍も多い。2007年のJolt Awardsを受賞したのはAlister Cockburnの「Agile Software Development:The Cooperative Game」の第2版であった。こうした海外のアジャイル開発関連書籍のうちの何冊かは、2007年以降に日本でも翻訳書籍の出版が予定されている。

 アジャイルソフトウェア開発は、当初にブームを巻き起こしたような派手さはないが、実践経験を踏まえた次なる段階へと着実に進みつつある。

「達人プログラマー」という書籍の存在

 時系列でRubyとアジャイルとを振り返ると、いずれの流れにおいても重要な役割を果たしている存在が、1999年に「達人プログラマー 」(日本語版は2000年)を出版したDave ThomasとAndrew Huntの2人である。アジャイル開発の文脈では、「達人プログラマー」の2人は「アジャイルマニフェスト」の署名メンバーであり、Rubyの文脈ではすでに述べたとおり「プログラミングRuby 達人プログラマーガイド」の著者である。Dave Thomasは、初めに言及した「RailsによるアジャイルWebアプリケーション開発」の著者でもある(Railsの作者であるDavid Heinemeier Hanssonと共著)。

 達人プログラマーの2人は、1999年にThe Pragmatic Programmers, LLC.を設立し、2003年からソフトウェア技術書籍の出版事業を行っている。書籍のラインアップにはアジャイル開発やRubyに関連したものを中心に幅広い内容をカバーしている。

 ソフトウェア開発の動向を知るには、中心となる人物の動向をフォローするのが良い方法である、という平鍋の主張に従うならば、今後のRubyとアジャイルとの関連を考えていくうえでは、「達人プログラマー」の2人の動向に注目していくとよさそうだ。ちなみに、The Pragmatic Programmers, LLC.の新刊が“Programming Erlang”であることが、海外プログラマーの間では大きな話題となっている。

 なお、達人プログラマーの1人、Dave Thomasは6月に東京で開催される「日本Ruby会議2007」で基調講演を行う予定である。


 1990年代後半に登場したRubyとアジャイル開発について、それぞれの登場から現在まで流れを簡単に振り返った。結果、Rubyとアジャイル開発の発展を考えるうえで「達人プログラマー」の著者であるDave ThomasとAndrew Huntがキーパーソンであることが浮き彫りになった。次回は、こうした時代状況の流れの背景について議論する。

参考
Javaの年表
* 1996年: JDK 1.0リリース
* 1999年: J2EE 1.0リリース
* 2004年: Martin FowlerがDependency Injectionパターンを提唱
* 2006年: EJB 3.0リリース
Rubyの年表
* 1993年: Ruby誕生
* 1995年: Ruby 0.95 リリース
* 1999年: 「オブジェクト指向スクリプト言語 Ruby」出版
* 2000年: Perl/Ruby Conference開催(京都)、「プログラミング言語Ruby 第2版 言語編」出版
* 2001年: RubyConf 2001開催
* 2005年: 「RailsによるアジャイルWebアプリケーション開発」出版
* 2006年: 日本Rubyカンファレンス2006開催、第2次Rubyブームの予感
アジャイル開発の年表
* 1999年: 「エクストリーム・プログラミング入門」出版
* 2000年: 「プログラミングRuby 達人プログラマーガイド 」出版
* 2001年: アジャイルマニフェスト制定
* 2004年: 「エクストリーム・プログラミング入門 第2版」出版
* 2005年: 「RailsによるアジャイルWebアプリケーション開発」出版
* 2007年: 「Agile Software Development 2nd Edition」がJolt Awards受賞
RubyConf 2007
2007年のRubyConfは2007年11月2〜4日(現地時間)にノースカロイナ州で開催される予定。
http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/249812
日本Ruby会議2007
2007年6月9〜10日の2日間にわたって、東京で開催予定。チケットはすでに完売。
http://jp.rubyist.net/RubyKaigi2007/
Jolt Awards
Jolt Awardsは、米国のソフトウェア業界における権威ある賞。ソフトウェア業
界の書籍やツールなど17部門に与えられる。米Software Development誌によっ
て、毎年3月に発表される。書籍はGeneral(一般書)とTechnical(技術書)の2部
門が存在する。http://www.joltawards.com/
Programming Erlang
http://www.pragmaticprogrammer.com/titles/jaerlang/index.html
動画撮影:「歌頭孝之」

Copyright © ITmedia, Inc. All Rights Reserved.

注目のテーマ