RTとソフトウエアの歴史
はじめに
皆さんこんにちは。株式会社セックの長瀬と申します。今日から4回シリーズで、ソフトウエアエンジニアの皆さんをロボットの世界にお連れしたいと考えています。私は、Think ITの読者の大半の皆さんと同じ、ソフトウエアエンジニアです。
本連載は、「SEのためのRTシステム概論」と題し、ソフトウエアエンジニアのためのロボット概論をお話ししたいと思います。ここでは、二足歩行の制御や、ものをつかむための制御など、いわゆるロボット制御の細かい内容には触れません。それよりも、ロボットにおけるソフトウエアの可能性を感じていただき、皆さんのビジネスのヒントになる内容にしたい、と考えています。視点はソフトウエアエンジニアです。ですから、通常のロボット概論とはかなり趣が異なるものになると思います。
ロボット関連の技術は、RT(Robot Technology)と呼ばれています。字面のとおり、RTとはわれわれの土俵であるIT(Information Technology)になぞらえて作られた言葉です。RTとIT、言葉は似ていますが、発展過程から眺めると、両者は随分と異なって見えます。
それでは、まず、おのおのの発展の歴史を見てみましょう。
IT発展の歴史
コンピューター発展の過程は、一言で言うと、小型化と高速化への挑戦です。コンピューターの黎明(れいめい)期に登場したEDVACやEDSACは、トランジスタのない時代、すべて真空管とダイオードだけで組み上げられたコンピューターでした。EDVACの設置面積は45平方m程度、つまり少し広めのワンルームマンション程度のスペースだったと言われています。
最初はこんなに大きかったコンピューターも、その後の半導体技術の進展による集積化の結果、小型化を一気に進め、いまや、手のひらに載るほどまでになりました。
小型化は劇的な進化ですが、コンピューターの基本アーキテクチャの方は、実はEDVACの時代から大きく変わっていません。逐次実行制御のノイマン型アーキテクチャのままです。アドレスバスやデータバスの拡張、制御のパイプライン化などなど、高速化、高性能化のための努力は続いていますが、基本アーキテクチャは変わっていないのです。それは最近はやりのマルチコアにしても同じです。
ですから私は、コンピューターの歴史は、確立した基本アーキテクチャの上でひたすら小型化と高速化を追求した歴史、ととらえています。そのたゆまぬ努力が、高性能コンピューターを、ワンルームサイズから手のひらに載せるまでに進化させたのです。
それでは、ソフトウエアはどうでしょうか。ソフトウエア発展の過程は、一言で言うと、あいまいさと厳格さとの戦いです。
ソフトウエアは、人間が書きます。人間は、非常にあいまいな存在で、どんなに意識を集中しても誤りを犯しますし、すべてを完全に客観的にとらえることはできません。かたや相手は、完全無欠なデジタル回路です。最終的には0と1の世界しかありません。ここで、あいまいな人間とデジタル計算機との相克が生まれます。ですから、この相いれない両者の間にある谷は深く、私も含め、皆さんがバグ取りに苦労する原因となっています。
ソフトウエアはこの谷を埋めるべく、コンピューターをより人間に近づけるために2つの方法論を追求してきました。
1つは、マシン語からアセンブラ、コンパイラ言語へと言語レベルの進化を目指すこと。もう1つは、構造化設計からオブジェクト指向設計へと、現実界をコンピューターの世界に落とすことです。
これが大局でとらえたIT技術の発展過程です。コンピューターは「小型化と高速化の追求」、ソフトウエアは「あいまいと厳格の間を埋める方法論の追求」です。課題解決型の一本道の直線的な進化と言えます。例えるなら、猿人から類人猿、人への進化の過程のようなものです。