C++ が好きなほとんどの人でさえ、C++ にはシステム/パフォーマンス プログラミング言語としてのニッチとは関係のない欠点がたくさんあることを認めています。これらには、時代遅れのモジュール管理システム (ヘッダー ファイル)、前方宣言の要件、文法を決定不能にする構文の癖 (テンプレート宣言の <> 山括弧など)、実際の言語ではなくテキスト レベルで動作するマクロの組み込みが含まれます。マクロが使用されるものに対処する機能、配列や文字列 (これらの型の STL および C バージョン) などの機能の重複、事実上シンタックス シュガーがないこと、スレッド化、ガベージ コレクション、デリゲート/クロージャなどの最新の機能の一般的な欠如など (注: はい、メモリが非常に制約されている環境やリアルタイム環境では、ガベージ コレクションを望まない正当な理由があるかもしれません。
一方、C++ は、コードを効率的かつ金属に近い形で記述できる唯一の主流言語ですが、少なくともある程度の高レベルの抽象化も提供します。成熟し、標準化されており、大量のコンパイラの実装とライブラリ、および大規模なレガシー コードベースがあります。
C++ をメイン言語として使用している皆さん、C++ の疣贅を我慢する価値があると個人的に判断した理由は何ですか? 考えを変えて、この種の疣贅の少ない新しい言語を使用することを決定するには、何が必要でしょうか? あなたは C++ を本当に気に入っているから使っていますか?それともレガシーの問題やニッチ向けの成熟した主流の言語が他に存在しないためにしぶしぶ使っていますか?