2009年になって早1カ月。暗いニュースが続く中、あらためて「エンジニアとして市場価値を上げるにはどうすればいいか」と思い悩む読者もいるだろう。ITバブルに沸いた10年前と異なり、「これだけ押さえておけばいい」という技術や製品があるわけでもない。そんな中、注目を集めているのが、日本発の技術「Ruby」だ。以下、Rubyという技術を軸に、エンジニアの可能性を探っていこう。 |
プログラミングを楽しむために、Rubyは生まれた | ||
日本発の技術として注目のRuby。1995年、開発者のまつもとゆきひろ氏がネットニュースのニュースグループに公開し、いまや「Webサービスの開発言語」として海外でも高い評価を得るようになった。
まつもと氏によると、Ruby普及のターニングポイントは2つあるという。1つは、1998年に「オープンソース」という概念が浸透し始めたこと。そしてもう1つは2004年、Webアプリケーションのフレームワーク「Ruby on Rails」が広まったことだ。
まつもとゆきひろ氏 |
まつもと氏が「プログラミングをもっと楽しく、楽にするために開発した」というRubyが、ここまで浸透した背景には、インターネットの普及という時代の流れがある。HTMLやXMLなどテキストファイルで構成されるWebと、テキスト処理を得意とするRubyは相性がいい。必然的に、Rubyの活躍の場が広がった。スクリプト言語のため、「コンパイラ言語より処理速度が若干遅い」という問題も、複数のコンピュータに同じ処理のプログラムを分散配置することで解決できる。また、ソフトウェア開発案件が増えたことで、多くのエンジニアが「もっと楽に、簡単にプログラミングできる手段」を探すようになった。そのニーズが、Rubyの技術的な優位性と適合していたのだ。
Ruby誕生のきっかけは、1993年、まつもと氏が当時の勤務先の同僚と交わした会話だった。プログラミング作業に伴う煩雑な処理を自動化するため、件の同僚もまつもと氏もPerlを使っていたそうだ。そのうち、「確かにPerlは便利だね」「でも、もっといい技術を作れるよね」と意気投合。まずは名前を決めようということになり、Perlと発音が似ているPearl(真珠)に引っ掛けて宝石の名前を検討し、「Ruby」に決まった。2人ともUNIXユーザーだったため、「長いコマンドラインになるのを避けたかったのです」(まつもと氏)という。
折りしもバブル崩壊直後で、社内システム開発に従事していたまつもと氏は、新規開発凍結によってほとんど仕事がなくなるという事態に直面。Ruby開発に多くの時間を割けるようになった。「当時はまだ大らかで、社内でRuby開発を進めても、あまりうるさいことはいわれませんでした」とまつもと氏は語る。
開発時に念頭に置いたのは、「やりたいことを、ストレート/簡潔に記述できる設計にする」ことだ。集計処理、テキスト処理などを簡潔に記述できるようにすることで、これらの作業に取られる時間は減る。その結果「自分のやりたいことに、楽しく集中できるようになる」わけだ。「自分自身がプログラミングを一層楽しみたい。そんな思いからRubyは生まれたのです」(まつもと氏)
記述が簡易というスクリプト言語のメリットを生かしつつ、オブジェクト指向の考え方を取り入れた。Lispを参考にした部分も多いという。ちなみに当時、オブジェクト指向といえば、Smalltalkに代表される大規模システムへの適用が主流だった。スクリプティング処理がカバーする日常作業にオブジェクト指向を取り入れるという試みが、どれだけ画期的だったかが分かる。
こうして生まれたRubyは、見る見る活躍範囲を広げていった。
エンジニアと一般ユーザーが感動を共有できるRuby | ||
Rubyの発展において、コミュニティが果たしている役割は大きい。まつもと氏自身が運営するRuby開発コミュニティ以外にも、Rubyの利用者が自発的に立ち上げたコミュニティが多数ある。イーシー・ワンが主催する「Rubyビジネス・コモンズ」(2007年設立)もその1つだ。
「Javaに強い企業」として名高いイーシー・ワンが、なぜRubyなのか。この問いに対し、同社 代表取締役社長 最首英裕氏は「初めてRubyに触れた時、『技術で感動する原点』があると感じたからです」と答える。
イーシー・ワン 代表取締役社長 最首英裕氏 |
例えば「こんなに簡便に、やりたいことが実現できてしまう」というエンジニアの感動がある。そのエンジニアが作ったWebサービスを利用し、「こんなことができるんだ」というユーザーの感動がある。そのサービスに触発され、「このプログラムを応用し、こんな新サービスができるかも」「自分で新しいサービスを立ち上げられるのでは」というアイデアもわく。
この「感動」は、シンプルな構造のRubyだからこそ共有できるものだという。「これまでのテクノロジでは、感動も喜びもアイデアも、エンジニア集団の世界に閉じていました。しかし、シンプルな構造で多様なインターネットサービスを記述できるRubyは、一般ユーザーを巻き込んで発展していく可能性があります。エンジニアと一般ユーザーが、垣根なくさまざまなアイデアを出し合う、そんな新しい世界を、コミュニティを通じて創出したいと考えました」(最首氏)
学生時代は文学部で文芸を専攻した最首氏は、常々「文章を書くこともプログラミングも、根本は似ている」と考えてきた。多様な表現方法がある文章に比べ、プログラミングは目的特化型なので論理を明確に記述する必要はあるが、「自分が考えている事柄を表現する」という部分で共通しているという。ただしプログラミングの場合は、誰かがそのプログラムを使うことで「こうすれば、もっと良くなる」という発想が生まれ、そのサイクルが進化につながりやすい。そもそも技術は、社会に還元して発展してきたが、ITだけはこれまでエンジニアという閉じた世界の中で育っていった。その壁を破るのがRubyというわけだ。
最首氏がこのように考えるようになったのは、「ここ数年、ITを使って新サービスを生み出している企業は、ほとんどが異業種である」と痛感したためだ。GoogleやAmazon.comを想像すると分かりやすいだろう。一方、ソフトウェア会社は、「顧客の求めるものを、いわれたとおりに開発する」という受け身の姿勢になっている。イーシー・ワン自身も、いつの間にか固定観念に縛られるようになった。「この殻を破り、次を見据えて動かないといけない時期に来ています。Rubyビジネス・コモンズは、Rubyを通じてそんな新しい世界を議論しあう場なのです」(最首氏)
Rubyビジネス・コモンズでは、さまざまな職種の人たちが集まり、「イケテルRails勉強会」「イケテルビジネス勉強会」を交互に開催している。Rails勉強会は、Rubyの習得が中心。一般ユーザーもエンジニアも一緒に、Rubyを使ったWebサービスの開発に取り組む。インターネット放送局を作ったこともあるし、最新の勉強会では「食べログ」から店舗情報を取得し、Adobe Flashを使ってGoogleマップに表示するサービスを開発したという。このサービスを実装するには、わずかなプログラミングだけで済む。シンプルゆえに、例えばポータルサイトからニュースを自動的に取得するサービスを開発したり、Twitterを制御する仕組みを開発するなど、さまざまな応用が可能だという。
ビジネス勉強会では、Rubyの話は一切出てこない。あるビジネス状況を設定し、参加者がチームに分かれて役割を担い、交渉やコラボレーションなどを疑似的に体験する。終了後には、いろいろな業界で活躍する第一線のビジネスパーソンの話を聞いて刺激を受け、次のRails勉強会に成果を生かす――というサイクルだ。「技術の可能性と事業の可能性が組み合わさって初めて、ビジネスとして成立する芽が出てきます。そんなエキサイティングな時間を共有することで、ビジネスや市場を創造するスキルが向上するのではないかと考えています」(最首氏)
Rubyがビジネスやエンジニアの在り方を変えていく | ||
「オープンソースはビジネスになりにくい」というのが一般的な見解だ。最首氏の考えはどうだろうか。「そもそも経済活動とは、得たお金を循環させること。しかし景気動向が不透明なこれからの時代は、知財を循環させるという経済活動もあり得ると考えています。これにより、お金ではない新たな付加価値を生み出すのではないでしょうか」(最首氏)と語り、可能性を模索しているところだという。「知財」として流通させるには、セキュリティや品質保証の問題にどのように取り組むかも重要だが、「そのような経済活動のインフラも、Rubyビジネス・コモンズの中で見つけていきたい」(最首氏)と考えているそうだ。
Rubyによってもたらされる、エンジニアと一般ユーザーが互いにインスパイアしながら、社会を発展させていく未来――。この未来が現実になったとすれば、エンジニアの存在意義はどうなるのだろうか。
1つ考えられるのは、いま以上に「技術プラスアルファ」の知識が要求されるようになるということだ。例えば現在でも、エンジニアではないものの、自分でオープンソースのブログシステムをインストールし、しゃれたWebサイトを作るスキルに長けている人がいる。こうした人とエンジニアの間の垣根が取り払われるとき、エンジニアは優れたビジネスセンスとさまざまな分野の知識を持ち、プロにしかできないサービスを提供する必要があるだろう。まつもと氏のように、「自らで新しい技術を開発し、市場を切り開いていく」という方向も考えられる。
新技術の創造を目指すエンジニアが、備えておくべき資質 | ||
「自分もまつもと氏のように、新しい技術を作りたい」と思うエンジニアは多いだろう。だが、思うことと実現することの間には、大きな隔たりがある。まつもと氏は、なぜRubyを開発できたのだろうか。
鳥取県米子市で育ったまつもと氏は、中学生のころからBASICを使い、プログラミングに親しんできた。しかし、当時はプログラミングに詳しい人も、コンピュータに興味がある友人も周囲におらず、書店で見つけた雑誌や書籍が唯一の情報源だったという。BASICの性能に疑問を感じていた中学生のまつもと氏は、書籍を通じていろいろなプログラミング言語があることを知った。このころから、「いつか、自分の好みに合う言語を自分自身で開発したい」という思いが芽生えてきたそうだ。
大学では情報工学を専攻するが、そこでも「自分でプログラミング言語を開発したい」とまで思う学生は皆無。それでもまつもと氏は、少年時代からの夢を抱き続け、卒業論文のテーマに「プログラミング言語のデザイン」を選ぶ。Ruby開発に着手したのは、それからさらに後のこと。子どものころの「プログラミング言語を作りたい」という夢を捨てず、ずっとずっと考え続けたからこそ、Rubyは誕生したわけだ。「新しい技術は、一朝一夕ではなかなか生まれません。地道なことですが、『継続すること』に勝る道はないと思います」(まつもと氏)という。
これからRubyを習得するエンジニアには、「Rubyをきっかけに、コンピュータサイエンスに興味を持ってほしい」(まつもと氏)。Rubyはアルゴリズムや数学、数値計算、パターンマッチング、文字列処理やネットワークなどのすべてに関連し、こうした知識を得ていればもっとプログラミングが楽しくなり、技術力やプログラミングスキルの向上にもつながるという。「私自身、ずっとRubyに携わる中で、技術スキルも向上しましたし、コミュニティを運営するようになって、コミュニケーションスキルや、議論の本質を見抜く力を養うこともできました。Rubyを開発したことで得た財産はいろいろありますが、これからもその過程を楽しみながら、Rubyの開発を継続したいと考えています」(まつもと氏)
|
|
提供:マイナビ転職
企画:アイティメディア営業本部
制作:@IT自分戦略研究所編集部
掲載内容有効期限:2009年2月27日
|