D現実世界のプログラミング言語?[閉まっている]


138

Dを実際のアプリケーションに使用している人はいますか?もしそうなら、あなたはそれを何に使用していますか?Dで書かれたウェブ上で大きなものを見つけることができないようです。

既知のビッグユーザーがいないにもかかわらず、Dは私にとって非常に有望な言語のようであり、TIOBEによると、Dはかなり人気があります。


11
最近、dlangフォーラムで発表されたFacebookは、Dを本番環境で使用しています。
sghill 2013年

D自体は大きくて複雑なアプリケーションを構築するのにかなり貧弱なので、大きなものは何もありません。それは表面上は見栄えがいいですが、いったんコマーシャルを実行しようとすると、すべての亀裂が表示され始め、ファンの少年たちがコマーシャルの聴衆のために適切な構造化ソフトウェアを作成したいという欲求はほとんどありませんそれはリーダーシップと組織もそうです)。それは、などのGUI、オーディオ、など複数の分野に関係する非常に複雑なビジネスアプリケーションを作成するためのコマンドラインユーティリティまたは5Kラインアルゴリズムを記述するために一つのことですが、全く異なる
Stretto

確かに何かを一緒にハックすることができますが、それは商業的ではありません。企業は、時間やお金を非常に不安定なものに投資するつもりはありません。適切なIDEはなく、私が使用したものはすべて、何かをバッシュしたくなっただけです。アプリを適切にデバッグするのは、エラーメッセージがひどいため、デバッガーが機能しないか、動作しないため、約10倍遅くなります。私たちが期待する現代の機能は存在しないか貧弱であり、ライブラリは論理構造を持たないために機能が制限されています(物事は「任意に」移動され、「chomp」や「detabber」などの奇妙な命名方式など)
Stretto

陰陽だと思います。Dの特定のものは驚くべきものであり、何も(まだ)近づいていません...しかし、反対に、それが失敗するということもかなり強力です。些細なことやアルゴリズム的なことをするのではなく、実際のアプリを書く時間を実際に費やしたときに、それらのことを見つけるだけです。D組織がまとめるまで(どれくらいの時間がかかるのですか?10、20年?)、実際のビジネスはそれに投資しません。時は金なりであり、IDEが十分に機能しないため、アプリケーションをデバッグするために10倍の時間を費やす必要はありません。
Stretto

@Strettoどういう意味ですか?dlang.org/orgs-using-d.html
Bauss

回答:


77

私はコンピュータグラフィックスの研究にDを使用しています。私や他の人は、Dを使用して行った研究に基づいて、私たちの分野で論文を発表しました。パフォーマンスが重要な中小規模の研究プロジェクトで使用する準備ができていると思います。とにかくゼロから始めることが多いので、統合について心配するレガシーコードがあまりないので、研究作業に適しています。

もう1つの一般的な使用分野は、Webサービスのようです。うまくいけば、この領域にいる人が誰か他の人がコメントできるといいのですが、そこにもパフォーマンスが重要であることが多いので、コンパイルして金属にしたい言語が欲しいという考えもあると思います。多くの場合、サービスはかなり小さい自己完結型のプロセスであるため、大量のレガシーC ++コードとの相互運用は実際には必要なく、有用でもありません。したがって、Dはドアに足を入れることができます。

私は、Dがこの方法で草の根の信者を獲得し続けると思います-どんな理由であれ、C ++のレガシーを捨てて、より楽しく、そしておそらくより生産的なプログラミング言語を手に入れることができる小さなプロジェクトでは。

しかし、草の根のユーザーが非常に多くなるまで、私が疑う大企業のユーザーの邪魔になることはほとんどありません。


10
私は純粋にDでクライアント/サーバーアプリケーションを開発していますが、Cライブラリへのバインディングがいくつかありますが、オランダで最も人気のあるサービスの1つであるクライアントのGUI部分のみを対象としています。私は上司を説得する必要があったが、彼は後悔していないようだ。;-)-ここで特に輝いているのは、Windowsであっても、標準ライブラリがBSDソケットの実装を提供するためです。一度書き込みすれば、どこにでもデプロイできます。
Jesse Brands、

@JesseBrandsフォボスやタンゴを使用していますか?
2014

88

私はDでバイオインフォマティクスの仕事をしています。私にとって、Dについての重要なことは、トレードオフに対して非常にレベルの高いアプローチを採用し、リターンの減少の原則を認識することです。

オーバーヘッドゼロの原則に厳密に準拠しているC ++とは異なり、Dでは、言語をより使いやすくすると、パフォーマンス/スペースのコストが小さい機能を使用できます。これらには、ガベージコレクション、各クラスのモニターオブジェクト、ランタイムタイプ情報などが含まれます。

Ruby、Python、PHPなどとは異なり、Dは動的ではなく、スクリプト言語よりもプログラミングが少し難しい場合でも、Cとほぼ同じ速度で処理しようとします。
その結果、開発時間と実行時間の両方がほぼ等しい場合に最適な言語が得られます。これは、私の分野ではほとんどの場合です。

同様に、Dは安全性と柔軟性に対して非常にレベルの高いアプローチをとっています。これは、プログラマーが基本的に何をしているかを知っているが、間違いをすることを前提としています。

CやC ++とは異なり、コード内のあらゆる場所でポインタ、安全でないキャスト、手動のメモリ管理などを使用したくないと想定し、エラーが発生しやすいため、マルチをふるいにかけたくないと想定しています。サイズ変更可能な配列を使用するためだけに台無しにすると、ページテンプレートのエラーメッセージが表示されます。

Javaや他の緊縛規律言語とは異なり、Dは、ポインター、安全でないキャスト、手動のメモリ管理などが必要な悪であると想定し、実際のテンプレートやオペレーターのオーバーロードなどを書くことなく処理できるほど賢いと想定しています難読化されたコード。また、アレイを台無しにして境界外にアクセスする可能性があることを前提としていますが、プログラマーは、特定の状況で安全性と速度の間でどのようなトレードオフを行う必要があるかを最もよく知っています。したがって、配列が境界チェックされるかどうかは、コンパイラスイッチによって簡単に決定されます。


2
監視オブジェクトとは何ですか?これに対する結果が見つからないようです。
サマウサ2014

2
C ++に比べて、D言語が大好きです。コンパイル時間の高速化、少ないコードを使用する機能、ヘッダーファイルなしなど。ただし、問題は、深刻なGUI作業を行う人がいないことです。確かに、私はGtkDを使用できますが、一連の豪華なグラフを作ってみてください。GUIのためにChromiumと統合することで有望な成果が見られますが、そのプロジェクトはほとんど文書化されておらず、その領域でより多くのプレイヤーが必要です。私はその変化が、私は9月、2015年にここで見るものだ望んでいる
Volomike

オブジェクトモニターはbullsh **です。それはメソッド全体をロックします、それは本当に本当に無駄です...
dev1223 '29

@Volomike私も最近Dを見ていますが、同様にそれを使ってグラフィカルインターフェイスツールを作成するのは困難でした。現在、DでエレガントなGUIツールを作成するための事実上の解決策はありません。これは、すぐに取り組むことになるかもしれません。
dimiguel 2016年

32

メールサーバー製品を市場に送り出した小さめの会社を知っています。彼らには、少なくとも2人がフルタイムでプロジェクトに取り組んでいました。

また、ITビジネスの主要企業には、大規模な社内プロジェクトでDを使用する従業員が何人かいます。

さらに、ベンチャーファンドを探している1つの会社、パートタイムかフルタイムのいずれかでDを使用している小規模な会社の数人(少なくとも4人)の従業員、および少なくとも2人(私を含む)が積極的にコンサルティング市場で機会を求めていることを知っています。

おそらく私が知っておくべきいくつかを、おそらく聞いたことのないいくつかを省略しましたが、それはまだ存在します。なぜなら、上記は多かれ少なかれ私がコミュニティを通じて知っているものだからです。

私の現在の収入のごく一部はDから来ています。


組織を推薦していただけませんか?また、これらのプロジェクトについて詳しく知っておくとよいでしょう。
nbro 2017年

28

私はWeb開発にDを使用していますが、C / C ++に比べてかなり生産性が高いことがわかりました。もちろん、ruby / php / pythonベースのフレームワークはたくさんあります。しかし、多くのスクリプト言語で行うように、Cと同じくらい速く、プログラミングするのと同じくらい簡単でなければならないユニークなものを開発したい場合は、Dが良い選択です。


3
聞いてもいいですか?どのフレームワークまたはライブラリを使用しますか?
Zelenova 2014年

26

ループ(HIL)テスト環境のハードウェアにDを使用しています。これは、自動車分野のソフトウェアテスト用です。Dはここで使用できます。システムプログラミング言語として、リアルタイムプログラム(Linuxリアルタイム拡張RTAI-LXRTのIRQハンドラー)で使用できるためです。

SWT / JFaceの継続的な移植により、以前はJavaで行っていたであろうより多くのことを行い、Dで作業する予定です。



19

コンパイル時のコード変換に関する研究でDを使用しています。高度なテンプレートとタプルやミックスインを組み合わせることで、コードの変換がはるかに簡単になり、コンパイル時にコード変換を行うことができ、別のツールを必要としません。

Dを使用して物理プログラムをDのメタプログラミングで強化する物理学者の例がいくつかあります。

ビデオ -会議の話、物理学者が使用するソースサイトが見つかりませんでした。



17

私たちの(トラフィックの多い)ネットワークインフラストラクチャ全体は、D1とtangoのみに基づいています。私たちはベルリンの若いスタートアップ企業です:sociomantic.com


14

私の現在の仕事は、C#をDに変換するシステムです。これは、ソフトウェアシステムを開発するための営利プロジェクトの一部です。




7

ABA Gamesによってリリースされたゲームの多くはD 1.xで書かれていますが、コンソールポートはC ++で書き直す必要があると思います。

私はDでかなりの数のゲームプロトタイプを作成しましたが、私が自分の利益のためにそれらを作成し、それらのいずれもリリースしたことがないので、それが「実世界」に該当するかどうかはわかりません。


Dを使用して作成されたゲームについて具体的に教えてください。
nbro 2017年

7

さまざまなハードウェアテストステーションから、トレーサビリティなどの標準化された出力形式にテスタープロトコルを変換するためのソフトウェアを作成しました(現在も維持および開発しています)。

D 1.xとPhobosライブラリで記述された5k行を超えるコードをすべて一緒に。

Dはとても簡単に習得でき、(フォボスライブラリにある)いくつかの落とし穴を無視して、プログラミングする本当の喜びを感じます。


6

グローバル最適化アルゴリズムの開発に関する研究プロジェクトでは、Dを使用しました。ニューラルネットワークのトレーニングの問題にそれを適用しました。この「現実の世界」と呼ぶかどうかはあなた次第です。


あなたがしたことに関するソースコードまたはいくつかの情報は入手可能ですか?
nbro 2017年


6

私はバージョンの2番目の標準であるD2を使用します。リアルタイムアプリケーション(3Dエンジンなど)を作成しました。

言語は毎日ますます強力になっています。Dは非常に実用的であり、すべての組み込み機能、特にメタプログラミングパラダイムは、私の意見ではC ++よりもはるかに優れています。構文がより明確になり、filterreduceなどの関数を介して関数型プログラミングの長所を利用でき、最も重要な機能の1つであるすべてのCライブラリを使用できます。

間違いなく私のお気に入りの言語であり、私はそれが普及中古言語になると確信しています。


Dを使用して作成したもののソースコードを表示することはできますか?
nbro 2017年

そのコメントから久しぶりです!現在、RustとHaskellでコーディングしていますが、いくつかのプロジェクトがあります。私のgithubにはいくつかのものがありますが、掘り下げる価値はないと思います。そのコメントは4歳です!これらすべての現在の状況を確認する必要があります...
ファアゾン2017年

4

私はこの質問に対する即時の回答の欠如に何かを読むことができると思います、そしてそれは多くの/どんな活発なスタックオーバーフローレスポンダもDを使用していないということです。リンクします。

そうは言っても、ウォルターブライトは何年も前からこの言語に取り組んできており、90年代にZortech C ++コンパイラを使ってどのように優れた仕事をしたかを覚えているかなりの数の「フォロワー」がいると思います。また、言語は現在、機能的な方向に傾いているようです。


3
現在、このWebサイトでDを検索することは不可能です。「d」または「dプログラミング」を検索すると「ヒットなし」と表示され、「d」のタグを検索すると、「d」を含み、「d」のみを含まないタグのページフルリストが表示されます。だからそれもそれと関係があるかもしれません。
Baxissimo 2008

20
検索ボックスで[d]を検索して、タグベースの検索を取得します。
グレッグリンド


0

内部ツールの一部をPerlからDに書き直すプロジェクトを始めています。言語の設計哲学にかなり興奮しているので、Dを選びました。私は長い間プログラミングをしていて、アセンブラーから高水準(主にC)からスクリプト言語(主にPerl)まで、多くの言語を使用しており、Dは私が長年にわたって学習に熱心に取り組んだ最初の言語です。

私は1つの主な理由であるセキュリティのために、コンパイルされた言語に移行することに決めました。機能的には、Perlは私が取り組んでいるツールセットに対しては非常にうまく機能しますが、それは安全ではありません。スクリプトを実行できる人なら誰でも、独自の修正バージョンのツールを読み取り、コピー、作成できます。(そしてそうです)この問題を回避するための遠回りの方法があることを知っていますが、正直なところ、それらすべてを管理するのに十分な時間がありませんが、それでも私の主要な仕事を完了します。


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.