プログラミング雑誌に載せる私の記事は、「C++の歴史」と題して、文字通り、C++の歴史について書く予定であった。当初は、D&Eを元にして、Bjarne Stroustrupを主人公にしたて、時系列にそって、記述して良く予定だった。
FCD制定にあたって、かなり大幅な変更が加わったので、post-Pittsburgh mailingがでるまでは、C++0x本の記述も、うっかり進めるわけには行かぬ。記事を書くには、好都合だ。
もう一ヶ月以上前、雑誌の話が来た時に、このように、書き出した。
1979年のことであった。イングランドはケンブリッジ大学で、ひとりの男が、博士号を取るための研究に勤しんでいた。彼の名はBjarne Stroustrup、当時29歳。後に、「C++の設計者にして最初の実装者」と呼ばれる男である。
しかし、すぐに壁に突き当たった。Bell Labに入った後の、Bjarne Stroustrupの足取りは、詳しく追うことができないのだ。
おそらく、本人に聞けば、教えてくれそうな気もする。しかし、よくよく考えてみれば、それはBjarne Stroustrupの伝記になってしまう。C++の歴史ではない。
結局のところ、C++は、Bjarne Stroustrupがクレジットを主張できるようなものではないのだ。Bjarne Stroustrupが、真に、自由に言語を設計できたのは、ほんの数カ月の間のことであった。それ以降は、すぐにBell Labのメンバーの意見が入ったし、すぐに、ISOによる標準規格の制定作業という形になってしまった。Bjarne StroustrupがC++に与えた影響は、もちろん無視できないが、それほど大きくもないのだ。
というわけで、Bjarne Stroustrupを中心にした、編年体の歴史書は、行き詰まってしまった。全然文章が進まないのだ。D&Eを参考にすれば、書けることは書けるだろうが、支離滅裂になって、ひどくまずい文章に成り下がるだろう。
だいたい、C++の各機能は、単純に時系列で追うことはできない。クラスならクラス、テンプレートならテンプレートと、分けて考えなければならない。
そもそも、D&Eに書いてあることは、D&Eを読めばいいのだ。私はあの時代を生きていなかった。Bjarne Stroustrupを超える文章を書けるわけがない。
しかし、D&E以降の歴史なら、需要があるはずだ。C++以降の歴史は、いろいろと文章になって点在しているが、それらをまとめた本はない。
さらに、記述方法だが、各機能ごとに、紀伝体で書けばいいのではないか。
というわけで、D&Eに載っていない、それ以降の歴史を書くことにした。テンプレートやSTL。具体的な例を上げれば、exportにまつわる歴史だ。exportが規格に入るまでの歴史は、これが、なかなか面白いのだ。
さらに、我が日本の恥づべき黒歴史、EC++についても、面白いことが書けるだろう。EC++を提案した連中(複数の日本企業)は、C++の多くの機能(例えばnamespaceなど)について、「新しすぎて(俺らには)使えないし、難しすぎて(俺らには)実装できない」と、大真面目に答えたのである。
余裕があれば、C++0xにまで、手を広げられるかもしれない。面白そうだ。
「Bjarne Stroustrup 氏の伝記」も、読んでみたいです。雑誌が続くようなら期待したいのですが
ReplyDelete