D Programmiersprache in der realen Welt? [geschlossen]


138

Verwendet da draußen jemand D für reale Anwendungen? Wenn ja, wofür verwenden Sie es? Ich kann anscheinend nichts Großes im Web finden, das in D geschrieben ist.

Trotz des Mangels an bekannten großen Benutzern scheint mir D eine sehr vielversprechende Sprache zu sein, und laut TIOBE ist sie ziemlich beliebt.


11
Facebook wurde kürzlich in den Dlang-Foren angekündigt und verwendet D jetzt in der Produktion.
Sghill

Es gibt nichts Großes, weil D selbst ziemlich schlecht ist, um große komplexe Anwendungen zu erstellen. An der Oberfläche sieht es großartig aus, aber sobald Sie versuchen, irgendetwas Kommerzielles zu machen, zeigen sich alle Risse und die Fan-Jungs haben kaum Lust, eine richtig strukturierte Software für das kommerzielle Publikum zu erstellen (ich bin sicher, dass Geld viel damit zu tun hat es aber auch Führung und Organisation). Es ist eine Sache, ein Befehlszeilenprogramm oder einen 5k-Zeilenalgorithmus zu schreiben, aber völlig anders, um eine sehr komplexe Geschäftsanwendung zu erstellen, die mehrere Bereiche wie GUI, Audio usw. umfasst.
Stretto

Sicher können Sie etwas zusammen hacken, aber das ist nicht kommerziell. Ein Unternehmen wird seine Zeit / sein Geld nicht in etwas investieren, das so schuppig ist. Es gibt keine richtige IDE und jede, die ich verwendet habe, hat mich dazu gebracht, etwas einzuschlagen. Es ist ungefähr zehnmal langsamer, Apps richtig zu debuggen, da Fehlermeldungen schrecklich sind, der Debugger weder funktioniert noch gegen Sie arbeitet. Die modernen Funktionen, die wir erwarten, sind nicht vorhanden oder schlecht, und die Bibliothek ist fubariert, weil sie keine logische Struktur hat (Dinge werden "willkürlich" verschoben, seltsame Namensschemata wie "chomp" und "detabber" usw.
Stretto

Ich denke es ist das Yin / Yang. Bestimmte Dinge in D sind erstaunlich und nichts kommt (noch) nahe ... aber auf der anderen Seite sind die Dinge, an denen es versagt, auch ziemlich stark. Man findet diese Dinge nur heraus, wenn sie tatsächlich die Zeit haben, echte Apps zu schreiben, anstatt triviale oder algorithmische Dinge zu tun. Bis die D-Organisation alles zusammenbringt (wie lange wird es dauern, 10, 20 Jahre?), Werden echte Unternehmen nicht in sie investieren. Zeit ist Geld und kein Unternehmen möchte zehnmal lange für das Debuggen einer App aufwenden, da die IDE nicht in der Lage ist, zu schnupfen.
Stretto

@ Stretto was meinst du? dlang.org/orgs-using-d.html
Bauss

Antworten:


77

Ich benutze D für meine Forschungsarbeit im Bereich Computergrafik. Ich und andere haben Artikel in unseren Bereichen veröffentlicht, die auf Arbeiten basieren, die mit D durchgeführt wurden. Ich denke, es ist definitiv bereit für kleine bis mittlere Forschungsprojekte, bei denen es auf Leistung ankommt. Es eignet sich gut für Forschungsarbeiten, da Sie ohnehin oft von vorne anfangen und daher nicht viel Legacy-Code für die Integration benötigen.

Ein weiterer beliebter Anwendungsbereich scheinen Webdienste zu sein. Hoffentlich kann jemand anderes kommentieren, wer sich in diesem Bereich befindet, aber auch dort denke ich, dass die Leistung oft wirklich wichtig ist, sodass Sie eine auf den Metall kompilierte Sprache wünschen. Services sind oft recht kleine, in sich geschlossene Prozesse, daher ist die Interaktion mit großen Mengen an altem C ++ - Code nicht wirklich notwendig oder nützlich. So kann D seinen Fuß in die Tür bekommen.

Ich denke, D wird auf diese Weise weiterhin Basis-Follower gewinnen - bei kleineren Projekten, die es sich aus irgendeinem Grund leisten können, das C ++ - Erbe aufzugeben, um eine Programmiersprache zu erhalten, deren Verwendung viel angenehmer und möglicherweise auch produktiver ist.

Aber bis es eine große Anzahl von Basisbenutzern gibt, wird den großen Unternehmensbenutzern, die ich vermute, nicht viel im Wege stehen.


10
Ich entwickle Client / Server-Anwendungen nur in D mit einigen Bindungen an C-Bibliotheken, aber nur für den GUI-Teil des Clients für einen der beliebtesten Dienste in den Niederlanden. Ich musste zwar meinen Chef überzeugen, aber er scheint es nicht zu bereuen. ;-) - D leuchtet hier besonders, weil die Standardbibliothek eine Implementierung von BSD-Sockets auch unter Windows bietet. Einmal schreiben, überall einsetzen, sehr schön.
Jesse Brands

@ JesseBrands Benutzt du Phobos oder Tango?
Qed

88

Ich arbeite in der Bioinformatik in D. Für mich ist das Wichtigste an D, dass es einen sehr besonnenen Ansatz für Kompromisse verfolgt und das Prinzip der sinkenden Rendite anerkennt.

Im Gegensatz zu C ++, das sich strikt an das Null-Overhead-Prinzip hält, ermöglicht D Funktionen, die möglicherweise geringe Leistungs- / Platzkosten verursachen, wenn sie die Sprache wesentlich benutzerfreundlicher machen. Dazu gehören die Speicherbereinigung, ein Überwachungsobjekt für jede Klasse, Informationen zum Laufzeittyp usw.

Im Gegensatz zu Ruby, Python, PHP usw. versucht D, fast so schnell wie C zu sein, auch wenn es weniger dynamisch und etwas schwieriger zu programmieren ist als Skriptsprachen.
Das Ergebnis ist eine Sprache, die optimal ist, wenn sowohl die Entwicklungszeit als auch die Ausführungszeit ungefähr gleich wichtig sind, was in meinem Bereich die meiste Zeit der Fall ist.

In ähnlicher Weise verfolgt D einen sehr besonnenen Ansatz in Bezug auf Sicherheit und Flexibilität. Es wird davon ausgegangen, dass Programmierer im Grunde wissen, was sie tun, aber Fehler machen.

Im Gegensatz zu C und C ++ wird davon ausgegangen, dass Sie nicht überall in Ihrem Code Zeiger, unsichere Casts, manuelle Speicherverwaltung usw. verwenden möchten, da diese fehleranfällig sind, und es wird davon ausgegangen, dass Sie Multi nicht durchsuchen möchten -Fehler der Seitenvorlage, wenn Sie es vermasseln, nur um Arrays mit veränderbarer Größe zu verwenden.

Im Gegensatz zu Java und anderen Bondage-and-Disziplin-Sprachen geht D davon aus, dass Zeiger, unsichere Casts, manuelle Speicherverwaltung usw. manchmal ein notwendiges Übel sind, und geht davon aus, dass Sie klug genug sind, um mit echten Vorlagen, Überladung von Operatoren usw. ohne Schreiben umzugehen verschleierter Code. Es wird auch davon ausgegangen, dass Sie ein Array außerhalb der Grenzen vermasseln und darauf zugreifen können, der Programmierer jedoch am besten weiß, welcher Kompromiss zwischen Sicherheit und Geschwindigkeit in einer bestimmten Situation zu treffen ist. Daher wird einfach durch einen Compiler-Schalter bestimmt, ob Arrays gebunden sind.


2
Was ist ein Monitorobjekt? Ich kann keine Ergebnisse dafür finden.
Samaursa

2
Ich liebe die D-Sprache im Vergleich zu C ++ sehr. Schnellere Kompilierungszeiten, die Möglichkeit, weniger Code, keine Header-Dateien usw. zu verwenden. Das Problem ist jedoch, dass niemand ernsthafte GUI-Arbeit leistet. Natürlich kann ich GtkD verwenden, aber versuchen Sie, eine Reihe ausgefallener Diagramme zu zeichnen. Ich sehe vielversprechende Arbeit bei der Integration von Chromium für eine grafische Benutzeroberfläche, aber dieses Projekt ist weitgehend undokumentiert und benötigt mehr Spieler in diesem Bereich. Ich hoffe, dass sich das ändert, aber das sehe ich hier im September 2015.
Volomike

Objektmonitor ist Bullsh **. Es sperrt die ganze Methode, es ist wirklich sehr, sehr verschwenderisch ...
dev1223

@Volomike Ich habe mir in letzter Zeit auch D angesehen und es war auch schwierig, grafische Schnittstellen-Tools damit zu erstellen. Ich habe derzeit keine defacto-Lösungen für die Erstellung eleganter GUI-Tools mit D, und das kann ich bald angehen.
Dimiguel

32

Ich kenne eine kleine Firma, die ein Mailserver-Produkt auf den Markt gebracht hat. Sie hatten mindestens 2 Leute, die Vollzeit an dem Projekt arbeiteten.

Ein wichtiger Akteur im IT-Geschäft hat auch mehrere Mitarbeiter, die D in größeren internen Projekten einsetzen.

Außerdem kenne ich ein Unternehmen, das Risikofinanzierung sucht, mehrere (mindestens 4) Mitarbeiter in kleineren Unternehmen, die D entweder teilweise oder in Vollzeit einsetzen, und mindestens ein Paar (einschließlich mir), das aktiv nach Möglichkeiten auf dem Beratungsmarkt sucht.

Ich habe wahrscheinlich einige ausgelassen, von denen ich hätte wissen sollen, und wahrscheinlich einige, von denen ich noch nichts gehört habe, aber das gibt es immer noch, da die oben genannten mehr oder weniger diejenigen sind, die ich selbst über die Community kenne.

Ein kleiner Prozentsatz meines laufenden Einkommens stammt von D.


Könnten Sie bitte die Organisationen benennen? Es wäre auch schön, mehr über diese Projekte zu erfahren.
nbro

28

Ich benutze D für die Webentwicklung und es hat sich im Vergleich zu C / C ++ als viel produktiver erwiesen. Natürlich gibt es viele Frameworks, die auf Ruby / PHP / Python basieren. Wenn Sie jedoch etwas Einzigartiges entwickeln möchten, das auch so schnell wie C und fast so einfach zu programmieren sein muss wie in vielen Skriptsprachen, dann ist D eine gute Wahl.


3
Darf ich fragen? Welches Framework oder welche Bibliothek verwenden Sie?
Zelenova

26

Ich verwende D für eine HIL-Testumgebung (Hardware in the Loop). Dies ist für Softwaretests im Automobilbereich. D kann hier verwendet werden, da es als Systemprogrammiersprache möglich ist, in Echtzeitprogrammen (IRQ-Handler in einer Linux-Echtzeiterweiterung RTAI-LXRT) verwendet zu werden.

Mit dem laufenden Port von SWT / JFace habe ich vor, mehr zu tun und in D zu arbeiten, was ich vorher in Java getan hätte.



19

Ich verwende D in der Forschung über die Übersetzung von Zeitcode. Das erweiterte Templating in Kombination mit Tupeln und Mixins erleichtert die Codeübersetzung erheblich und ermöglicht die Codeübersetzung während der Kompilierungszeit, ohne dass ein separates Tool erforderlich ist.

Es gibt einige Beispiele für Physiker, die D verwenden, um ihre Programme mit Metaprogrammierung in D zu erweitern.

Video - Konferenzgespräch, konnte keine Quelle für Physiker finden.


Ein kategorisch ähnliches Projekt von mir, ebenfalls in D dsource.org/projects/scrapple/browser/trunk/dparser/dparse.d
BCS

17

Unsere gesamte (stark frequentierte) Netzwerkinfrastruktur basiert nur auf D1 und Tango. Wir sind ein junges Startup-Unternehmen in Berlin: sociomantic.com


14

Meine aktuelle Arbeitsaufgabe ist ein System zur Übersetzung von C # in D. Dies ist Teil eines gewinnorientierten Projekts zur Entwicklung eines Softwaresystems.




7

Viele der von ABA Games veröffentlichten Spiele sind in D 1.x geschrieben, obwohl ich mir vorstelle, dass die Konsolenports in C ++ neu geschrieben werden mussten.

Ich habe einige Spielprototypen in D geschrieben, bin mir aber nicht sicher, ob dies als "reale Welt" qualifiziert ist, da ich sie zu meinem eigenen Vorteil geschrieben und nie einen veröffentlicht habe.


Könnten Sie bitte genauer angeben, welche Spiele mit D erstellt wurden?
nbro

7

Ich habe eine Software für die Konvertierung von Testerprotokollen von verschiedenen Hardwareteststationen in ein standardisiertes Ausgabeformat für Rückverfolgbarkeit und ähnliches geschrieben (und ich pflege und entwickle sie immer noch).

Insgesamt über 5.000 Codezeilen, geschrieben mit D 1.x und der Phobos-Bibliothek.

D ist so einfach zu erlernen und es ist eine wahre Freude, einige Fallstricke (in der Phobos-Bibliothek) zu ignorieren.


6

Ich habe D für mein Forschungsprojekt zur Entwicklung eines globalen Optimierungsalgorithmus verwendet. Ich habe es auf das Problem des Trainings neuronaler Netze angewendet. Es liegt an Ihnen, ob Sie diese "reale Welt" nennen möchten.


Ist der Quellcode oder einige Informationen darüber verfügbar, was Sie getan haben?
nbro


6

Ich benutze D2, den zweiten Standard der Version. Ich habe Echtzeitanwendungen geschrieben (zum Beispiel 3D-Engine).

Die Sprache wird von Tag zu Tag mächtiger. D ist sehr pragmatisch und alle eingebetteten Funktionen, insbesondere das Metaprogrammierungsparadigma, machen es meiner Meinung nach weit über C ++ hinaus. Die Syntax ist klarer, Sie können die Stärke der funktionalen Programmierung durch Funktionen wie Filtern oder Reduzieren nutzen und eine der wichtigsten Funktionen: Sie können alle C-Bibliotheken verwenden.

Auf jeden Fall meine Lieblingssprache, und ich bin mir ziemlich sicher, dass es eine verbreitete Sprache sein wird.


Ist es möglich, den Quellcode von etwas zu sehen, das Sie mit D erstellt haben?
nbro

Seit diesem Kommentar ist eine Weile vergangen! Ich programmiere jetzt hauptsächlich in Rust und Haskell, aber ich habe ein paar Projekte. Ich habe ein paar Sachen auf meinem Github, aber ich denke nicht, dass es sich lohnt, sie zu graben. Dieser Kommentar ist 4 Jahre alt! Ich sollte einen Blick auf den aktuellen Status von all dem
werfen

4

Ich nehme an, wir können etwas über das Fehlen sofortiger Antworten auf diese Frage lesen, und das heißt, dass nicht viele / keine der aktiven Stackoverflow-Responder D verwenden. Ich war auch ein wenig überrascht über die Höhe des Rankings in der TIOBE-Liste, die Sie erstellt haben Link zu.

Trotzdem arbeitet Walter Bright seit einigen Jahren an der Sprache, und ich glaube, er hat eine ganze Reihe von "Followern", die sich daran erinnern, was für eine gute Arbeit er in den 90er Jahren mit dem Zortech C ++ - Compiler geleistet hat. Ich stelle auch fest, dass sich die Sprache jetzt in Richtung der funktionalen Richtung zu neigen scheint.


3
Derzeit ist es unmöglich, auf dieser Website nach D zu suchen. Wenn Sie nach "d" oder "d" suchen, wird "keine Treffer" angezeigt, und wenn Sie in den Tags nach "d" suchen, wird eine Seite mit Tags aufgelistet, die "d", aber kein "d" enthalten. Das könnte also auch etwas damit zu tun haben.
Baxissimo

20
Suchen Sie im Suchfeld nach [d], um eine tagbasierte Suche zu erhalten.
Gregg Lind


0

Ich beginne ein Projekt, um einige unserer internen Tools von Perl auf D umzuschreiben. Ich habe mich für D entschieden, weil ich von den Designphilosophien der Sprache ziemlich begeistert bin. Ich habe lange programmiert und viele Sprachen verwendet, von Assemblern über High-Level (meistens C) bis hin zu Skriptsprachen (meistens Perl), und D ist die erste Sprache, die mich seit vielen Jahren begeistert hat .

Ich habe mich aus einem Hauptgrund für eine kompilierte Sprache entschieden - Sicherheit. Funktionell funktioniert Perl für das Toolset, an dem ich arbeite, recht gut, aber es ist unsicher - jeder, der ein Skript ausführen kann, kann auch seine eigene modifizierte Version des Tools lesen, kopieren und erstellen. (Und sie tun es.) Ich weiß, dass es umständliche Methoden gibt, um dieses Problem zu umgehen, aber um ehrlich zu sein, habe ich nicht genug Stunden am Tag, um all das zu bewältigen und trotzdem meine Hauptaufgabe zu erledigen.


Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.