The Takeda Award 理事長メッセージ 受賞者 選考理由書 授賞式 武田賞フォーラム
2001
受賞者
講演録
リーナス・トーバルズ
page 1
page 2
page 3
page 4
page 5





リーナス・トーバルズ
   

back next


図 4

図 5
従って進化して適所を開拓し、生き残った物こそが、成功した製品なのです。これが、ソフトウェア開発に対する私の主たる考え方です。重要なことは、製品、つまりプログラムの進化です。他のエンジニアリング分野でも同様のことが言えると思いますが、ここでは主にソフトウェアについてお話します。

図 4

進化について語る場合、4つの基本概念があります。話をする生物学者によって多少変わりますが、これらの4つの概念はインターネットから引用したものです。

最も明白で、皆さんが良くご存知なのは、突然変異という概念です。進化していく過程で漸進的な小さな変異が、長い時間をかけて起こります。突然変異が常に良いとは限らない、というは念頭に置いておくべきです。生物学における突然変異はほとんどの場合が偶発的です。しかし進化が偶発的でなく、望むらくは、優秀な人間によって方向付けをされた時でさえ、突然変異または変化は時に有害となります。非常に優秀な人でもミスをおかしますし、ユーザーが実際にどのようにプログラムを使用するかを知っているとは限りません。このことも念頭に置いておく必要があります。

二番目の概念は、どんな製品に対しても相互交流または組み換えが、非常に重要だということです。生物学者はこれを「セックス」と読んでいますが、この概念は多種多様なテーマがあるだけでなく、この多種多様なテーマを組み合わせるということでもあります。これが、多くの新しいアイデアを生み出す方法です。二つの既存のアイデアを組み合わせると、突如として元のアイデアよりも、より大きく、より優れたものが実際に生まれます。これが、開発において飛躍を得る方法です。

これは、ソフトウェアでも非常に重要なことです。ソフトウェアや製品は、単独で存在するものではありません。そして実際に、プログラムの善し悪しは、ユーザーうまく相互作用できるかだけでなく、そのプログラムの周りのすべてのプログラムとうまく相互作用できるかで判断されます。その働きをさらに改善するためには、すべての要素が互いに理解しあうように、それぞれの要素間で相互交流を行う必要があります。最も重要なのは、競争と勝者の選考です。なぜなら、突然変異と組み換えはプログラムを悪化させる可能性があるからです。どの変化が良くて、どの変化が悪いのかを選択できる方法を用意しておく必要があります。

競争には二つのレベルがあることを知っておくことはとても重要です。プログラムそのものの発展を促進するために、プログラム内に競争が存在します。しかしまた、プログラム生態系全体のレベルでも競争があり、ここではいくつかのプログラムが淘汰されます。どちらのレベルでの選択も必要です。

三番目の概念は、進化の主要な特長は大規模並列である、ということです。進化は、試行錯誤の結果であるとは、別の生物学者が好んで使用する言葉です。ご存知のように、自分がいつも正しい方向に進んでいるとは限らないし、時として悪い変化を相殺するために、同時に多くの変更を行うこともあるかもしれません。長い間には悪いものは消滅し、いいものだけが残るものです。ここで重要なことは、欠点が一つしかないということはありえないということです。間違いを犯した場合に、もし一世代の製品しか持っていないとしたら、第二世代へは移行することはできません。この種のリスクを考慮し始めると、並列の要素は事実とても重要となります。


図 5
 
back next
講演録トップへ

武田賞フォーラムトップへ

武田賞TOPへ