ビジネス WinDbg入門 すぐ落ちるWinDbgコードを書きましょう!


オブジェクト指向とマルチコア

大規模なリストラに踏み切ったIntel。表面的には、ライバルであるAMDに市場を奪われたことが原因とされています。しかし筆者はそれ以上に、市場の変化への対応誤りと、技術的な限界に突き当たっているのではないかと考えています(参考コラム)。この当たりの事実関係はゆっくり調べていきたいと思います。

今回からはHerb Sutter氏のこの論文を紹介していきます。筆者は、同氏から論文翻訳の許可を受けております。本連載では、原文をまず紹介し、(直訳ではなく)解説を掲載してまいります。原文の著作権はHerb Sutter氏に属します。本日は、次の見出し部分を吟味してみます。

The Free Lunch Is Over: A Fundamental Turn
Toward Concurrency in Software
By Herb Sutter

The biggest sea change in software development since the OO revolution
is knocking at the door, and its name is Concurrency.

この英文は次のような意味を持っていると思われますが、Sutter氏が「Concurrency」と「OO」の間にある関係をどのように認識されているのかは現時点でははっきりしません。
タダの昼飯にありつける時代は終わった: ソフトウェアの流れは
Concurrencyに向かう
ハーブ・サッター

ソフトウェア開発シーンにはOO革命以来の大変革が迫っている。
それはConcurrencyである。

Sutter氏は、2002年にMicrosoft社に入社しています(公式発表)。同氏の基本的な役割は、国際標準C++ユーザグループとMicrosoft社の間のインターフェイスの確立にあります。表現を変えれば、ソフトウェアのオープン化の流れへの対応です。このように記述してしまうと同氏の役割はきわめて単純そうに見えますが、実際はまったく異なります。

国際標準C++の世界には、C++設計者であるBjarne Stroustrup氏がおり、特定ベンダーへの方向転換を厳しく監視しています。少し話題がそれますが、Stroustrup氏はMicrosoftにおけるSutter氏の動きをこのように牽制することもあります。筆者はこの種の事情(Stroustrup氏の個性とソフトウェア業界への影響)に精通していたため、Visual C++ Express Editionの無料公開直後にオープンされたRedmondのフォーラムなどでは、このような書き込みを行っていました。フォーラムのいろいろな人の発言を総合すると、Sutter氏が設計した「マネージドC++」は、C++市場からは嫌われたといってよいと思います。Microsoftの一部MVP(Most Valuable Professional)たちは、"Sutter氏のマネージドC++を使用する意味はない"と断じています。

「OO」とはいったい何なのでしょうか。Intelが公開するこのリストにはAlan Kay氏の名前が含まれ、次のような紹介文が用意されています。

One of the earliest pioneers of object-oriented programming, personal computing and graphical user interfaces

Kay氏は初期OO(Object-Oriented)のパイオニアというわけです。初期があれば、中期、後期があるのが自然ですが、詳述されていません。OOに関しては本連載ではこれ以上触れません。オブジェクト指向と関連情報に興味のある方は、こちらの連載に目を通してください。なお、Stroustrup氏のある公開論文を読んでみると、Kay氏はSimulaのソースコードを隅から隅まで読破し、"オブジェクト"なる概念を理解したといわれます。オブジェクト指向(特に、継承という概念)の祖であるとともに、Simulaを設計したのは、この人であり、その考え方はC++設計者のBjarne Stroustrup氏とJava設計者のJames Gosling氏に強い影響を与えています。

次に知りたいのは「Concurrency」の意味です。Sutter氏は、この用語を正面切って定義していません。Hyper-thread、simultaneous、parallelなどの単語を散りばめ、読む人を(巧みに?)混乱させています。筆者は、「Concurrency」の意味に関しては、この記事この記事などが参考になると思います。いずれにしても、Sutter氏のこの論文や、IntelとMicrosoftから今後公開されるドキュメントをじっくり吟味しながら、ソフトウェア開発の歴史の中でOO以上のインパクトを持つといわれる、「Concurrency」の意味を基本から考えていきたいと思います。

前へ | 次へ


 WinDbgスクリプティング講座  ホーム


Copyright©豊田孝 2004- 2008
本日は2008-12-04です。