C++の設計と進化

C++の設計と進化
岩谷さんにお願いして1冊送ってもらった本書を、じっくり読む。この手のコンピュータ系の本で、読んでいて知的刺激を感じたのはすごく久しぶり。
Bjarne Stroustrupは、作家でいうとカミュオーウェル、哲学者でいうとキルケゴールプラトンヘーゲルでなく)が好みだそうで。観念先行型ではなく、経験と現実を重視する人のようだ。
たしか80年代の終わり頃、DOSで使えるC++コンパイラ(たしかZortechだったか?)をもらったのだが、当時使っていたマシンでは動作せず、その後もC++にはまる機会がないまま年月が過ぎ、なんかC++って面倒くさそうと食わず嫌いをしていたところにJavaが登場して、これに飛びついたという、かなり軽薄な言語遍歴なのであった。
Javaで最初に作ったプログラムはアプレットで、スレッドというものの扱いをそれまで経験したことがなくて、個人的にはそこらあたりが面白かった。当時はAPIの数もまだ少なくて、アプレットからはじめて、その後Javaで普通のプログラムもいくつか書いているうちに、オブジェクト指向のアプローチに徐々に慣れていった感じである。
この本を読むと、C++はCの記法との断絶ではなく連続を重視してきたことがよくわかる。高級アセンブラ、つまり言語がそこで動くマシン環境に密着した記述も可能でありつつ、同時に概念の記述も可能でなければならない、というプログラミング言語哲学が基本にある。そのため純粋オブジェクト指向主義者からは、C++は汚い言語だという評価になるのだが、でも言語なんて使われてなんぼのもんちゃうか、という考えに共感する。
あと、Simulaがその後の言語に与えた影響は絶大なものがあったようで、Simulaってどんな言語だったのかなと興味がわく。

An Introduction to Programming in Simula
http://www.cee.hw.ac.uk/~rjp/bookhtml/