タグ付けされた質問 「d」

8
C ++はDよりも優れているのでしょうか?
私は最近Dを学んでおり、言語にある程度精通し始めています。私はそれが提供するものを知っています、私はまだすべてを使う方法を知りません、そして、Dイディオムなどについて多くを知りません、しかし、私は学んでいます。 私はDが好きです。これは素晴らしい言語であり、ある意味ではCの大規模な更新であり、うまく機能しています。どの機能も「ボルトオン」されているようには見えませんが、実際には非常によく考え抜かれ、適切に設計されています。 DはC ++であるべきだとよく耳にします(不必要な火炎戦争を避けるために、誰もが自分で決定するのが正しいかどうかは疑問です)。また、いくつかのC ++プログラマーから、C ++よりもはるかにDを楽しんでいると聞きました。 私自身はCを知っていますが、C ++を知っているとは言えません。C ++が言語として Dよりも優れている何かがあると思う場合、C ++とDの両方を知っている人から聞きたいです(通常の「サードパーティライブラリが多い」または「リソースが多い」または「 DよりもC ++を必要とするジョブが多い」)。 Dは、C ++が抱えていた多くの問題を修正するために、非常に熟練したC ++プログラマー(Walter BrightとAndrei Alexandrescu、Dコミュニティの助けを借りて)によって設計されましたが、実際には結局良くならない何かがありましたか?彼が逃した何か?あなたがより良い解決策ではなかったと思うものはありますか? また、私はD 1.0ではなくD 2.0について話していることに注意してください。

8
最新のオブジェクト指向言語はC ++の配列ストアのパフォーマンスと競合できますか?
少なくともある程度慣れ親しんでいる最新のオブジェクト指向プログラミング言語(基本的にはJava、C#、およびD)がすべて共変配列を許可していることに気付きました。つまり、文字列配列はオブジェクト配列です。 Object[] arr = new String[2]; // Java, C# and D allow this 共変配列は、静的型システムの穴です。コンパイル時に検出できない型エラーが発生する可能性があるため、実行時は配列へのすべての書き込みをチェックする必要があります。 arr[0] = "hello"; // ok arr[1] = new Object(); // ArrayStoreException これは、多くの配列ストアを実行する場合、ひどいパフォーマンスヒットのようです。 C ++には共変配列がないため、このようなランタイムチェックを行う必要はありません。つまり、パフォーマンスが低下することはありません。 必要なランタイムチェックの数を減らすために行われた分析はありますか?たとえば、私が言う場合: arr[1] = arr[0]; ストアが失敗することはないと主張することができます。私が考えていない他の多くの可能な最適化があると確信しています。 最新のコンパイラーは実際にこの種の最適化を行いますか、または、例えばクイックソートが常にO(n log n)の不要なランタイムチェックを行うという事実に耐えなければなりませんか? 現代のオブジェクト指向言語は、共変配列をサポートすることによって生じるオーバーヘッドを回避できますか?
40 c#  java  c++  d 

6
LMAXのチームがなぜJavaを使用し、GCを避けるためにアーキテクチャを設計したのですか?
LMAXのチームがJavaでLMAX Disruptorを設計したのに、GCの使用を最小限に抑えることがすべての設計ポイントであるのはなぜですか?GCを実行したくない場合、ガベージコレクションされた言語を使用するのはなぜですか? 彼らの最適化、ハードウェアの知識のレベル、そして彼らが置いた思考はただ素晴らしいですが、なぜJavaなのでしょうか? 私はJavaなどに反対ではありませんが、なぜGC言語なのですか?DのようなものやGCを使用しない他の言語を使用して、効率的なコードを使用できるのはなぜですか?チームはJavaに最も精通しているのでしょうか、それともJavaには私には見られない独自の利点がありますか? 手動のメモリ管理でDを使用して開発するとしますが、違いは何でしょうか?低レベル(既にある)を考える必要がありますが、システムがネイティブであるため、システムから最高のパフォーマンスを引き出すことができます。

5
なぜC ++はDのアプローチをその概念の実装に採用できないのですか?
この質問は、Software Engineering Stack Exchangeで回答できるため、Stack Overflowから移行されました。 8年前に移行され ました。 あなたの多くが知っているように、テンプレート引数の可能な型を制限するためのC ++のアプローチ、概念、C ++ 11には含まれていませんでした。 Dプログラミング言語2.0には、一般的なプログラミングと同様の機能があることがわかりました。その解決策は私には非常にエレガントでシンプルなようです。 私の質問は、C ++が同様のアプローチを使用できない理由です。 C ++の概念の目標は、Dの実装が提供するものよりも大きいでしょうか? または、C ++のレガシーにより、そのようなアプローチを採用できませんか? または他の? ご回答ありがとうございます。 ps Dの汎用プログラミングパワーの例を参照するには、これを参照してください:https : //stackoverflow.com/questions/7300298/metaprogramming-in-c-and-in-d/7303534#7303534
19 c++  templates  d 
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.