写真1●CEDEC2011の特別講演に登壇したまつもとゆきひろ氏
写真1●CEDEC2011の特別講演に登壇したまつもとゆきひろ氏
[画像のクリックで拡大表示]

 「Rubyは2007年にアーリーマジョリティに受け入れられてキャズムを超えた。これからなくなることはないし、より広い領域で使われるように変化し続ける」---。パシフィコ横浜で開催されたゲーム開発者向けイベントCEDEC2011にて、プログラミング言語Rubyの開発者であるまつもとゆきひろ氏は2011年9月8日、「Ruby開発が教えてくれたこと」と題して特別講演を行った(写真1)。

 まつもと氏はまず、約30年前にシャープのポケコン(ポケットコンピュータ)でプログラミングを始めたころの話から始めた。その当時からプログラミング言語への関心が高く、書籍を通じて様々な言語を学んだという。「例えば、Pascalの入門書では、ポケコンのBASICにはなかったローカル変数や再帰呼び出しについて学んだ」。

 こうした経験を通じ、「世の中にはたくさんの言語があって、後から登場した言語には改善された機能が盛り込まれていることをとても面白いと思った」と語る。その面白さから、「言語を自分で作ってもよいのではないか」と考え、ノートに「僕の考えた最強の言語」を書いていたという。これが、Ruby開発の原点と言えるだろう。

言語の選択が重要

写真2●階乗処理の例(Javaの場合)
写真2●階乗処理の例(Javaの場合)
[画像のクリックで拡大表示]

写真3●階乗処理の例(Rubyの場合)
写真3●階乗処理の例(Rubyの場合)
[画像のクリックで拡大表示]

 様々なプログラミング言語への興味に続けてまつもと氏は、言語選択の重要性を強調した。自然言語における「言語は思考に影響を与える」という考え方に基づく「Sapir-Whorf仮説」を引き合いに出しながら、使うプログラミング言語により制限や発想が与えられると説く。「例えば、ポケコンのBASICにはローカル変数はなく、再帰が使えない。それでもプログラムは書けるが、(ローカル変数のある)Pascalを使えばより豊かな発想でプログラミングができる。つまり、BASICという言語により、思考は制限されていた」という。

 こうした観点からまつもと氏は、「言語の選択はとても重要であり、どの言語を選ぶかによって、プログラミングにおける開発者のストレス、コスト、記述量が変わってくる」と指摘する。言語の選択は生産性に直結するため、「言語では機能面ばかりが問われがちだが、開発者が“気分よく”書けるということも重要な要素だ。なぜなら、ソフトウエア開発は人間的な活動であり、開発者がプログラミング時にどう感じるかがとても大事だからだ」とする。

 続けて、どのようなときに気分が良くなるかを考察しながら、「簡潔さは力なり」というプログラマにしてエッセイストであるPaul Graham氏の言葉を挙げ、C、Java、Rubyにおける階乗処理や抽象化を簡単に比較しながら、Rubyを使えば簡潔に書けることを示した(写真2写真3)。さらに、「性能よりも生産性」「開発者が心地良い」といったRubyの特徴が時代の要請にマッチしているのではないかとしつつ、結局は「自分が一番生産性を高められる言語、ツールを使えばよい」とまとめた。

 さらに、まつもと氏は、「プログラミングは本当に楽しい」と述べ、プログラミング活動における創造と対話の楽しみ、知的な刺激を受けることを具体的に説明した。また、「個人がイチから車を作るのはムリだが、ソフトウエアについては自分のイマジネーションのままに作り上げるのはそんなに難しくない」と語る。そして、プログラミングやソフトウエアの活用における主体はあくまで人間であり、「コンピュータに仕事を押し付ける」ことで楽しさや生産性を得られるとした。

軽量Rubyのベータ版は2012年3月に公開予定

 講演の終盤でまつもと氏は、これまでのRubyの歩みを振り返りながら「(RubyがIT業界で大きな注目を集める契機になった)2004年のRuby on Rails登場に続いて、2007年ごろにキャズムを超えた」という見方を示した。2007年には、様々な企業システムでRubyが使われ始め、資格認定試験も始まるなど、新製品や新技術が普及期を迎える前に超えなければならないとされる大きな溝(キャズム)を超えて、アーリーマジョリティに受け入れられたという。

 まつもと氏は「Rubyはキャズムを超えたので、これからなくなることはないだろう。それに飽き足らず、さらに変化を続ける」として、Webシステムに加えて組み込みやHPC(High Performance Computing)でもRubyを使いたいという声に応えていくという。その一例として、自身で開発中の組み込み向けの軽量Ruby(RiteVM)の予定を明らかにした。2011年11月に開発に参加している企業に限定してベータ版を公開、2012年3月にはオープンソースライセンスでベータ版を一般公開するという。