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


Cファミリ言語の正当な使い方

Bjarne Stroustrup氏(Mr.BS)のインタービュー記事を読む第8回目の今回は、前回に引き続き次の公開記事を読みます。

2000年7月インタービュー記事

本日は次の質問への3人の回答を検討します。

・In your experience, what are the most common mistakes developers make in [C/C++/Java]?

この質問は、C言語ファミリ開発者の間に共通して見られる間違いについて尋ねています。それではBjarne Stroustrup氏(Mr.BS)の回答を中心に見ていきます。他の2人の方の回答は必要に応じて参照することにします。

Mr.BSの回答:
・C++をCやSmallTalkの感覚で使用すること。
・必要以上に複雑な基本クラスを設計してしまうこと。
・上記の問題を回避するために抽象クラスを1989年に追加した(実質は、インターフェイス)。
・C++固有の考え方(クラス、テンプレート、標準ライブラリ)を理解することが何よりも大切である。
・C++の新しい機能を使用することも大切であるが、それ以上に、C++的なプログラム設計とプログラミングスタイルを学ぶべきである。

筆者はこの質問と回答は現在でも大変重要な意味を持っていると考えています。お時間のあるときに精読してみるとよいと思いますが、Ritchie氏の回答は、他の2人と異なる内容を持ち、Cの難点を明確にしています(タイプミス、配列境界の管理失敗、ポインタ操作の誤り、Cコンパイラの性格、開発者の自己責任)。もしCが使いやすいと主張する人がいるのであれば、その人はコンピュータ全般にかなり精通しているといえるでしょう。少なくとも、低レベルプログラミングの虜になっている可能性があります。

不思議なことに、Mr.BSとGosling氏の回答内容は一致しています。基本クラスを設計し、そこに多数のメソッドを定義してしまうことは大きな間違いであるというものです。"何でもオブジェクトにしてしまう"、というわけです。おそらく、現在のオブジェクト指向(OO)プログラマの中で、クラスメソッドとインスタンスメソッドの相違と利点などをきちんと理解している人は多くはないでしょう。オブジェクト指向論が盛んではあっても、その基礎を身に付けている人はきわめて少ないということです。

本日の注目点は、「抽象クラスは1989年」にC++に追加されたということです。"C with Classes"公開後、10年後に抽象クラス(インターフェイス)という概念が導入された歴史的な事実はかなりの意味を持ちます。つまり、それ以前の開発者や専門図書、あるいは、それらの影響を受けた人々のC++理解度には疑問符がつくということです。Mr.BSは、結論として、C++の新しい言語機能を覚えるのではなく、プログラム設計とプログラミングスタイルを学ぶことを主張しています。

前へ | 次へ



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


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