もう C++ なんて好きでもないし使いもしない理由。(原文)
haru-sの日記 - 「もう C++ なんて好きでもないし使いもしない理由。」
C++ が嫌われる大抵の理由が「複雑すぎる」なんだけど
C++ はプログラマに特定のスタイルを強制しないし、直交性を重視しているから
「C++ はテンプレートを知らないとプログラムが組めない言語なんです」なんてことにはならない
複雑だと思うならその機能を使わなければいい
「右辺値参照は C++ 言語における小さな拡張です ... もっぱらより高い性能と、より堅牢なライブラリを設計する目的があります。」
この二つは、 私が C++ を必要としなくなった理由のトップにある。
右辺値参照は飽くまでより良いクラス設計のための機能なので
標準ライブラリを使う分には、そのユーザーは右辺値参照を気にしなくていい
(使いたくなければ使わなければいい)
C++0x の多くの機能は、今まで複雑にならざるを得なかったものを簡単に書けるようになる拡張がとても多い
だから
「C++0x で C++ がまた複雑になるんだろ」
と言われたら私は
「いえ、今まで複雑だったものを簡単に書けるようになるんです。そのためには新機能を理解する必要はあるけどね」
と返すだろう
むしろ、C++ の複雑さを理解しなければならない状況ってそんなにあるんだろうか
『Effective C++』くらいを理解すればまともな C++ プログラムは組めるよ
(それも複雑だと言われたら勉強不足だとしか言えないけど)
C++ のどの面をとっても、その設計は性能と引き換えに私の生産性をうばった
必要に応じて生産性が高い言語を使えばいいだけの話
それに生産性は、開発環境がどれくらい強力かにもよるんだと思う
MFC は画面作るのにもコード書かないといけないしね
きっと Windows フォームと .NET Framework 並のライブラリが
ネイティブな C++ で使える開発環境があれば誰も文句言わないんじゃないかな
そのへんは今後の Visual Studio や Boost.GUI に期待
もう一つうんざりなのは, リンカのエラー診断だ。ただライブラリをダウンロードして使うなんてことが決してできない。
...
コンパイラがアップグレードするたびに、私はアプリケーションとライブラリ全体を再コンパイルして
その中でいつも不可解なエラーを診断して数時間つぶした。
それが嫌いになる理由ですか・・・
筆者のいう暗号的なエラーってテンプレートのエラーのことだよね
C++0x のコンセプトで解消されますよ
コンパイラがアップグレードするたびに再コンパイルしてエラーになるって…
作りが悪いか、コンパイラに文句言ってください
C++ の連中は性能に取り憑かれている。 他の全てをなげうって
筆者のいう性能というのがいまいちわからないけど。
C++ はよく速いことがメリットみたいに言われるが、私は柔軟なことがメリットだと思う
作りたいと思ったものを作れるところがいいんじゃないかな
Boost 使ってるとそう思うんだけど
私は C でもいいよ
意味がわからない
C は C++ より生産性が高いのか!?
とりあえず、C++ が嫌いなひとは D&E を読んでください