追記

促音で始まる送りが正しく入力できないという不具合があったので、beta2 をリリースしました。よろしくお願いします。

C++ in Coders at Work

Coders at Work: Reflections on the Craft of Programming

Coders at Work: Reflections on the Craft of Programming

Coders at Work で C++ はどのように語られていたか、という話題。ほとんどの Coder が「C++ は巨大で複雑で一貫性がない」と感じているようです。この記事で登場する主な批判を圧縮して列挙。

http://gigamonkeys.com/blog/2009/10/16/coders-c++.html

  • コンパイラの品質が悪くて安全に使えねーよ by Jamie Zawinski
  • 巨大で複雑だからコーディング標準で機能制限せざるを得ないよね by Joshua Bloch
  • がらくたの寄せ集めできれいに設計されていない by Ken Thompson
  • 未だに 70 年代風のデバッガとリンカを使わざるを得ないってのは酷い by Brendan Eich
  • 様々な欠点はあるが適応できるから気にしない by Brad Fitzpatrick
  • オブジェクト指向的には中途半端だがメタプログラミング言語としては面白い by Dan Ingalls
  • 単純で小さくないから俺は嫌い by Joe Armstrong
  • Bjarne Stroustrup の努力は素晴しいが C との互換性が諸悪の根源 by Guy Steele

C++ コンパイラが今ほど成熟していなかった頃の経験を元にしている箇所もあるので、現在の恵まれた状況と単純に比較するのは無理がありますが、まあ、言いたことはわかりますね。

ところで Ken Thompson は Bell 研時代と思われるエピソードを以下のように語っています。

I would try out the language as it was being developed and make comments on it. It was part of the work atmosphere there. And you’d write something and then the next day it wouldn’t work because the language changed. It was very unstable for a very long period of time. At some point I said, no, no more.

In an interview I said exactly that, that I didn’t use it just because it wouldn’t stay still for two days in a row. When Stroustrup read the interview he came screaming into my room about how I was undermining him and what I said mattered and I said it was a bad language. I never said it was a bad language. On and on and on. Since then I kind of avoid that kind of stuff.

意訳:

開発中の C++ を評価することになった。当時はそれも仕事の一部だったね。それで、何か C++ のプログラムを書く。ところが次の日にはそれが動かなくなる。言語仕様が変わったからさ。とにかく長い間とても不安定だった。もう嫌だ、勘弁してくれって思ったな。

あるインタビュー記事で、コンパイラが二日続いて安定しなかったから使うのを止めたって言ったことがある。それを読んだ Stroustrup が俺の部屋に飛び込んできて、どれだけ彼を侮辱してるかとか、俺がしゃべった内容についてとか、C++ を酷い言語だと言ったろとかって、キーキー言うんだよ。俺は酷い言語だなんて言ってないのにね。延々とだよ。それで俺はかかわるのをやめたんだ。

これは本当なんですかねぇ。もしそうだとしたら、今の Bjarne StroustrupC++ の普及にかける努力と熱意の裏には、この時の悔しさも無意識としてひっそり隠れているのかも。D & E を読み返してみようかしら。