写真●「X-over Development Conference 2007」で講演する,まつもとゆきひろ氏
写真●「X-over Development Conference 2007」で講演する,まつもとゆきひろ氏
[画像のクリックで拡大表示]

 「結局のところ,顧客に何が必要かは,顧客にも開発者にも理解は不可能だ。そうならば,まずアプリケーションを作って,それを使ってもらい,顧客に合うように直すしかない。これからのエンタープライズ開発も,とにかく速く安く作って,直すことが重要になる」--。プログラム言語「Ruby」の開発者であるまつもとゆきひろ氏は9月7日,ソフト開発をテーマにしたイベント「X-over Development Conference 2007」の講演でこう主張した。

 まつもとゆきひろ氏の講演テーマは「Web 2.0時代のエンタープライズ開発」というもの。Web 2.0時代のアプリケーションは,「YouTube」に代表されるように,「仕組みそのものよりも,データがどれだけ集まっているかが生死を分けている」(まつもと氏)。つまりWeb 2.0アプリケーションで重要なのは,「いかに速く,いかに多くのユーザーにリーチして,いかにデータを多く集めるか」(まつもと氏)であり,ソフトウエア開発には「完璧さよりもスピード」が求められるようになったという。

 その上でまつもと氏は,「完璧さよりもスピード」は,エンタープライズ系の開発でも同じだと主張する。なぜなら「完璧さを求めても実現できていない」という現実があるからだ。「エンタープライズというと顧客は大企業で,失敗のダメージが大きいから,安全策を採っている。しかし,大規模プロジェクトの4割は失敗しているし,成功したプロジェクトでも6~8割の顧客は満足していない」(まつもと氏)。

解決方法を知らないということを認めよ

 まつもと氏は,「『答えを知らない』ことを認めるのが重要だ」と語りかける。「顧客にどんなソフトが必要かを聞きにいっても,答えは誰も知らない。顧客は,今の仕事と問題は知っているが,どうすればいいかは分からない。逆にソフトウエア開発者も,実装の手法は知っているが,問題の解決方法は知らない。誰も答えを知らないのだから,段階的な進化,つまり『とりあえず作って,使ってみて,それがいいかどうか見極めていく』しかない」とまつもと氏は主張する。つまりエンタープライズ系の開発でも,「速く作って,後から直す」ことが必要だというのだ。

 まつもと氏は,こう続ける。「昔は私も受託開発をしていたので,顧客に納品したものを『違うな』と言われて,腹を立てたこともある。しかしこの前,会社の後輩に開発を依頼して,出来上がったソフトウエアを見て『作り直して』と言ってしまったことがある。実は私も,何が欲しいのか分かっていなかったのだ。顧客に『作り直して』と言われて,『えーっ』と言わずに済むためには,変化に対応できる体制になっている必要がある」(まつもと氏)。

 変化に対応できるようになるためには,どうすれば良いか。まつもと氏は「これからのソフトウエア開発には,『すばやさ』『低コスト』『段階的な進化』が必要であり,それを実現するためには,ソフトウエアの開発生産性を上げるしかない」と語る。その上でまつもと氏は「プログラム言語は,コンピュータと開発者のインタフェース。開発ツールの1つではあるが,開発の性質も左右してしまう」と,プログラム言語やフレームワークの重要性を訴えた。

生産性で大事なのは「気分」,Rubyは気分良く開発してもらえる言語

 まつもと氏が推すプログラム言語は,もちろん自身が開発したオープンソースのプログラム言語「Ruby」だ。まつもと氏によればRubyは,開発者に気分良く開発をしてもらうことを主眼においた言語だという。「開発者の生産性は『気分』に左右される。これを,局所的な生産性,刹那的な生産性と呼んでおり,そういった開発者の気分を高めることを重視している」と語る。「Rubyは機敏な表現を目指している。頭の中のアイデアを言語で具体化しなければ,アイデアが逃げてしまう。計算機のパワーは上がっているので,リソースを無駄遣いして,速さを犠牲にしても,作りやすさを重視してよいと考えた」とまつもと氏は語る。

 また,「近代プログラムの主眼は,テキスト処理やネットワーク処理。10数年前からやっているRubyも,もともとテキスト処理とネットワーク処理を目的にしていたので,Rubyが得意としていた領域に,世界の方からやってきてくれたのでラッキーだった」(まつもと氏)という。

 もちろん,まつもと氏が「趣味で作った」と言うプログラミング言語や,オープンソースとして開発されたWebアプリケーション・フレームワーク「Ruby on Rails」を,エンタープライズ系の開発に適用するのを,ためらう人も多いだろう。その点についてまつもと氏は,「どの技術を使うか,プログラムをしていない人が決めていることが多い。それは仕方がない。結局は認知度が全てなのだろう。結局は『メジャー企業が推奨するのがエンタープライズ』だ」と語る。

 まつもと氏がこう言い切るのは,認知度や「メジャー企業の推奨度合い」において,Rubyが他のプログラム言語に見劣りしなくなったからだろう。いまや,米Sun MicrosystemsがJava上のRubyである「JRuby」を作ったり,同社製開発ツール「NetBeans」のRuby対応を進めていたりする。また米Microsoftも,「Flash」対抗のWebアプリケーション基盤「Silverlight」で,プログラム言語としてRubyが使えるようにし始めているほか,「IronRuby」といったRubyの実装も進めている。このほか,米BEA SystemsがRubyの24時間365日サポートなどを始めているという。

 これらに加えてまつもと氏は,「エンタープライズRubyに関しては,実績もあるし,生産性が高いことも認められ始めてきた。楽天が社内向けシステムをRubyで開発したところ,JavaやPHPと比べて,生産性が1.6倍から3倍に上がった」と語っている。

Rubyの特徴は「自由」「柔軟」そして「危険」

 ただし,まつもと氏によれば,Rubyには「向く現場」と「向かない現場」があるという。Rubyが向いているのは,少数精鋭で進めているプロジェクトだという。「こういうプロジェクトは,プロジェクトの粒度が低いので,失敗しても別のプロジェクトに影響が少ない」(まつもと氏)。一方,「Rubyは自由度が高くできることが多いので,失敗すると何が起こるかわからなくなる。だから,玉石混交で人が集まっている大規模プロジェクトには向かない」(まつもと氏)という。

 エンタープライズに適用できるかという観点では,パフォーマンスも気になるが,まつもと氏は「パフォーマンスは,もはやプログラム言語にとって重要ではない」と言い切る。「アプリケーションのパフォーマンスを左右するのは,ネットワークやデータ・アクセスであり,ロジックはスケールしやすい(リソースの追加で対応しやすい)からだ。実際にミニ・ブログ・サービスの『twitter』は,Ruby on Railsでできているが,毎秒1万1000件のリクエストをこなしている」(まつもと氏)という。

 まつもと氏は最後に,「Rubyの特徴は,いうなれば『自由,柔軟,危険』。ただし危険といっても,十分に良くなっているし,十分にパフォーマンスも出るようになっている。最も重要なのは,プログラミングを楽しくすること。プログラムのワクワク感を取り戻したい」と訴えた。