ビジネス WinDbg入門 Windowsカーネル分析ノート


常識を尊重すること

 前回に引き続き、次のPDF論文の一部を紹介します。

C++の学び方


 私たちのIT業界は、日進月歩の技術革新が繰り広げられる大変慌しい世界といわれます。しかし一部の人は、"同じ技術が名称を変えて繰り返し登場しているに過ぎない!"と達観しています。筆者はこのような意見を耳にすると、"すごい人だなぁ"と思うと同時に、"そうかもしれない"と納得することがあります。私たちのIT業界とはいったいなんでしょうか。高度な技術革新が忙しく繰り広げられている業界なのでしょうか。

 本日は、9ページの「No. I don't consider this ...」で始まる段落の内容を検討します。この段落の前には、C++設計者であるBjarne Stroustrup氏自身の「C++学習論」がリストとして整理されています。リスト内で注意していただきたいのは、lower-level detailsとlibraryという単語です。Stroustrup氏は、C++初学者は、concepts(概念)とtechnique(テクニック)をまず学ぶことを繰り返し説きます。conceptsとtechniqueは、low-levelに対してhigh-levelです。しかし、C++は最終的にはlibrary開発者向けのプログラミング言語であることを忘れるべきではありません。簡単に言ってしまえば、これからC++開発者を目指す人は、まずライブラリの使い方を学び、最終的に、ライブラリ開発者を目指すことにになります。これは一見すると難しいように聞こえますが、ソフトウェア技術者の一般的な定義です。ライブラリ開発では細かな技術詳細に関する知識が必要になります(この当たりの詳しい事情については、姉妹編である「C++の学び方(実践編)」連載に譲ります)。

 段落内では、次のようなことが述べられています。

・私のC++学習論は斬新なものではない。
・私のC++学習論は常識に沿ったものである。
・常識というものは(重要ではあっても)世の中の表面的(派手)な動きの中に埋没してしまうものである。

 かなり耳の痛い指摘です。Stroustrup氏は、「世の中の表面的な動き」として、次のようなことを挙げ、牽制しています。

・C++を学習する前にCを学んでおくべきであると訴える説
・オブジェクト指向を理解するためにはSmalltalkを学ぶ必要があると訴える説
・プログラミングはオブジェクト指向プログラミングでなければならないと訴える説
・プログラマはソフトウェア開発プロセスを理解していなければならないと訴える説

 これらの「世の中の表面的な動き」は批判の対象となっているわけですが、現在でも十分通用する批判内容です。皆さん、Stroustrup氏の洞察力はすごいと思いませんか。「世の中の表面的な動き」を"技術革新"と考えるのは危険です!Stroustrup氏の発言内容は大変地味なものですが、同氏の発言は的を得ている、と筆者は考えています。
前へ | 次へ


 WinDbgアプリケーション開発独習講座  ホーム


Copyright©豊田孝 2004- 2008
本日は2008-11-22です。