プログラミング言語C++の習得が難しい理由
本日からは、プログラミング言語C++の生みの親であるBjarne Stroustrup氏の公開論文を忠実に読んでいきます。本連載で取り上げる論文は以下のサイトからPDFファイルとして公開されています。20ページ前後の分量ですから、プリンタをお持ちの方は、印刷しておくとよいかもしれません。
第1回連載資料論文
本日は、論文内の「1 Introduction and Overview」部の第1段落を精読します。「Introduction and Overview」という見出しの付け方は、一般書籍や他の論文の見出し構成と比較すると、多少変わっているといってよいでしょう。強いて日本語にすれば、"はじめに"という感じになります。
プログラミング書やマニュアルなどを読み慣れた現役開発者の多くは、"はじめに"部分を読み飛ばしてしまう傾向があります。本連載では、Bjarne Stroustrup氏の公開論文を忠実に精読することを目指していますから、"はじめに"部分さえ軽々に扱うようなことはしません。実際、Stroustrup氏の論文に関する限り、軽々に扱えるような文は一つもありません。Stroustrup氏は、1994年発行「The Design and Evolution of C++」の中で、次のようなことを述べています。
"プログラミング言語C++は、自分の世界観の表現である"
技術資料の"はじめに"部分は読み飛ばさないほうがよいと思います。"はじめに"部分にはその資料の書き手の「ソフトウェアビジネスと技術」両面の経験がはっきり現れているものです。"はじめに"部分に興味を示さない人は、"学習者"や"技術オタク"の領域を出ず、単なる"便利屋"や"単純労働者"とみなされます。有力なビジネス道具とは決してみなされないでしょう。企画力や提案能力のない開発者は所詮便利屋や単純労働者であり、使い捨ての対象になります。注意したいところです。
「1 Introduction and Overview」部分は行数にして20行前後の文で構成されています。C++言語入門書などに目を通されたことのある方は、おそらく、この20行程度の文章を読みながら、次のような2つの疑問を自然に持たれると思います。
疑問1:クラスという単語がほとんど使用されていないのは、なぜだろう?
疑問2:プログラミング言語Cへの言及がないのは、なぜだろう?
この論文はC++に関するものですから、C言語への言及は論理的に不要(実際にはこれは無理ですが)であることもあり、この意味では、疑問2への答えは簡単に用意できるかもしれません。しかし、疑問1への回答はどうでしょうか?我が国では、プログラミング言語C++といえば、"それはオブジェクト指向言語であり、クラスの使い方を覚えることが重要だ!"、という認識が幅を利かせています。この認識がいわゆる世間一般の常識になっているわけですが、結論を先に申し上げれば、C++設計者本人はそのように考えていません。「ABSTRACT」には次の文が用意されています。
"C++ is a general-purpose programming language with a bias towards system programming that supports ..."
この文内の"bias"というのは、偏見や偏向という意味を持っています。このため、この文は、プログラミング言語C++はシステムプログラミングを特に意識して設計された、と解釈できます。表現を変えれば、C++言語は「システム指向プログラミング言語」、あるいは、「マシン指向プログラミング言語」という性格が強いということです。
Stroustrup氏は、自分が設計したC++プログラミング言語をこよなく愛し、より普及させようと努力しています。しかし、C++言語は習得の難しい言語の一つです。Stroustrup氏は、"C++言語をどのように普及させたらよいのだろう?"、"C++言語をどのように説明したらよいのだろう?"、とかなり悩みます。言語設計者としての責任を感じていると考えてよいでしょう。次回からは、C++言語の歴史と特徴を整理しながら、C++言語設計者であるStroustrup氏の悩む姿を追っていきます。
前へ |
次へ
Copyright©豊田孝 2004-
2008
本日は2008-12-04です。