自分戦略研究所 | 自分戦略研究室 | キャリア実現研究室 | スキル創造研究室 | コミュニティ活動支援室 | エンジニアライフ | ITトレメ | 転職サーチ | 派遣Plus |

IT業界の冒険者たち

第20回 C++の創造神

脇英世
2009/6/11

前のページ1 2

 当時からそうだったのかどうかは不明であるが、B・ストラウストラップは彼の趣味である歴史と哲学がC++の発展と形成に少なからず寄与していると考えているようだ。B・ストラウストラップは経験主義的哲学の方に共感できるという。プラトンよりもアリストテレス、デカルトよりもヒュームに共感を覚え、パスカルには悲しいことに共感できないという。キルケゴールを読み、ヘーゲルを読み、マルクスを読んだという。B・ストラウストラップは最近ますます哲学的色彩を強めている。

 B・ストラウストラップの著書『プログラミング言語C++』はC++言語のバイブルで、1985年に第1版が、1991年に第2版が、1997年に第3版が出ている。ボリュームの増加も著しく、英語版原書で、第1版が328ページ、第2版が669ページ、第3版が910ページと300ページくらいずつ増える。日本語訳はトッパンから出ているが、第1版は382ページ、第2版は889ページと膨張した。第2版の調子だと第3版の日本語訳は1200ページ程度になるのではないかと思う。原著第3版は判型が大きくなっているので、それ以上になるかもしれない。この増加分はどちらかといえば哲学的な考察部分であり、記述も具体性を重んじた第1版以来、徐々に抽象性を強めている。

 B・ストラウストラップはC++言語については『注解C++リファレンスマニュアル(The Annotated C++ Reference Manual、ARMと略す)』『C++の設計と発展(The Design and Evolution of C++、D&Eと略す)』も書いている。B・ストラウストラップのインタビュー記事ではARMやD&Eが頻出するので、本式にC++言語をやるにはこれも読まなければならない感じである。初心者がそんなにたくさん読むのは、不可能ではないとしてもなかなか大変だろう。

 B・ストラウストラップは読書好きである。就寝前の1時間半ほど、技術文献でない本を読むという。B・ストラウストラップは自分のホームページに自分の読んだ本のリストを挙げている。日本の読者になじみ深いものだけを取り出してみた。

  • アルベール・カミュ『ペスト』『異邦人』

  • ドストエフスキー『悪霊』

  • アルクサンドル・デュマ『三銃士』

  • ウンベルト・エーコ『薔薇の名前』

  • ジョージ・オーウェル『動物農場』

  • レイモンド・チャンドラー

  • ジョン・スタインベック

  • ソルジェニーツィン

  • トールキン『ホビット』

  • ヘロドトス『歴史』

  • ホメロス『オデュッセイア』

 デンマークの作家は多分紹介しても分からないと思う。わたしも分からない。また歴史物は国情の違いから分からないだろう。比較的戦史物が多い。ほかにSF小説が好きらしい。

 いろいろ資料を読んでみると、B・ストラウストラップが特に好きなのは、アルベール・カミュとジョージ・オーウェルらしい。

 大読書家であることがB・ストラウストラップの思考にどのような影響を与えているかについては次のような有名な一節がある。

 「プログラミング言語は世界のほんのちっぽけな一部分にすぎない。その程度のものだから、あまり真剣にとり過ぎるべきではない。バランス感覚を保つべきで、最も重要なことはユーモアのセンスを保つということである。C++は洒落とジョークに富んでいる」

 誰でも「おや?」と思うだろう。おっ、なかなかできるのではないかと思う。

 これについてマリアン・コーコランというオブジェクト指向で有名な女性がB・ストラウストラップに鋭く質問している。B・ストラウストラップの答えは次のようであった。「C++はCからさらにそれを進めたものです。C++は本来++Cと呼ばれるべきだったんです。C++は、『大変良いC』に対するジョージ・オーウェルの(小説『1984年』)ニュースピークなんです」

 まったくの肩すかしで、わたしの翻訳が下手なこともあるが、ユーモアの感覚が常人とは大分ずれているようだ。わたしも何度もインタビューの編集をしたことがあるので分かるが、この前後の分析をしてみると、インタビューしたマリアンもあぜんとしたらしい。B・ストラウストラップはいかにも研究一筋の天才らしい。

 C++はB・ストラウストラップが開発したものであるが、1997年11月、ANSI(米国規格協会)とISO(国際標準化機構)による標準化作業が終了した。この標準化作業にB・ストラウストラップは熱心に協力した。出来上がった規格文書は膨大な厚さを持つものである。野にあったC++はいまや裃(かみしも)を着た国際標準となった。それとともにC++にはテンプレート、例外、名前空間、ランタイム・タイプ情報(RTTI)、標準ライブラリなどのコンセプトが盛り込まれた。これらの1つでも欠いたC++はあり得ないというのがB・ストラウストラップの主張である。しかし、このようにしてできたC++1997は硬直化傾向があり重い。

 B・ストラウストラップの本の書き方は、第1版の原稿を基に第2版を書くというものだ。このやり方が悪いとは思わないが、文法が変わったのに前の例題を残すと古い文法形態が残る。第2版にはいくつもそういうものがある。また第1版でバグを出すと、第2版ではプログラム全体をスタイルを変えて全面的に書き直してしまう。悪くはないが前のバグにけりがつかない。こういうやり方にはあまり感心しない。

 C++から派生したといわれるJavaに対するB・ストラウストラップの批判はかなり厳しい。JavaはC++というよりSmalltalkに近く、多くのユーザーはJavaのセイフティとセキュリティを混同していると批判している。かつての革新派が保守化しているような一面を感じる。

 B・ストラウストラップの本を読んでいると、本式にはUNIXを使っているようだが、日常的には少し前にはマッキントッシュ、最近はウィンドウズ95とウィンドウズNTを動かしているようだ。B・ストラウストラップはウィンドウズのプログラミングにC++が使われるようになったことには驚かされたと印象を語っている。ただしウィンドウズにカプセル化のコンセプトを持ち込むためにC++を使ったことには驚かなかったといっている。

 B・ストラウストラップは飛行機の旅行とホテルの部屋が嫌いであるのにかかわらず、新しい場所を訪ねるのが好きだそうだ。また、おいしい料理と飲み物が好きでハイキングが好きで、写真が好きだそうである。やわらかい本を書かせたら案外面白い読み物になるかもしれない。

補足

 ストラウストラップはJavaに対してナーバスだ。絶頂期を少し過ぎたのかもしれない。C++のスローガンが決まり過ぎてしまった。

  • C++はより良いCである

  • データ抽象をサポートする

  • オブジェクト指向プログラミングをサポートする

  • ジェネリック・プログラミングをサポートする

 ストラウストラップは、C++はパナセア(万能薬)ではないともいっている。

本連載は、2002年 ソフトバンク パブリッシング(現ソフトバンク クリエイティブ)刊行の書籍『IT業界の冒険者たち』を、著者である脇英世氏の許可を得て転載しており、内容は当時のものです。

前のページ1 2

» @IT自分戦略研究所 トップページへ

自分戦略研究所、フォーラム化のお知らせ

@IT自分戦略研究所は2014年2月、@ITのフォーラムになりました。

現在ご覧いただいている記事は、既掲載記事をアーカイブ化したものです。新着記事は、 新しくなったトップページよりご覧ください。

これからも、@IT自分戦略研究所をよろしくお願いいたします。