| ビジネス | WinDbg入門 | Windowsカーネル分析ノート |
前回に引き続き、次のPDF論文の一部を紹介します。
C++の学び方
筆者は時折、友人や知人の書いたC++ソースコードをじっくり眺めることがあります。クラスの使い方はいったいどうなっているのだろうか?あるいは、(あまり評判のよくなかった)MFCの世界をきちんと理解したうえで使用しているのだろうか?本「IT談話館」では、C++設計思想をしつこいほど紹介しています。皆さんの中には、C++設計思想を理解しても、その知識が現実の作業にどのような効果をもたらすのか不安な方もいらっしゃるはずです。
開発現場では、各種の統合開発環境(IDE)を導入し、開発生産性を向上させているのが普通です。それぞれのIDEは、ウィザードという機能を用意し、プロジェクトの雛形を作成してくれます。しかし、"なぜそのような雛形コードが用意されるのだろうか?"、と真剣に考えている開発者が何人いるのでしょうか。さらにいえば、このような基本的な疑問を提示できるだけの問題意識と基礎知識を備えている技術者は何人いるのでしょうか。ご承知のように、IDEのバージョンが上がり、ウィザードの自動生成コードが変更されてしまうと、開発現場ではいろいろな問題が発生し、その対策を忙しく探す人が悲鳴を上げます。
C++設計思想に触れておくと、IDEを評価する基礎が備わります。各IDEが備えるコンパイラーオプションやリンカーオプションは、C++設計思想の中から誕生しているからです。C++設計思想に触れておくと、IDE環境が自動生成するコードは"推理小説"のように読めるはずです。できの悪い推理小説を書き上げるIDEの採用はなんとしても避けたいところです。明確な論理を欠く変更。それは、"ロックイン"(囲い込み)などと呼ばれます。
本日は、10ページの「Education must play a major role in this move to ...」で始まる段落の内容を検討します。この段落は次のようなことを強調しています。
・標準ライブラリを使用することが大切である。
・抽象度の高いプログラミングを目指すべきである。
・低レベルプログラミングでは標準C++の長所を引き出せない。
・低レベルプログラミングは必要なときにのみ採用すべき手段である。
・教育の役割がよりいっそう重要である。
これは、C++を設計した当人である、Bjarne Stroustrup氏のアドバイスです。筆者はこのアドバイスに賛成します。そして、これらの視点に立ち、現在各書店から売り出されているC++入門書籍を眺めてみると、購入対象となるのは数冊しかない、といってよいでしょう。現在のC++プログラミング教育には問題がある。Stroustrup氏は別の論文でこのように述べています。
C++はSimula(設計)とC(実装)を融合させた成果物です。この歴史的な融合は、現在のほぼすべてのプログラミング言語に影響を与えています。
| WinDbgアプリケーション開発独習講座 | ホーム |