「C with Classes」の普及背景
Bjarne Stroustrup氏(Mr.BS)のインタービュー記事を読む連載第3回目の今回は、前回に引き続き次の公開記事を読みます。
1996年3月25日インタービュー記事(新リンク先)
本日は、公開記事内の次のような質問へのMr.BS回答を詳しく検討します。
・Since new languages are so hard for people to accept, how come C++ became accepted as readily as it did, and what did you do to try to get people to use it?
この質問は、"C with Classes"と呼ばれた「初期C++」言語が多くの開発者の間に受け入れられた理由を尋ねています。新しいプログラミング言語を作成したとしても、開発者の支持が得られなければ意味がありません。1994年発行の「D&E」の第7章「Interest and Use」には、C++ユーザ数の増加具合が紹介されています。1979年10月はユーザ数1、1980年10月は16人などとなっています。
新しいプログラミング言語を普及させるには大変な努力が必要です。この連載を読むと分かりますが、一般的にはかなりの誇大宣伝(ハイプ)が必要です。ちなみに、AT&TがC++宣伝に使用した総額は3000ドルといわれています。信じられないほど少ない額です。C++はなぜ多くの開発者の支持を得ることができたのしょうか。それでは、Mr.BSの回答を見てみましょう。
Mr.BSは、開口一番、"たいへん難しい!"、と答えています。すでにこれまでの連載で触れたように、"C with Classes"は渡米後1年という短時間で作り上げられたプログラミング言語です。AT&Tの関係者はおろか、設計した当の本人も普及理由を見い出せないのは当然でしょう。C++が誕生した1980年といえば、Windowsで有名なMicrosoftが創業してからちょうど5年経過した時期で、パソコンやPCなどの用語も現在ほど一般化していない時期です。Mr.BSは、次のような理由を挙げています。
理由1:C文化を継承したこと
理由2:適応範囲が広かったこと
理由3:抽象度の高いコードが書けたこと
理由4:嘘をつかなかったこと
ご覧のように、Mr.BSの説明はたいへん分かりやすいものです。わが国の多くの開発者は、おそらく、理由3に含まれている"抽象度の高いコード"の、「抽象度の高い」という部分の意味を実感をもって理解できないのではないかと想像されます。「抽象度の高い」というのは、一言で言えば、"プログラミング言語が私たち人間の発想に近づいた"(ゆえに、覚えやすく、かつ、使いやすくなった)ということです。さらに詳しい説明が必要なことは十分承知していますが、本連載ではこれ以上深入りしないことにします。ここでは、"プログラミング言語の進化の歴史は、私たち人間の発想の取り入れ"、という一面があることを頭の隅に入れておきましょう。C++の特徴や学び方に興味のある方は、この連載を一読してください。
前段でも述べたように、Mr.BSの説明はたいへん分かりやすいものです。なぜだと思いますか?それは、自分の考えを自分の言葉で表現しているからです。Mr.BSのいろいろな公開記事を読んでみると、"自分の考えをしっかり持ち、そして、それを自分の言葉で分かりやすく表現する"、ということをとても大切にしています。それは当たり前のことでしょう、と言う人もいるかと思いますが、実行するのはそうたやすいことではありません。ITの専門家といわれる多くの人々が、似たような単語と専門用語を異口同音に使用しているのを目の当たりにすると、筆者は空しい気分になります。
Mr.BSは、限りなく嘘に近いハイプ(過剰宣伝)を避け、自分の考えているプログラミング言語像(この場合C++)を自分の言葉で素直に語っていたと想像されます。C++でできることともに、できないこともしっかり説明した、述べています。しかし、それだけでC++が広く普及したわけではないと思います。そこには、「UnixとC」文化がしっかりと根を下ろそうとしていたという、時の流れ、つまり、"時運"、というものもあったはずです。UNIXの一部はプログラミング言語Cで記述されたことでも有名です。
Mr.BSはCを侮辱するような発言は一切しません。Cは「Old C」や「Plain C」と呼ばれた時期もあったようですが、Mr.BSはそれは侮辱的な表現なので、C++という名称を採用したと述べています。Dennis Ritchie氏などの先輩たちを陰で批判するようなことも(筆者が知る限り)ありません。本人のいる前や公の場では行っているようですが...。
「The C Programming Language Second Edition」という書籍を読んでみると、同書付属のサンプルプログラムはMr.BS作成のC++ Translatorで動作確認している、という文面があります。これは、Brian Kernighan氏とDennis Ritchie氏がMr.BSの活動を支援していたことをはっきり示しています。Dennis Ritchie氏(Cプログラミング言語の設計者)、James Gosling氏(Javaプログラミング言語の設計者)、Mr.BS(C++プログラミング言語の設計者)の3人の考え方は、この連載で詳しく紹介しています。
前へ |
次へ
Copyright©豊田孝 2004-
2008
本日は2008-12-04です。