ソフトウェア開発の「今」と「近未来」IBM Rational Innovate 2010 Report

ソフトウェアエンジニアリングの発展に人生をささげているグラディ・ブーチ氏は、人類とコンピュータは相互補助的に共同で進化しているのだと話す。すでに賢者の風格さえ感じさせる同氏に、その目に映るソフトウェアの未来について聞いた。

» 2010年07月28日 12時00分 公開
[西尾泰三,ITmedia]

 IBMがWebSphere、Lotus、Tivoli、DB2に続く5番目のブランドとしてRational Softwareを買収したのが2003年。1981年の創業以来、ソフトウェアエンジニアリングの方向性に大きな影響を与えてきた同社は、IBMの5大ブランドとなった後も、「ソフトウェアの開発と導入に依存する組織の成功を保証する」という基本的な使命を忘れずにいる。

 このRationalを語る上で、外すことのできない3人の存在をご存じだろうか。グラディ・ブーチ、イヴァー・ヤコブソン、ジェームズ・ランボー――俗に「スリーアミーゴス」と呼ばれる彼らは、かつて、それぞれのオブジェクト指向ソフトウェア開発方法論を提唱していたが、Rational Softwareに集い、そこでモデル図と開発手法に分離した上で統一した。前者は後にUML(Unified Modeling Language:統一モデリング言語)となり、後者はUnified Processと呼ばれる開発プロセスとして、今日でもRationalの土台となっている。

 このスリーアミーゴスのうち、今もIBMに残るのは、グラディ・ブーチ氏のみだ。IBMの技術職としては最高職位に当たるフェローとして、また、現在はIBM ReserchでチーフサイエンティストとしてDNAトランジスタやニューラルネットワークの研究にもかかわる同氏だが、そのたたずまいはすでに賢者の風格さえ感じさせる。ブーチ氏にソフトウェア、あるいはソフトウェアエンジニアリングの方向性について聞いた。

ブーチ氏。FacebookやTwitterについて意見を求められると、「2000人も友人はいないからね」と笑いながら、「多くの人がやっているのだから、そこには価値があるのだろう。現代社会の一場面であることは間違いない。ただ、わたしにはそれが価値だと感じられない。別にそれがなくても毎日は変わらない」と答えた

ScalaやHaskellがブーチの興味を引く理由

―― あなたは何十年もの間、ソフトウェア開発の世界で活躍されてきましたが、ソフトウェアがどのように変化したかについて意見を聞かせてください。

ブーチ ここ数年間は、ソフトウェアが今後5〜10年ほどのスパンでどのような方向性に進むのかを考え続けてきた。確実にいえるのは、わたしたちは本当にたくさんのソフトウェアに囲まれて暮らすことになるだろうということだ。

 もう少し踏み込んで、ソフトウェアの種類、言語、ツールといった切り口で考えてみよう。まず言語について。新しいアイデアを備えた言語が登場しつつあるが、周辺環境まで含めて考えれば、それらが10年後にC++やJavaと比べて優位に立っているということはないだろう。ただ、現在、わたしの興味を引く言語の1つとして、Scalaを挙げることができる。なぜなら、伝統的な言語であるC/C++でもFORTRANでも隠ぺいできていなかった並行性の問題にScalaは光を当てているからだ。

 Haskellのような関数型の言語にも興味が出てきた。2年ほど前、関数型言語がどうしてうまくいかないかをある著名なプログラマーに尋ねたところ、「関数型言語は、難しいことをたやすくしてくれるが、たやすいことを難しくしてしまう」という答えだった。この辺りが伝統的な言語とハイブリッドな形でうまく進化していけば、10年後には人気が出るのではないかと思う。

 ツールとしては、Eclipseがすでにソフトウェア開発のシフトを起こしたといえるが、チームの重要性がますます高まるだろう。ソフトウェア開発というのは経済的な側面もあり、グローバル化も進んでいるので、大きなチームが分散して開発するというのが今後も続くだろう。

 ソフトウェアの種類についてだが、さまざまなものがIPアドレサブルになってきているのはチャンスではあるが、問題でもある。どこかで収縮が起こるのではないかというのがわたしの考えだ。

―― ソフトウェアへの依存度が高まることについてはどう思うか?

ブーチ 例えばC++を開発した人は、ソフトウェアがここまであらゆる場所に入り込み、普通の人には空気のような存在となったことを想像し得ただろうか。車に乗っても、飛行機に乗っても、銀行のATMを操作しても、ソフトウェアへの信頼が高まっているのを感じる。15世紀にグーデンベルグによって活版印刷が発明されたときも、エジソンが電灯の事業化を進めた際も、そこには常に批判がつきまとっていた。それと比べると、実質が伴っているかは別にして、ソフトウェアに対する信頼は強い。

ソフトウェア開発はコミュニケーションそのもの

―― もう少し短期的な話として、今後2〜3年ほどでプログラマーはどんな変化を目にするようになるか聞きたい。今後はどうしたスキルが求められるのか。

ブーチ ソフトウェアがコモディティ化すればするほど、特別なスキルを持った人材が求められる。そうした人材を育てる教育を提供する大学ももちろん存在するが、あまりにも多くの大学が、プログラミングを職業訓練とみなしていることを個人的には少し懸念している。板金と同じようなものだと思っているようだ。

 ともあれ、強調したいのは、「ソフトウェア開発はコミュニケーションそのもの」であり、決してコーディングだけではないということだ。また、“良いコード”とは何かというのを、先人たちがやってきたコードから学ぶ必要がある。よく書かれたコードを比較するというのは非常に意義のあることなのだから。

―― 2年前のこのカンファレンス――当時はRational Software Development Conferenceでしたが――で、わたしは「ソフトウェアエンジニアリングはどこまで高みに達したのか?」とあなたに尋ねました。あなたの答えは「道半ば」でしたよね。あれから2年たって、ソフトウェアエンジニアリングは少しは進化できたのでしょうか?

ブーチ よく覚えている。現在は、2つばかり岩を上った程度ではないだろうか。難しいのは、われわれがその頂を目指して登っている山は、構造地質学の観点で言うと、どうやら段々と高くなってきているようだ(笑)。

―― あなたもたびたび指摘していますが、人類は、ソフトウェアへの依存度を高めています。わたしには、ソフトウェアやデータがまるで皮膜のように人間を包んでいる錯覚に陥ることがあります。このことが人類の進化にどのような影響を与えると思うか意見を聞かせてください。

ブーチ ラジカルな見方かもしれないが、現時点で予測し得る将来で、ヒューマニティ(人間らしさ)とコンピューティングの融合が起こり、コンピューティングがヒューマニティ、あるいは人類をより拡張(オーグメンテーション)するだろう。

 すでにわたしたちは、電話番号も住所も覚えなくなりつつあるし、調べ物はWikipediaを見れば済むと考えるようになっている。融合はすでに起こり始めているといってもよい。ロボット技術の進化なども併せて考えると、部分的にコンピューター化していることを自然に感じられる日が来るだろう。スタートレックのようになるかは分からないけど。

 これは20〜30年前であれば起こらなかったことだけど、人類とコンピュータは相互補助的に共同で進化している。この進化の方向性はエキサイティングだ。

関連キーワード

IBM | Rational | イノベーション | IBM Cloud


Copyright © ITmedia, Inc. All Rights Reserved.

注目のテーマ