D を実際のアプリケーションに使用している人はいますか? もしそうなら、あなたはそれを何のために使っていますか?Dで書かれたウェブ上で大きなものを見つけることができないようです.
知られている大規模なユーザーがいないにもかかわらず、D は私にとって非常に有望な言語のように思えます。TIOBEによると、D はかなり人気があります。
私は D でバイオインフォマティクスの仕事をしています。私にとって D の重要な点は、D がトレードオフに対して非常に冷静なアプローチを取り、収穫逓減の原則を認識していることです。
ゼロ オーバーヘッドの原則を厳密に遵守する C++ とは異なり、D では、言語をより使いやすくする場合に、パフォーマンス/スペース コストが小さい機能を使用できます。これらには、ガベージ コレクション、各クラスの監視オブジェクト、ランタイム タイプ情報などが含まれます。
Ruby、Python、PHP などとは異なり、D は、スクリプト言語よりも動的ではなく、プログラミングが少し難しいものの、C とほぼ同じ速度を目指しています。
その結果、開発時間と実行時間の両方が同等に重要な場合に最適な言語が得られます。これは、私の分野ではほとんどの場合です。
同様に、D は安全性と柔軟性に対して非常に冷静なアプローチをとっています。プログラマーは基本的に自分が何をしているかを知っているが、間違いを犯すことを前提としています。
C や C++ とは異なり、ポインター、安全でないキャスト、手動のメモリ管理などをコードのあらゆる場所で使用したくないと想定しています。これらはエラーが発生しやすいためです。 -サイズ変更可能な配列を使用するためだけに失敗した場合のページ テンプレート エラー メッセージ。
Java や他の束縛と規律の言語とは異なり、D は、ポインター、安全でないキャスト、手動のメモリ管理などは必要悪であると想定し、実際のテンプレートや演算子のオーバーロードなどを記述せずに処理できるほど頭が良いと想定しています。難読化されたコード。また、失敗して範囲外の配列にアクセスする可能性があることも想定していますが、プログラマーは、特定の状況で安全性と速度の間でどのようなトレードオフを行うべきかを最もよく知っていると想定しています。したがって、配列が境界チェックされるかどうかは、コンパイラ スイッチによって単純に決定されます。
私はコンピューター グラフィックスの分野での研究に D を使用しています。私と他の人は、D を使用して行われた作業に基づいて、私たちの分野で論文を発表しました。パフォーマンスが重要な小規模から中規模の研究プロジェクトで使用する準備が整っていると思います。とにかくゼロから始めることが多いため、研究作業に適しているため、統合について心配するレガシーコードはあまりありません。
もう 1 つの一般的な使用分野は、Web サービスのようです。うまくいけば、他の誰かがこのスペースに誰がいるのかコメントできますが、パフォーマンスはしばしば本当に重要なので、コンパイルされた金属言語が必要だという考えもあると思います. 多くの場合、サービスはかなり小さな自己完結型のプロセスであるため、大量のレガシー C++ コードとの相互運用は実際には必要ではなく、有用でもありません。したがって、D はドアに足を踏み入れることができます。
私は、D はこの方法で草の根の支持者を獲得し続けると思います。小規模なプロジェクトでは、何らかの理由で C++ の遺産を捨てて、はるかに楽しく使用でき、おそらく生産性も高いプログラミング言語を得ることができます。
しかし、膨大な数の草の根ユーザーが存在するまでは、大企業のユーザーにとって大きな障害になることはないと思います。
私は、メールサーバー製品を市場に送り出した小さな会社を知っています。このプロジェクトでは、少なくとも 2 人がフルタイムで働いていました。
また、IT ビジネスの主要なプレーヤーには、大規模な社内プロジェクトで D を使用する複数の従業員がいます。
さらに私は、ベンチャー資金を求めているある会社、パートタイムまたはフルタイムで D を使用している小規模な会社の数人 (少なくとも 4 人) の従業員、およびコンサルティング市場での機会を積極的に探している少なくとも 2 人 (私を含む) を知っています。
知っておくべきだったものや、聞いたことのないものをいくつか省略したかもしれませんが、上記は多かれ少なかれコミュニティを通じて私自身が知っているものであるため、まだ存在しています。
私の現在の収入のごく一部が D からのものです。
私は Web 開発に D を使用していますが、C/C++ に比べてはるかに生産性が高いことがわかりました。もちろん、ruby/php/python ベースのフレームワークもたくさんあります。しかし、C と同じくらい速く、多くのスクリプト言語と同じくらい簡単にプログラミングできる独自のものを開発したい場合は、D が適しています。
ハードウェア イン ザ ループ (HIL) テスト環境に D を使用しています。これは、自動車分野でのソフトウェア テスト用です。ここでは D を使用できます。これは、システム プログラミング言語として、リアルタイム プログラム (Linux リアルタイム拡張 RTAI-LXRT の IRQ ハンドラー) で使用できるためです。
進行中の SWT/JFace の移植により、以前は Java で行っていた作業を D で行う予定です。
Facebookは、今日の時点で本番環境で使用していると発表しました。
コンパイル時のコード変換に関する研究で D を使用しています。タプルとミックスインを組み合わせた高度なテンプレートにより、コード変換がはるかに簡単になり、別のツールを必要とせずにコンパイル時にコード変換を行うことができます。
D のメタプログラミングでプログラムを強化するために D を使用している物理学者の例がいくつかあります。
ビデオ- カンファレンス トーク、物理学者が使用するソース サイトが見つかりませんでした。
当社の (トラフィックの多い) ネットワーク インフラストラクチャ全体は、D1 と tango のみに基づいています。私たちはベルリンの若いスタートアップ企業です: sociomantic.com
私の現在の仕事は、C# を D に変換するシステムです。これは、ソフトウェア システムを開発する営利目的のプロジェクトの一環です。
ええと、私は他の人たちと同じように、D でいくつかの研究論文を書いています。
http://www.digitalmars.com/webnews/newsgroups.php?art_group=digitalmars.D.announce&article_id=9466 .
ABA Gamesがリリースしたゲームの多くはD 1.x で書かれていますが、コンソール ポートは C++ で書き直さなければならなかったと思います。
私はかなりの数のゲーム プロトタイプを D で作成しましたが、それが「現実世界」と見なされるかどうかはわかりません。それらは自分の利益のために作成したものであり、リリースしたことがないからです。
私は、さまざまなハードウェア テスト ステーションからのテスター プロトコルを、トレーサビリティなどのために標準化された出力形式に変換するためのソフトウェアを作成しました (そして、現在も保守および開発を行っています)。
D 1.x と Phobos ライブラリで書かれた 5,000 行以上のコードです。
D はとても簡単に習得でき、(Phobos ライブラリーの) いくつかの落とし穴を無視してプログラミングするのは本当に楽しいことです。
Remedy Gamesには、ゲーム用に大規模な D2 コードベースがあるようです ( Manu Evans によるゲーム エンジンと一緒に D を使用する- DConf 2013 を参照)。
彼らは大企業であり、大企業が D を使用していることを知っているのは非常に良いことです。
バージョンのセカンドスタンダードであるD2を使用しています。リアルタイム アプリケーション (たとえば 3D エンジン) を作成しました。
言語は日に日に強力になっています。D は非常に実用的であり、すべての組み込み機能、特にメタプログラミング パラダイムは、私の意見では C++ をはるかに超えています。構文がより明確になり、 filterやreduceなどの関数を介して関数型プログラミングの強みを利用できます。また、最も重要な機能の 1 つである、すべての C ライブラリを使用できます。
間違いなく私のお気に入りの言語であり、広く使用される言語になると確信しています。
OS X で DGCC をビルドするラッパー スクリプトを作成しました
http://github.com/davecheney/make-gdc-apple/tree/master
他の DMD プログラマーの意見を聞きたい
グローバル最適化アルゴリズムの開発に関する研究プロジェクトで D を使用しました。これをニューラル ネットワークのトレーニングの問題に適用しました。これを「現実世界」と呼ぶかはあなた次第。
この質問に対する即時の回答がないことを理解できると思います。つまり、アクティブなスタックオーバーフローレスポンダーの多く/いずれもDを使用していません。また、TIOBEリストでのランキングのレベルにも少し驚いていました。へのリンク。
そうは言っても、Walter Brightはかなりの数年間この言語に取り組んでおり、90年代にZortechC++コンパイラで何をしたかを覚えている「フォロワー」がかなりいると思います。また、言語は現在、機能的な方向に傾いているように見えることにも注意してください。
私は、社内ツールの一部を Perl から D に書き直すプロジェクトを開始しています。D を選択したのは、言語の設計哲学にかなり興奮していたからです。私は長い間プログラミングをしてきて、アセンブラから高水準言語 (主に C)、スクリプト言語 (主に Perl) まで、多くの言語を使用してきました。D は、私が長年にわたって熱心に学習した最初の言語です。 .
私がコンパイル済み言語に移行することを決めた主な理由の 1 つは、セキュリティです。機能的には、私が取り組んでいるツールセットでは Perl は非常にうまく機能しますが、安全ではありません。スクリプトを実行できる人なら誰でも、ツールの独自の修正バージョンを読み取り、コピーし、作成することができます。(そして、彼らはそうします。)この問題を回避するための遠回りの方法があることは知っていますが(一種)、正直なところ、それらすべてを管理し、主要な仕事を終わらせるのに十分な時間はありません。