Frage

Ist die D Sprache eine glaubwürdige Alternative zu Java und C ++? Was wird es eine glaubwürdige Alternative geworden dauern? Soll ich es die Mühe zu lernen? Ist es verdient zu evangelisieren?

Der Hauptgrund, warum ich frage ist, dass mit dem neuen C ++ Standard (c ++ 0x) fast hier, es ist mir klar, dass die Sprache auch ohne Rückkehr über den Punkt in Bezug auf jemand es jemals versteht gegangen ist. Ich weiß, dass C / C ++ wird niemals sterben, aber irgendwann müssen wir weitermachen. Wir hatten sogar COBOL seinen Tag und Java hat in vielerlei Hinsicht C rückgängig gemacht ++. Was kommt als nächstes? Hat D füllen die Rechnung?

War es hilfreich?

Lösung

Was bestimmt den Erfolg und die Popularität einer Programmiersprache für reale Software-Entwicklung nur teilweise auf die Qualität der Sprache selbst bezogen. Als reine Sprache, D haben wohl viele Vorteile gegenüber C ++ und Java. Zumindest ist es eine glaubwürdige Alternative als reine Sprache, alle anderen Dinge gleich sind.

Doch egal, andere Dinge für die Softwareentwicklung - fast mehr als die Sprache selbst: Portabilität (wie viele Plattformen funktioniert es läuft auf), Debugger-Unterstützung, IDE-Unterstützung, Standardbibliothek Qualität, dynamische Bibliothek Unterstützung, Bindungen für gemeinsame APIs, Dokumentation , die Entwickler-Community, Impuls und kommerzielle Unterstützung, um nur einige zu nennen. In jedem dieser Hinsicht ist D hoffnungslos hinter Java, C ++ und C #. In der Tat, würde ich argumentieren, es ist sogar hinter so genannten "Scripting" Sprachen wie Python, Perl, PHP, Ruby und sogar JavaScript in dieser Hinsicht.

stumpf sein, man kann nicht einfach eine groß angelegte, plattformübergreifende Anwendung mit einer unreifen Standard-Bibliothek unter Verwendung von D. bauen, keine Unterstützung in jedem modernen IDEs (es gibt Plugins für beide Visual Studio und Xamarin Studio / MonoDevelop), begrenzte dynamische / Shared Library Unterstützung, und nur wenig Bindungen zu anderen Sprachen, D ist einfach keine Option heute.

Wenn Sie mögen, was Sie von D zu sehen, die mit allen Mitteln, lernen sie - es nicht lange dauern sollte, wenn Sie bereits Java und C ++ kennen. Ich glaube nicht, Evangelisation hilfreich wäre -. An dieser Stelle, wenn D gelingen wird, was es wirklich braucht, ist mehr Menschen mit der es leise und Adressierung seiner Unzulänglichkeiten wie Standard-Bibliothek und IDE-Unterstützung

Schließlich, wie für C ++, während der meisten einig, die Sprache zu komplex ist, Tausende von Unternehmen C erfolgreich mit ++ als Teil einer gesunden Mischung aus Sprachen, indem nur eine kleine, gut definierte Teilmenge der Sprache. Es ist immer noch schwer zu schlagen C ++, wenn sowohl rohe Leistung und geringer Speicherverbrauch erforderlich sind.

Andere Tipps

Nur meine eigenen Erfahrungen in die Mischung hinzufügen:

Vor etwa ein Jahr arbeite ich in einem kleinen Maßstab Spiel-Projekt (3 Coder) mit einer Dauer 3 Monate, in denen wir D als unsere primäre Sprache verwendet. Wir wählten es zum Teil als ein Experiment, zum Teil, weil es bereits Bindings für SDL hatte und einige andere Werkzeuge, die wir verwendet haben, und vor allem für die Vorteile ist erschienen über C ++ zu haben.

Wir liebten es zu benutzen. Es war schnell zu erlernen und einfach zu schreiben. Viele davon die Funktionen von unschätzbarem Wert, und ich vermisse sie zurück zu C ++ gegangen.

Allerdings sind die folgenden Punkte aus unserem Leben schwieriger:

  1. Es gab keine guten IDE an der Zeit, die ein wichtiges Thema war. Am Ende haben wir unsere eigene Herstellung von Scite anpassen. Das funktionierte in Ordnung, aber nicht ideal war.
  2. Es gab keinen Debugger an der Zeit. Wir haben es geschafft zu bekommen WINDBG auf Hit-or-miss Basis zu arbeiten, aber es war unzuverlässig. Debug-Code ohne einen Debugger gemacht Leben höllisch manchmal.
  3. Es waren zwei Standardbibliotheken von zu der Zeit (Tango und Phobos) zu wählen. Wir begannen mit einem wechselte auf die andere, und brauchte wirklich eine Mischung aus Features von beiden (Tangobos!). Dies verursachte Kopfschmerzen und einige Code neu zu schreiben.
  4. Bindungen zu anderen Tools nicht zur Verfügung. Am Ende mussten wir DirectX wechseln (aus Gründen, die ich nicht in bekommen). Es gab keine Bindungen für DirectX zur Verfügung, so dass wir unsere eigenen in C ++ schreiben, bauen sie als DLL und binden sich an das. Das war ziemlich unangenehme Arbeit und dauerte einige Zeit.

Alles in allem fanden wir D. schreiben Es tatsächlich Code schreiben leicht gemacht und war schnell zu erlernen. Die Fragen, die ich erwähnt habe, die Antwort Echo, die für diese Frage angenommen wurde -. Es ist die „extra“ Bits, die Adressierung in D benötigen, der Kern es ist fest

Ich bin damit einverstanden, dass C ++ ist eine Sackgasse Sprache immer - und es schmerzt mich, das zu sagen, nachdem es für die letzten 17 Jahre hat

.

Ich denke, D der rechtmäßige Nachfolger von C ++ ist. Aus einer Sprache Perspektive es „tut die richtigen Dinge“ (auch wenn ich mit jeder Minute Entscheidung nicht einverstanden ist). Ich denke, mit C und C ++ auf den Rückgang gibt es keine andere Systeme Sprache ist, die wirklich tun können, was sie tun, während sich in der Welt der modernen Sprachen hält - außer D! Nicht nur, dass D diese Rolle ausfüllen - es zeichnet sich bei ihm! Ein Blick auf D1.x sollte ausreichen, um Sie davon zu überzeugen - aber wenn man sich D2.0 sehen es bläst Sie weg. Es ist meine Meinung, dass es keine andere Sprache um heute ist, die auch als D2.0 arbeitet in den zwingenden und funktionale Programmierparadigmen Überbrückung -., Die nur an Bedeutung in den kommenden Jahren erhalten wird

Der Mangel an Mainstream-Akzeptanz - oder sogar Sicht - sowie in großem Maßstab, reifen, Bibliotheken - ist ein Hindernis natürlich. Aber ich glaube nicht, dass Sie, weil es aus diesen schreiben können. Ich bin überzeugt, dass D wird wächst eine der wichtigsten Sprachen wird um in den nächsten Jahren - und diejenigen, die es ernst nehmen jetzt gut aufgestellt werden, um die Führung zu übernehmen, wenn die Zeit kommt.

Ich denke, der Unterschied etwa aufgrund kommen wird, zu einem großen Teil auf Andrei Alexandrescu Beteiligung. Das ist nicht Walter Bright in irgendeine Weise zu diskreditieren, die eine bedeutsame Arbeit in bringen D in der Welt getan hat. Aber Alexandrescu ist eine wichtige und überzeugend, Figur in sicherlich die C ++ Gemeinschaft - und dort ist, wo die meisten des potenziellen D-Switcher aus kommen werden. Und er hat auch einen bedeutenden und wichtigen Beitrag zur D2.0 in seiner Unterstützung für die funktionale Programmierung.

Es kann noch herausstellen, dass D ist zum Scheitern verurteilt die Betamax Systemsprachen zu sein - aber mein Geld auf ihn um in den nächsten zwei Jahren drehen

.

Ich mag, dass D das Werk eines Genies ist, in erster Linie ein Geist - Walter Hell, dessen Zortech Compiler in seinem Tag war fantastisch.

Im Gegensatz C ++ ist zu viel Design von Ausschuss, auch wenn Bjarne ein Einfluss ist. Zu viele Add-On-Funktionen und seltsame neue Syntax. Dieser Unterschied spiegelt sich in der Leichtigkeit des Lernens und der Leichtigkeit des täglichen Gebrauchs, weniger Bugs.

Die kohärentere Sprachen führen zu einer besseren Produktivität und Programmierer Freude - aber das ist subjektiv und arguable! (Ich glaube, ich sollte meine eigene Antwort stimmen)

D ist eine gute Sprache und anständig populär , aber wie alle Sprachen, es ist nur ein weiteres Werkzeug. Welches Tool zu verwenden, hängt von der Art der Person, die Sie sind, wie Sie denken, die Umgebung, die Sie arbeiten in, welche Einschränkungen der Sprachen, die das Programm anwenden, und was am wichtigsten ist, das Programm selbst. Wenn Sie die Zeit haben, würde ich auf jeden Fall empfehlen D. Worst-Case-Szenario zu lernen, werden Sie nie verwenden. Wahrscheinlicher erfahren Sie, welche Aspekte es Ihnen am besten gefällt, und unter welchen Bedingungen es scheint hellsten und für das auszunutzen, wenn neue Programme zu machen.

Ich würde auf der D Vergleichstabelle empfehlen, sich, was die Funktionen zu sehen die Sprache ist und sehen, ob es das richtige für dich klingt.

D Sprache ist modern. Keine Sprache ist perfekt, und es gibt keinen Zweifel. Aber Sprachen sind geboren, um das Leben leichter zu machen. Wo D Sprache im Vergleich zu C ++ viele guten Eigenschaften hat, im Hinblick auf Komplexität. Viele andere Sprachkombination Spezialität beteiligt ist, die Programmierer hilft schneller zu codieren, mit Top-Features von anderen Sprachen eingeführt. Bitte beachten Sie auch: , um weitere Informationen über D und andere Sprachen

  • D vs C ++, ist die Kompatibilität, wo riesige C ++ Sprachen beteiligt sind, und erfordert die Kompatibilität mit D. D erlauben bereits 100% ige Kompatibilität mit C, die immer noch ein guter Sieg ist.

  • D vs C ++, C ++ meiner Meinung nach sehr schöne Sprache ist, aber es ist schwierig Code und zeitaufwendig ist, mehr und mehr Erfahrung erfordert Erfolg zu bekommen, aber D erlauben, mit Einfachheit, das gleiche zu tun

  • D vs C ++, ich bin nicht sicher, ob C ++ tut, aber D tun keine Typbeschränkung Variablenzuweisung mit „auto“ ermöglichen, die eine variable Dynamik haben gut ist, wenn benötigen, können Sie eine strenge Art machen

  • D vs C ++, wenn Sie andere Sprache Erfahrung haben, können Sie gerade damit beginnen, es einfache Lernstraßenkarte hat, und sein von einem starken erfahrenen Team und Unternehmen Unterstützung entworfen bekommen

  • D vs C ++, die sehr schön, was ich von D gefunden, die Stil-Code ist, gibt es das Aussehen und das Gefühl, genau die gleichen wie C / C ++, während Codierung es i erinnert wirklich moderne C / C tue ++ die genannten D

Es gibt viel mehr gute Gründe für D Sprache, gibt es keinen Grund, jede Sprache zu unterschätzen, es ist immer der Benutzer Wahl.

Es hängt wirklich davon ab, was Ihre Bedürfnisse sind - groß angelegte kommerzielle Anwendungen in D geschrieben gibt es auf der Serverseite und für die D (in der Regel unter Verwendung von Tango / Mango) ist eine perfekte Passform und Sie sind wahrscheinlich mehr Anfragen bedienen zu können, als mit jeder anderen Sprache / Plattform.

Für spezialisierte Lösungen in Bezug auf Protokolle und Interaktivität (was viele sind), werden Sie mehr Probleme haben, die benötigten Bibliotheken zu finden, und der Mangel an Tool ist wahrscheinlich, dass Sie mehr beeinflussen.

D ist ziemlich beeindruckend, und Andrei Buch über es ist gut geschrieben. Aber wie schon andere gesagt haben, müssen Sie die Tools und die Plattform-Unterstützung. GDC kann im Laufe der Zeit, die Antwort auf beide.

Haben Sie das gesehen?

"GNU Debugger fügt D Sprachunterstützung": http: // www. linux.com/news/enterprise/biz-enterprise/358956-gnu-debugger-adds-d-language-support

Auch hat die digitalmars Site-Seiten Anbindung an C und C ++ zu diskutieren (für die Bibliotheken, die Sie können, ohne einfach nicht leben). Ich frage mich, ob es irgendwelche Werkzeuge, die eine C-Header-Datei angegeben, wird auf das Schreiben der D-Prototypen einen Stich nehmen.

Persönlich würde ich an dieser Stelle nicht Push für ein großes Projekt in D zu tun, aber ich würde mit D für Inhouse-Tools, mit ihm bekommt Erfahrung und andere, um es einzuführen.

Die ursprüngliche Frage war, ob D eine glaubwürdige Alternative zu Java und C ++ ist. Ich glaube nicht, D und Java gehen, um wirklich viel Konkurrenz in der Praxis; D konkurriert mit C ++ und jetzt gehen. Weitere Fragen beziehen sich die Unterschiede zwischen D und gehen, aber Go ist in der Regel einfacher zu bedienen betrachtet. So vermute ich, dass die Zukunft der D viel hängt davon ab, wie viel Raum gibt es für sie zwischen C ++, den aktuellen König des Hügels, und Go, die viel einfachere Alternative, die hat Googles Unterstützung zu atmen.

UPDATE: Ich habe gerade entdeckt, dass mein Lieblingskapitel von Andrei Buch , ist das auf Gleichzeitigkeit, kostenlos im Internet verfügbar. Auf jeden Fall lesenswert!

Und hier ist ein loooong Diskussion über die relativen Vorteile / Ziele / Ansätze von Go und D .

Es sieht aus wie die Frage beantwortet wurde. D ist die bessere Sprache im Vergleich zu C ++.

Die Frage, ob für praktische Zwecke D hat um eine bessere Infrastruktur ist zweitrangig.

Kurz gesagt, wenn sie beide Marken sind neue Sprachen ohne jegliche Unterstützung um sie herum D sind die bessere Sprache, ergo es ist die bessere Sprache.

Als Sprache, ich habe immer das Gefühl, dass D näher an C # als C ++. Nicht in Funktionen und Bibliotheken, aber in „Gefühl“. Es ist viel sauberer, schöner ... Spaß (als C ++). IMHO ist das größte Hindernis in einer glaubwürdige Alternative zu werden, sind Werkzeuge, IDE und Debugger. Wenn D einige Hindernisse der weitverbreiteten Nutzung / Annahme überwindet, mehr Tools und Bibliotheken manifestieren. (Ich selbst werde zu D zurückkehren, wenn es eine brauchbare IDE und Debugger sein.)

Arbeiten groß für meine eigenen Projekte realisiert. Ich würde es für Projekte der Arbeitgeber verwenden, aber nicht zu wissen, wie schwer es sein würde für sie jemanden zu finden, über die Quelle zu nehmen, nachdem ich weitermachen. Es gibt keine technischen Gründe, es zu vermeiden, zumindest auf den unterstützten Plattformen. (Schlag auf Holz)

Ein Ansatz ist für die Arbeitsplätze in Ihrer Nähe zu suchen. Finden Sie die Jobs, die Sie möchten tun und sehen, welche Fähigkeiten sie haben wollen. Wenn sie fragen, für C ++ oder Ruby oder Oracle oder D, dann ist die Fähigkeit, die meist ist es, Ihnen zu helfen, die Arbeit, die Sie wollen, zu erhalten.

Es sieht aus wie eine sehr gut gestaltete Sprache; viel besser als C - C ++ - Objective C. Ich kann für eine Weile ohne IDE oder einen Debugger leben, aber nicht ohne eine gute dokumentierte Bibliothek für D 2.0.

Ich werde in 6 Monaten prüfen ...

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top