CとC++
LinusのC++についてのコメントメモ。C++信者は流行に踊らされてプログラムの本質を見失っているという苦言。
C++ はひどい言語だ。これは、多くの平均以下のプログラマーが使ってるために さらに輪をかけてゲロゲロになっていて、どうしようもないゴミが 簡単に生産されるようになってる。正直いって、C を選ぶ理由が C++ プログラマーを 追っぱらうため *だけ* だったとしても、それ自体、C を使う強力な理由になりうる。 つまりこういうことだ: C を選ぶのは、唯一のまともな選択だ。以前 Miles Bader が 冗談で「人をムカつかせるため」といっていたが、実はこれは本当だ。 ぼくは C よりも C++ をプロジェクトに使いたがるようなプログラマーは、みな *本当に* ムカつかせておきたいようなプログラマーだという結論に達した。 そうすれば連中がやってきてぼくの関わっているプロジェクトを めちゃくちゃにすることがないからね。 C++ はトンでもなく悪い設計の元になりうる。どうせこの言語ではいつも STL やら Boost やら、その他ゲロゲロベロベロの「素敵な」ライブラリの機能を使って、 それがあんたのプログラムに「役立つ」んだろうが、以下のことが起きる: - うまく動かないときにもたらされる際限のない苦痛 (あと STL とか、特に Boost が 安定してるとか移植性があるとかいう奴は、どいつもこいつも大ウソつきで、 もはや笑えるレベルを超えている) - 非効率な抽象プログラミングモデルで、2年たった後にこれらが実はそんなに 効率的じゃなかったことに気づくケース。でもそのときにはすでに全部の コードがその素晴らしいオブジェクトモデルに依存していて、直すためには アプリ全体を書き直さなきゃなんない。 言いかえれば、唯一まともで、効率がよくて、システムレベルで使えて、移植性がある C++ ってのは、基本的に C で使える機能だけに限ったときなんだ。そして C だけに 限定するってことは、他の人がそれをめちゃくちゃにしないってことで、 ついでに沢山のプログラマが実際に低水準の問題を理解することができて、アホらしい 「オブジェクト・モデル」のたわごとを持ちこまないってことだ。
This is a memo about Linus's comment. He criticizes the people who loves C++. He says they misunderstand what is a "nice" program.