C++ D&E

先日買ったC++ D&E をほぼ毎日、通勤時に電車中で読つづけ、三分の二弱くらい読んだ。シーケンシャルに読んでいるわけではないので、同じところを何度も読んだり、未読の部分がとびとびたったりするが、全体像は見えた(と思う)。

特定のパラダイムに忠実にならずにあらゆるシーンに対応できる、特定の用途にベストでなくあらゆる用途にベターな言語を目指しているというのが明確に、かつ何度も述べられている。おいらがC++を好む理由も、C++の方向性としてなんとなくそういったことを感じてきていたから*1C言語の低水準記述性を維持しながら、クラス抽象、宣言記述(型抽象)ができる言語なんて他に無い。裏を返せば、そのバランスを維持するためにStroustrup先生はかなりの試行錯誤と苦悩を経ており、その片鱗を本書から読み取ることもできる。

このC++の目指すところを「総称的プログラミング」と言う。だから次の段階として、関数抽象(ラムダ記法)が取り入れられようとするのは当然の流れなんだろうな*2

残りの分もきっちり読んじゃうぞ。

*1:Javaが嫌いなのはその逆だから。それでいてC++みたいなツラ(文法)しているのだから参っちゃう

*2:とはいえ、既にテンプレートを駆使してライブラリによって実現されているので、言語仕様に入れるべきかは若干の疑問があるが