まつもとゆきひろ氏に聞く、Rubyの未来 その1

2010年09月15日掲載

Rubyが世に出て15年ほどが経ち、現在では日本だけではなく、さまざまな国で多くのエンジニアがRubyを使って開発を行っています。楽天やtwitterなど身近なWebサイトでも活用されているRubyの生みの親であるまつもとゆきひろ氏に、Rubyが優れている点や改善が必要な点、さらにはRuby技術者認定試験についてお話を伺いました。

過大なブームから安定した成長へ

− ご自身が作りだしたブログラミング言語が世界中で使われていることについてどうお感じですか。
  また、Rubyの成長段階は現状どのあたりだとお考えですか。

まつもと:Rubyを作ったのはもう17年も前なのですが、その頃はこんな風になるとは全く思っていませんでした。個人的なデータ処理を行うために作ったものだったので、エンタープライズシステムの開発でRubyを使うなんて思いもしませんでしたから。

2004年にRuby on Railsが公開されてから、Rubyに対する注目度が高まってきました。2008年くらいまでは一種のバブルのような感じで、実態以上に過大な期待をされていた部分もありました。2009年くらいから実態を踏まえて、「これはいい」と思って使ってくれる人が増えてきた感じがします。過大なブームは終わって安定的な成長期に入った、といったところでしょうか。バブルがはじけなくて良かったです。(笑)

Rubyが優れている点、改善が必要な点

− プログラミング言語としてRubyが優れている点、改善が必要な点を教えてください。

Rubyアソシエーション
理事長 まつもとゆきひろ氏

まつもと:優れている点としての一般的な評価は、生産性の高さと言われています。
2004年にRuby on Railsが発表されたときのデモビデオがそれを端的に示しています。そのビデオでは、データベースなど何も準備していないところからブログソフトを15分で作ってみせたのです。ページデザインなどの見栄えはもちろんできていないのですが、日付表示やコメント入力欄など必要な情報は盛り込まれていて、実際にコメントを入力してみると、きちんと表示されました。2004年の時点でWebアプリケーションを15分で作成するのはまさに驚異的だったので、当時とても話題になりました。

Ruby on Railsの良さは、Rubyの生産性の高さを最大限に活用した点にあります。Rubyそのものが持っているパワーをRuby on Railsが活用して、それによって非常に高い生産性を実現したということがいえるでしょう。発表から6年経った今でも、Ruby on Railsの生産性の高さは高評価を受けています。

一方、改善が必要な点としてよく言われるのがパフォーマンスです。
全く同じ処理を行うソフトウェアをJavaとRubyで作り、同時に処理をスタートさせると、処理時間に10倍以上の差が開くことがあります。Rubyの良さである生産性の高さはコードの簡潔性からきているのですが、それは人間がやる仕事(プログラミング)をコンピュータにまかせているということです。その分コンピュータが行う仕事は増えてしまうので、人間が一生懸命開発して作ったJavaのソフトウェアに比べてパフォーマンスが遅くなってしまいます。ただしRubyが最も使われているWebアプリケーションの分野だと、ネットワークやデータベースなどRubyが直接関係しない箇所がパフォーマンスのボトルネックになる場合がほとんどなので、課題ではあるけれども、クリティカルな問題ではないと考えています。

もう一点は、開発リソースの少なさです。
Rubyはオープンソースで開発されているので、開発者のほとんどがボランティアです。この技術を適用するとRubyはもっと良くなる、と分かっていてもリソースが足りない、といったことはありますね。 一方Javaなどでは大企業が優秀な人材をたくさん集めて開発しているので、リソースに関しての差は感じます。

− ボランティアは日本だけではなく、海外の方もかなりいらっしゃるのですか。

まつもと:はい、そうですね。コミッターといってRubyのソースコードを自分の権限で変えることができる人が全世界で70人強いるのですが、そのうちの半分強が日本人で残りは他の国の方々です。ニックネームしか公開していない人もいるので、どこの国の人か分からない、という人もいますが。私や他のボランティアの誰とも会ったことない人もいますし。メールのやり取りだけなので、もし目の前にその人がいてもわからないでしょうね。

− リソースを増やすという意味では、認定試験は有効な手段と思われますか。

まつもと:そうですね。1000人Rubyを使う人がいれば、その中に1、2名はもっと踏み込んでRubyに関わろうという人が出てくると思うので、裾野が広がるのは良いと思います。試験や教育を通じて裾野が広がっていくことによって、「Rubyをもっと良くしていこう」と考える人や企業が出てくることを期待しています。

資格や認定試験は自分のスキルを理解してもらうための“言語”

−2007年にRuby技術者認定試験制度がスタートし、10月1日から上位試験であるGoldが始まります。
  試験問題の監修に参加されたそうですが、どのような知識を問う試験なのでしょうか。

まつもと:SilverはRubyをスクリプト言語として使う、Rubyの各クラスの機能について理解している、といった基本的なレベルを問う内容でした。Goldはそれに加えてオブジェクト指向プログラミング言語としてのRubyの概念や、Rubyを使ってある程度の規模以上のソフトウェアを開発する際の知識を問うところにフォーカスして試験を設定しました。

GoldはRuby on Railsはカバーしていないので、Goldを持っているからRuby on Rails使えるという証明にはなりません。Ruby on Railsやソフトウェアの設計といったことまで踏み込んで、ということになると、より上位の試験が必要になってきます。今後Goldを取得する人が増えてくれば、もっと上のレベルの知識を証明したい、という声は出てくると思います。

ビジネス領域でRubyを使用しているエンジニアの方が、自らのRubyの知識を証明したいという欲求にこたえる形でSilverを提供したのが2007年でした。その後3年経ってSilverよりもひとつ上のレベルの知識を証明する必要が出てきたので、Goldを提供することになりました。これからも社会の要望にあわせて試験を提供していくというのが、Rubyアソシエーションのミッションの一つだと思っています。

−ソフトウェアの設計を身につけるためには、どういった勉強をすればいいのでしょうか。

まつもと:一概には言えないですね。設計の第一段階としてお客様の要望を聞き出すためのヒアリングは重要ですが、これについては特定の技法はありません。一方で、UMLのようなクラス設計が必要になることもあります。ソフトウェアやシステムの開発を行う場合、プログラミング言語の知識とは別に、設計手法は身につける必要があると思います。

−Ruby技術者認定試験制度とUML技術者資格試験UMTP UMLモデリング技能認定試験といった
 
組み合わせで取得すれば、言語と設計の両方のスキルを証明できますね。

まつもと:それによって相乗効果がでる会社や部署は多々あると思います。
私の場合、今まで独学でプログラミングしているので、「プログラミングの勉強をしよう」「XXの技術を身につけないといけない」といったモチベーションを持ったことがないのです。資格が必要だという状況に陥ったこともありませんし。

しかし、今回Ruby技術者認定試験制度を始めるにあたって、さまざまなエンジニアの方々とお会いする機会があり、その結果資格の重要性が理解できました。どこかの会社に就職する際、まず人事担当者に会いますよね。面接時、「私はRubyができます」「プログラミングが上手です」といっても彼らは分かってくれません。
では人事担当者に自分のスキルを分かってもらうための"言語"、つまり方法は何?となったときに、「XXの資格を持っています」というのは説得力があると。履歴書に「Ruby Association Certified Ruby Programmer」と書いてあれば、第三者によって証明されたスキルですから、とても説得力があると思います。
システム開発などの技術に詳しくない人に対して、自分のスキルを理解してもらうための"言語"として資格や認定試験を活用してもらえれば良いのではないでしょうか。

(文中敬称略)

取材を終えて-

今回初めてまつもと氏にお会いしたのですが、とても気さくな方で、技術的なことに詳しくない私に対して、分かりやすい、平易な言葉を使って説明してくださったのが印象的でした。
興味深い話が多く、とても1回ではまとめきれなかったため、急遽2回に分けてご紹介することにしました。

次回はRubyが海外で注目された理由や、今後の活用分野についてご紹介します。

プロメトリック株式会社
鹿倉 一葉

本ページに記載された情報は初掲載時のものであり、閲覧される時点では変更されている可能性があります。何卒ご了承ください。