エンジニアtype - エンジニアのシゴト人生を考えるWebマガジン

「コードの未来、エンジニアの未来」まつもとゆきひろが語る、明暗2つのシナリオ 【キーパーソンインタビュー】

タグ : Heroku, mruby, Ruby, SE, SI, まつもとゆきひろ, クラウド, ソフトウエア, プログラマー, マルチコア, 業界有名人 公開

 
スマートフォンの普及やデジタルマーケットの隆盛など、目に見える範囲では次々と変化が起きている昨今。それらほぼすべてを司るソフトウエア開発の部分では、どんなパラダイムシフトが起きているのか。この真相を紐解く上で重要な書籍が、今年5月に発売された。Ruby開発者まつもとゆきひろ氏による『コードの未来』だ。同氏が見据えるソフトウエアの未来とは、どんなものなのか。編集長の伊藤健吾が、拠点を置く島根県の松江オープンソースラボを尋ねた。
プロフィール

Ruby / mruby開発者
まつもとゆきひろ氏@yukihiro_matz

1965年生まれ。鳥取県米子市出身。筑波大学第三学群情報学類を卒業。1993年にオブジェクト指向スクリプト言語「Ruby」の開発に着手、1995年に公開。現在はネットワーク応用通信研究所(NaCl)のフェロー、楽天技術研究所のフェロー、Herokuグルーブノーツのチーフアーキテクトを兼務する。「Matz」という通称で親しまれる

―― 本日は貴重な機会をありがとうございます。今回、まつもとさんの最新著『コードの未来』を拝読して、それらを使いこなすエンジニアにはどんな未来が待っているのかをお聞きしたくてお伺いしました。

なかなか難しいテーマですね……。でも、拙著を読んでくださってありがとうございます。

―― この本では、数々の開発言語やプログラミング手法の現在・過去・未来について、私見を交えながら詳しく述べていらっしゃいますね。

そこで伺いたいのは、まつもとさんはソフトウエア産業の現状についてどう見ていらっしゃるか、ということです。本質的な部分では変化していないのか、何かしらのパラダイムシフトが起きているのか。

本にも書きましたが、テクノロジートレンドそのものは比較的予想しやすくて、おそらく当面はムーアの法則を軸にして進化していくと思います。来年あたりに量子コンピュータが実用化されたら、今までの流れが全部ひっくり返っちゃうかもしれませんが(笑)。まぁ、ムーアの法則を基にして考えれば、コンピュータがより安く、性能が良くなり、容量が増えるという基本ベクトルは、それほど変わらないはずです。

ただし、ここ何年かで、方向性が変わり始めたと感じる部分もなくはない。それは、ハードウエアの進化が、ソフトウエアに対しても変化を要求するようになっている点です。

マルチコア&クラウドの台頭で変わるソフトウエア開発

僕がRubyを作り始めたのはだいたい20年前なのですが(※編集部注:1993年から開発)、20年前のRubyを今のコンピュータで動かしても、非常に速いスピードで動くんですね。

ソフトウエアが「動く環境」としては、長年大きな変化はなかったと話すまつもと氏だが...

ソフトウエアが「動く環境」としては、長年大きな変化はなかったと話すまつもと氏だが…

これが示す事実は、20年以上もの間、一つのコンピュータでソフトウエアを動かすという仕組みに、実質的な変化が起きなかったということ。

それが最近、CPU一個あたりの性能の伸びが頭打ちになってきたこともあって、たくさんのCPUに処理を分散させる形に移り変わってきていますよね。そうなると、今までのソフトウエアは、せっかく生まれたメリットを享受できなくなってしまいます。

この切り口からソフトウエアのあり方を考えてみると、そろそろ開発の仕方も変わらなければならないフェーズが来ていると感じています。

―― それについてまとめているのが、御著の最終章にある「マルチコア時代のプログラミング」ですね。

はい。マルチコアだけではなく、クラウド化の流れも基本的に同じだととらえています。コンピュータの中に複数のCPUがあれば「マルチコア」になり、ネットの向こう側にあると「クラウド」になる。

いずれにせよ、ソフトウエア開発の未来を先読むキーワードは、「たくさんあるコンピュータをいかに使いこなすか?」という点に集約されます。

―― では、マルチコアやクラウドが前提になっていくと、ソフトウエア開発者に求められる働き方はどう変わっていくとお考えですか?

目先の変化からお話すると、この10年くらいの間でWebベースでの開発がどんどん増えてきましたよね。Webはもともとスケールしやすく、分散させやすいアプリケーションアーキテクチャなので、これまでWeb系の開発に従事してきたプログラマーは、マルチコア・クラウド時代にうまくフィットできる素地を持っていると思います。

汎用機時代のアーキテクチャしか知らないようなエンジニアに比べれば、未来に適応しやすいんじゃないでしょうか。

―― 確かに、Webサービスやスマートフォンアプリなどを開発するスタートアップ企業に取材をしていて感じるのは、この1、2年の間でPaaSやクラウドを利用してサービス開発をするエンジニアが急速に増えていることです。

そうですね。僕も、これからは開発環境を「自社で持たないプログラミング」が主流になっていくと見ています。そして、この「持たない」という考え方は、開発の仕事だけでなく、企業経営にも影響を及ぼす重要なキーワードになっていると思うんですよ。

「持っている」ことが、資産ではなく負債になる時代へ

昔のビジネスでは、「持っていること」がパワーの源泉でしたよね。高性能な汎用機を自社で持っている会社はいろんな業務を高速で処理できたけど、(高価で)持てない会社はそろばんでやるしかない、というように。

でも今は、「持っていないこと」の方が有利になるように変わってしまった。物理的なコンピュータを持っていると、「減価償却するまであと5年かかるから何とか活かさなきゃいけない」というように、後ろ向きの判断を生みます。すると、古いコンピュータが招く低生産によって、失うものが数多く出てきます。

つまり、保有するということが、資産ではなく負債になってしまう時代なんです。最新鋭のコンピュータがあれば開発をもっと効率化できる優秀なエンジニアがいるのに、3年前のものを使わされた結果、コンパイルに1時間も待たされてしまうとかね(笑)。

Herokuのようなクラウドプラットフォームの誕生で、開発における「持てる者の優位性」はほぼゼロクリアに

Herokuのようなクラウドプラットフォームの誕生で、開発における「持てる者の優位性」はほぼゼロクリアに

一方で、「持たない」ことがもたらすメリットは、ビジネス面、開発面共にいろんな部分に表れています。

例えば今、スタートアップ企業がたくさん生まれているのもその影響ですよね。一昔前なら、データセンターに投資したり、レンタルサーバ屋でマシンを10台買ったりと、起業するには一定以上の準備資金が必要だったじゃないですか。それが、今ならHerokuを採用するだけで、最初の1ノード分は無料で使えたりする。

そうなってくると、新しいことを始めるリスクやコストって、プログラマーが開発に掛けた時間以外はほぼゼロになります。自分のアイデアだけで勝負できるようになるし、仮に失敗しても、ほとんど負債を抱えることなく素早くやり直しができるようになる。

以前、アメリカのファンディング会社Y Combinatorを興したポール・グレアムのエッセイ「ラーメン代稼ぎ(原題:Ramen Profitable)」を読んだ時、「現代のスタートアップは少人数のグループがインスタントラーメンを食える程度の稼ぎがあれば新しいチャレンジができる」というくだりがあって、言い得て妙だなぁと思ったんです。「持たない」ことで可能になるフレキシビリティや迅速性が、能力のある人たちのチャレンジを後押ししているんですね。

そして、この流れはスタートアップにとどまらず、去年、一昨年くらいから大企業にも波及しています。

アメリカでは、ディズニーやベストバイなんかがRuby、Rails、Herokuを使って自社サービスを速く安く立ち上げようという取り組みを始めていますよね。これまではベンチャー企業の特権だった「新規サービス開発の速さ」や「開発の柔軟性」は、もうベンチャーだけのものではなくなっているんです。

―― 日本の大企業や、大手開発会社の動きはどうでしょう。

僕は大企業の”中の人”ではないので正確な分析はできませんし、各論で見れば明るい兆候も見受けられます。ただ、外から見ているだけの存在である僕の全体的な印象をお話しするなら、ちょっと「暗い未来」が待っているよなぁと。

(次ページに続く)