C++ とは?

この数週間は私にとって非常に困難なものでした。そのため、C++、範囲、ゲーム開発者、および 08 に関する現在進行中の議論に詳しく従うことができませんでした。 .

残念ながら、私の現在の物事に対する見方はかなり冷笑的であり、私はあまりにも自己主張的で独断的であるかもしれないと言われました.いくつか質問させてください。悪い答えのない自由回答式の質問です。

この形式は、委員会がサンディエゴで行った、「自立」を定義しようとする驚くほど啓発的なブレインストーミング セッションに触発されています。

では、C++ とは何ですか?

C++ はプログラミング言語です。

C++ は汎用プログラミング言語ですか?

C++ はシステム プログラミング用のプログラミング言語ですか?どのようなシステムですか?

C++ は組み込みプラットフォーム向けのプログラミング言語ですか?プラットフォームの種類は?

C++ は移植可能ですか、それとも移植可能なアプリケーションの作成に適していますか?ポータブルとは何ですか?

C++ は並行プログラミングに適していますか?非同期プログラミング?異種プログラミング?

C++ は C のスーパーセットですか? C との互換性は依然として重要ですか?その費用はいくらですか? C++ 指向オブジェクト ?C++ はモダンですか?現代とはどういう意味ですか?

C++ はエコシステムですか?もしそうなら、そのエコシステムの形は何ですか?

ツールなしで C++ を成功させることはできますか?委員会の優先事項では、ツールの容易性を高くする必要がありますか?

委員会はエコシステムでより大きな役割を担うべきですか?エコシステムには羊飼いが必要ですか?

C++ はコミュニティですか?そのコミュニティは誰ですか? C++ を使用する約 300 万人の開発者は誰ですか?

C++ を使用している人たちとそれを設計している人たちとは同じページにいますか?そうでない場合、それは C++ が過剰に使用されているか、間違って使用されているということですか?

C++ はエキスパート向けですか? 言語?何人の人が知っている C++? C++ はプログラミング 101 で教えるべきですか? C++ は正しく教えられていますか?それを改善することはできますか?

C++ は個々の開発者が使用できますか?小さなチーム?大規模なチームですか?

C++ は使いやすいですか?シンプルなものをシンプルにしていますか?もっと簡単にできますか?シンプルさとパフォーマンスは正反対ですか?

それが委員会と実装者にとってより多くの作業を意味する場合、C++ は単純なものをより単純にする方法を提供する必要がありますか?複雑さは必要ですか?

C++ はゼロコストの抽象化に成功していますか?それはどういう意味ですか?人々がパフォーマンスについて話すとき、それは効率を意味するのでしょうか?予測可能性?決定論?

C++ は一貫していますか?一貫性 とはどういう意味ですか?一貫性は重要ですか?

True C++ は 1 つだけですか、それとも多数の方言がありますか?方言は何ですか?方言が問題?それらは必要ですか?

標準の間に断絶はありますか? C++ の使用方法と実装方法は?

例外を無効にしてコンパイルすると、プログラムは C++ ではなくなりますか? C++98 は C++ ですか? Qt は C++ ですか?常に変化するベスト プラクティスは保守性の問題ですか?

標準ライブラリです 各種施設の輸送車か、一等市民か。 C++ は標準ライブラリなしで使用できますか?

標準ライブラリのスコープは?

標準ライブラリです ライブラリをどのように作成する必要があるかを示していますか?そうすべきですか?委員会は既存の慣行を標準化するべきですか、それとも先導すべきですか?

標準ライブラリ コア言語と同じパフォーマンスの問題がありますか?

C++ は高速に進化しますか?遅すぎる?新しい標準の採用率は?

ほとんどの C++ コードは既に作成されていますか?

C++ の主な使用例は、30 年前のコードベースのメンテナンスですか?古いコードベースが新しい標準と互換性を持つことは重要ですか?実際にそうですか?

C++ は新しいプロジェクトに適していますか?代替手段は何ですか?C++ は、他の言語との相互受粉の恩恵を受けますか?

C++ は、より重大な変更を行う必要がありますか?これらの変更はツール化できますか?新しい言語はツールよりも開発が容易ですか?

ABIは重要ですか? ABI の問題は C++ の進化を妨げますか?ABI の問題は、標準ライブラリの設計やパフォーマンスの問題を引き起こしますか?それは受け入れられますか? ABI を問題外にすることはできますか?

API の中断や積極的な非推奨を増やす必要がありますか? STL2 が存在する必要がありますか?それともエコシステムを分断しますか?実装者は API または ABI の中断に同意しますか?

コンパイル モデルは、今日の C++ の使用方法にまだ適していますか?改善できますか?「ダム リンカ」と互換性があるように C++ を設計することは依然として重要ですか?

コンパイラはビルドシステムであるべきですか? C++ を構築するための標準化された方法が必要ですか?

コードの配布と再利用は重要な問題ですか?コードの再利用をより簡単にする必要がありますか?できるでしょうか?コードの配布を容易にするために、コードの編成に関するより厳しい規則が必要な場合、それは受け入れられますか?

コンパイル速度は重要ですか?デバッグ速度は重要ですか?それらを改善できますか?4 つ以上のコンパイラ アーキテクチャを使用してもまだ有用ですか?The Standard を実装していますか? まだ合理的な努力ですか?実装者の広がりは薄すぎますか?

標準化プロセスは効果的ですか?十分に開いていますか?十分に知られていますか?それはもっとオンラインで行われるべきですか?論文は正しいモデルですか?用紙が多すぎませんか?標準化へのアクセスを減らすべきですか?もっと?ユーザーの利益は委員会で十分に代表されていますか?それとも、標準化プロセスが少数のユースケースやユーザーに偏っているのでしょうか?

論文モデルは小さな変更や局所的な修正に偏っていませんか?論文はより包括的であり、一般的な問題に対して一貫した統一されたソリューションを提供する必要がありますか?このような論文が閉鎖されるのを防ぐにはどうすればよいでしょうか?委員会はより野心的な目標に向かって取り組み、より多くの設計を行うべきでしょうか?

標準の範囲は、C++ が直面するすべての課題に答えるのに十分ですか?この範囲を拡張する必要がありますか?できますか?標準ですか? C++ 開発に影響を与える唯一のツールは?

これらの質問に正解はありません。

委員会のメンバーは、これらのほとんどに同意しないことがわかります.C++ は、さまざまな背景を持つ人々によってさまざまな理由で多くの業界で使用されています.

また、C++ に中核となる設計哲学があるとしても、プログラミング環境が進化し、コミュニティが成長し、新しいハードウェアと問題が発生するにつれて、答えは変化します。

論文を書いたり評価したりするとき、または単に C++ について話すときは、これらの質問を心に留めておくことが重要だと思います。