Ist D eine glaubwürdige Alternative zu Java und C ++? [geschlossen]

163

Ist die D-Sprache eine glaubwürdige Alternative zu Java und C ++? Was braucht es, um eine glaubwürdige Alternative zu werden? Sollte ich mir die Mühe machen, es zu lernen? Hat es die Evangelisierung verdient?

Der Hauptgrund, den ich frage, ist, dass mir mit dem neuen C ++ - Standard (c ++ 0x) fast klar ist, dass die Sprache weit über den Punkt hinausgegangen ist, an dem niemand mehr zurückkehren kann, wenn er sie jemals versteht. Ich weiß, dass C / C ++ niemals sterben wird, aber irgendwann müssen wir weitermachen. Sogar COBOL hatte seinen Tag und Java hat C ++ in vielerlei Hinsicht rückgängig gemacht. Was kommt als nächstes? Füllt D die Rechnung?

Mark Kegel
quelle
23
COBOL kommt zurück, aber lernen Sie D, wenn es Sie anregt. Das Lesen von Teeblättern ist genauso wichtig wie alles andere, um die nächste große Sprache vorherzusagen.
Shog9
5
Ich mache mir keine Gedanken darüber, was die nächste große Sprache ist, ich mache mir mehr Sorgen, dass ich, wenn ich meinem Arbeitgeber sagen würde, dass ich D für mein nächstes Projekt verwenden möchte, nicht ernst genommen würde, weil die Sprache nicht ist. t noch nicht.
Mark Kegel
22
Es ist zu beachten, dass die "D vs. C ++" - Seiten von Digital Mars C ++ stark diskriminieren. oft sagen sie "c ++ kann es nicht", C ++ kann es
Johannes Schaub - litb
23
@Johannes: Es geht nicht darum, was die Sprache ermöglicht, es geht darum, was die Sprache einfach macht. - Brian Hurt
fehlender Faktor
9
@ Rahul, stimmte zu, aber dann sollten sie es sagen. wie "das ist in C ++ nicht einfach" und nicht, dass es überhaupt nicht möglich ist.
Johannes Schaub - litb

Antworten:

130

Was den Erfolg und die Popularität einer Programmiersprache für die reale Softwareentwicklung bestimmt, hängt nur teilweise von der Qualität der Sprache selbst ab. Als reine Sprache hat D wohl viele Vorteile gegenüber C ++ und Java. Zumindest ist es eine glaubwürdige Alternative als reine Sprache, alle anderen Dinge sind gleich.

Für die Softwareentwicklung sind jedoch andere Dinge wichtig - fast mehr als die Sprache selbst: Portabilität (auf wie vielen Plattformen wird sie ausgeführt), Debugger-Unterstützung, IDE-Unterstützung, Standardbibliotheksqualität, dynamische Bibliotheksunterstützung, Bindungen für allgemeine APIs, Dokumentation, Entwickler Community, Dynamik und kommerzielle Unterstützung, um nur einige zu nennen. In jeder Hinsicht steht D hoffnungslos hinter Java, C ++ und C #. Tatsächlich würde ich behaupten, dass es in dieser Hinsicht sogar hinter sogenannten "Skriptsprachen" wie Python, Perl, PHP, Ruby und sogar JavaScript steckt.

Um ehrlich zu sein, können Sie mit D einfach keine plattformübergreifende Großanwendung erstellen. Mit einer unreifen Standardbibliothek wird keine Unterstützung in modernen IDEs (es gibt Plugins für Visual Studio und Xamarin Studio / MonoDevelop) eingeschränkt Unterstützung für dynamische / gemeinsam genutzte Bibliotheken und wenige Bindungen an andere Sprachen. D ist heute einfach keine Option mehr.

Wenn Ihnen das, was Sie von D sehen, gefällt, lernen Sie es auf jeden Fall - es sollte nicht lange dauern, wenn Sie Java und C ++ bereits kennen. Ich denke nicht, dass Evangelisation hilfreich wäre - an diesem Punkt, wenn D erfolgreich sein soll, braucht es wirklich mehr Leute, die es leise nutzen und seine Hauptmängel wie Standardbibliothek und IDE-Unterstützung beheben.

Was C ++ betrifft, so sind sich die meisten einig, dass die Sprache zu komplex ist, aber Tausende von Unternehmen setzen C ++ erfolgreich als Teil eines gesunden Sprachmix ein, indem sie nur eine kleinere, genau definierte Teilmenge der Sprache zulassen. Es ist immer noch schwer, C ++ zu schlagen, wenn sowohl rohe Leistung als auch geringe Speichernutzung erforderlich sind.

dmazzoni
quelle
8
Zu sagen, dass es "keine Unterstützung in modernen IDEs" gibt, übertreibt es ein wenig. Es gibt Unterstützung in Eclipse. Es ist noch nicht 1. Klasse, aber es ist da und wird besser.
BCS
46
Das Fehlen von Beweisen ist kein Beweis für das Fehlen.
FeepingCreature
29
Wenn man eine positive Behauptung wie "Es gibt rosa Einhörner" macht, muss man Beweise vorlegen, bevor es vernünftig ist, sie zu akzeptieren. Zugegeben, das bedeutet nicht, dass es keine rosa Einhörner gibt, wie @FeepingCreature sagte, sondern nur, dass dies kein zwingendes oder gültiges Argument ist.
JoshD
8
@Feeping: Das ist ein süßes Sprichwort, das James Randi gerne herumwirft, aber es ist einfach nicht wahr. Wenn Ihre Tests vernünftige Beweise dafür haben, dass der Test etwas finden sollte , aber nicht, das ist ein Beweis für Abwesenheit.
GManNickG
9
Ich möchte hinzufügen, dass wir mit D1 und Tango groß angelegte Anwendungen erstellen. Okay, wir sind nicht plattformübergreifend, sondern nur Linux, aber immer noch. Unsere gesamte Infrastruktur ist in D geschrieben und wir verarbeiten mehr als 30.000 Anfragen pro Stunde mit einem großen DHT-
Backend, das