D は Java や C++ に代わる信頼できるものですか?

実際のソフトウェア開発におけるプログラミング言語の成功と人気を決定するものは、言語自体の品質と部分的にしか関係していません。純粋な言語として、D は間違いなく C++ や Java よりも多くの利点があります。少なくとも、他のすべての条件が同じであれば、これは純粋な言語として信頼できる代替手段です。

ただし、ソフトウェア開発では、言語自体よりも重要な点が他にもあります:移植性 (実行できるプラットフォームの数)、デバッガーのサポート、IDE のサポート、標準ライブラリーの品質、動的ライブラリーのサポート、共通 API のバインディング、ドキュメント、開発者ほんの数例を挙げると、コミュニティ、勢い、商業サポートなどがあります。これらすべての点で、D は絶望的に Java、C++、および C# に遅れをとっています。実際、これらの点では、Python、Perl、PHP、Ruby、さらには JavaScript などのいわゆる「スクリプト」言語よりも遅れていると私は主張します.

率直に言うと、D を使用して大規模なクロスプラットフォーム アプリケーションを構築することはできません。未熟な標準ライブラリでは、最新の IDE ではサポートされていません (Visual Studio と Xamarin Studio/MonoDevelop の両方にプラグインがあります)、動的/共有ライブラリのサポートが制限されており、他の言語へのバインドがほとんどないため、現在 D は選択肢にありません。

D の見方が気に入ったら、ぜひ学んでください。すでに Java と C++ を知っていれば、それほど時間はかかりません。伝道は役に立たないと思います - この時点で D が成功するのであれば、D が本当に必要としているのは、より多くの人が静かにそれを使用し、標準ライブラリや IDE サポートなどの主要な欠点に対処することです.

最後に、C++ については、ほとんどの人が言語が複雑すぎることに同意していますが、何千もの企業が言語のより小規模で明確に定義されたサブセットのみを許可することで、言語の健全な組み合わせの一部として C++ をうまく使用しています。生のパフォーマンスと少ないメモリ使用量の両方が必要な場合、C++ に勝るものはまだありません。


私自身の経験をミックスに追加するだけです:

約 1 年前、私は 3 か月間続く小規模なゲーム プロジェクト (3 人のコーダー) に取り組み、D を主要言語として使用しました。私たちがこれを選んだ理由の 1 つは、SDL と私たちが使用していたその他のツールのバインディングが既にあったことと、主に C++ より優れているように思われることです。

私たちはそれを使うのが大好きでした。覚えるのも早く、書くのも簡単でした。その機能の多くはかけがえのないものであることが証明されており、それらが C++ に戻ったことを寂しく思います。

しかし、次の点が私たちの生活をより困難にしました:

<オール>
  • 当時は優れた IDE がなく、これが大きな問題でした。結局Sciteをカスタマイズして自作しました。これはうまくいきましたが、理想的ではありませんでした。
  • 当時はデバッガがありませんでした。 WINDBG をヒット/ミス ベースで動作させることはできましたが、信頼性に欠けていました。デバッガーなしでコードをデバッグすると、人生が地獄のようなものになることもありました。
  • 当時、2 つの標準ライブラリから選択できました (Tango と Phobos)。 1 つから始めて、もう 1 つに切り替えましたが、実際には両方の機能を組み合わせる必要がありました (Tangobos!)。これにより頭痛の種となり、一部のコードが書き直されました。
  • 他のツールへのバインドは利用できません。最終的に、DirectX に切り替える必要がありました (理由については説明しません)。利用可能な DirectX のバインドがなかったので、C++ で独自に作成し、.dll としてビルドしてそれにバインドする必要がありました。これはかなり厄介な作業で、時間がかかりました。
  • 全体として、私たちは D を書くのが好きでした。実際にコードを書くのが簡単になり、すぐに習得できました。私が言及した問題は、この質問に対して受け入れられた回答を反映しています。D でアドレス指定する必要があるのは「余分な」ビットであり、その核心はしっかりしています。


    私は、C++ が行き止まりの言語になりつつあることに同意します - そして、過去 17 年間使用してきた私にとって、それを言うのは苦痛です.

    D は C++ の正当な後継者だと思います。言語の観点からは、「すべて正しいことを行います」(たとえ私が毎分の決定に同意しなくても)。 C と C++ が衰退しつつある中、現代の言語の世界で持ちこたえながら、実際にそれらの機能を実行できるシステム レベル言語は他にないと思います - D を除いて! D はこの役割を果たすだけでなく、優れています。 D1.x を見れば十分に納得できるはずですが、D2.0 を見ると圧倒されます。命令型プログラミングと関数型プログラミングのパラダイムを橋渡しする点で D2.0 ほどうまく機能する言語は、現在のところ他にないというのが私の意見です。これは、今後数年間でさらに重要になるだけです。

    大規模で成熟したライブラリだけでなく、主流の受け入れ、または可視性さえも欠如している もちろん障害。ただし、これを理由に書き留めることはできないと思います。私は、D が そうすると確信しています 今後数年以内に最も重要な言語の 1 つに成長します。現在、真剣に取り組んでいる言語は、その時が来たら主導権を握ることができます。

    主にアンドレイ・アレクサンドレスクの関与により、違いが生まれると思います。それは決して、D を世界にもたらすという重要な仕事をしたウォルター ブライトの信用を傷つけるものではありません。しかし、Alexandrescu は確かに C++ コミュニティにおいて重要かつ説得力のある人物であり、潜在的な D スイッチャーのほとんどはそこから生まれます。また、関数型プログラミングのサポートにおいて、D2.0 に重要かつ重要な貢献をしました。

    D がシステム レベル言語のベータマックスになる運命にあることが判明するかもしれませんが、私のお金は今後 2 年以内に好転します。