普及させたいソフトウェアの選択
Andrew Koenig氏が普及しようとしているソフトウェア。それは、"国際標準プログラミング言語C++の思想的な価値"、です。
Koenig氏は、「Accelerated C++―効率的なプログラミングのための新しい定跡」という書籍を著しています。この書籍は、この連載で触れているように、C++設計者であるBjarne Stroustrup氏のアドバイスを受けながら完成させたものです。
Koenig氏は、Stroustrup氏の同僚であるとともに、C++の伝道者です。Stroustrup氏はC++設計思想の更なる発展と普及を引き受ける一方、Koenig氏は、「C++の設計思想と実践的な活用方法」の伝道を行っていると考えてよいでしょう。ちなみに、「C++の設計思想と実践的な活用方法」の伝道者はKoenig氏だけではなく、MicrosoftやSunといった有力コンパイラベンダーに散らばっています。
同氏の著書「Accelerated C++―効率的なプログラミングのための新しい定跡」のホームページは、ここにあります。Koenig氏はC++の思想的な価値を普及させようとしていますから、その著書は単なるプログラミングの解説ではなく、「C++設計思想、学習論、そして、具体的なサンプルコード」で構成されています。C++の(言語文法ではなく)思想的な価値を把握したいときには、信頼できる人が書いた文献のPreface(はじめに)を熟読するのが基本です。
このはじめにには、"Abstraction"という見出しが用意されています。本「IT談話館」の各連載を継続してお読みいただいている皆さんは別ですが、IT業界にいるほとんどの方は、この"Abstraction"という用語の前で頭を垂れ、それから先に一歩も進めないでしょう。
Koenig氏は、"Abstraction"を次のように定義しています。
We define abstraction as selective ignorance--concentrating on the ideas that are relevant to the task at hand, and ignoring everything else--and we think that it is the most important idea in modern programming. The key to writing a successful program is knowing which parts of the problem to take into account, and which parts to ignore. Every programming langauge offers tools for creating useful abstractions, and every successful programmer knows how to use those tools.
赤字の文は、次のようなことを述べています。
"Abstractionは、現代プログラミングにおける最も重要な考え方である"
Abstractionとはなにか。Koenig氏は、次のように定義しています。
We define abstraction as selective ignorance
邦訳すれば、次のようになるでしょう。
"抽象化作業とは、無視する内容を選択する作業である"
この文は名文の一つといわれ、C++設計者のBjarne Stroustrup氏も、自著「The C++ Programming Language (Third Edition and Special Edition)」の第15章冒頭でこの文を引用しています。さて皆さん、この名文を目にされ、どのようなことをお感じになりますか。
Koenig氏はさらに、次のような文も用意しています。
Our approach is possible only because C++, and our understanding of it, has had time to mature.
The ability to ignore details is characteristic of maturing technologies
これら2つの文の意味は次回説明します。いずれもたいへん奥行きのある文です。
前へ |
次へ
Copyright©豊田孝 2004-
2008
本日は2008-12-04です。