Die sprache D



  • Wie ihr ja sicher alle wisst kahm vor C die sprache B, jetzt gibt es aber mittlerweile D, und es wir auch schon von einigen IDE (wie codeblocks) unterstützt, jetzt wollte ich mal fragen, ob schon einer von euch damit Erfahrung gesammelt hat, und ob es sich lohnt damit anzufangen, Dies Forum bietet ja keinen bereich für die Programmierung in D an, sonst würde ich dies dort posten.



  • Naja inzwischen hat IX D auch paar Aufmerksamkeite geschenkt, aber solange kein Support durch Tools gibt, wird sich D nicht ansatzweise durchsetzten.



  • Ich sehe D nicht als Weiterentwicklung oder Nachfolger von C++, da D nicht abwärtskompatibel zu C++ ist (d.h. ein gültiges C++ Programm ist kein gültiges D Programm). Es wird also zusammen mit C# und Java neben C++ koexistieren.



  • Der wie vielte Thread zum Thema D ist das jetzt? Bitte lies erst einmal die alten Threads...



  • Nicht so viele, das man gleich auf die alten Thread verweisen musst XD



  • Der größte Nachteil von D ist, dass es keine richtige Standardbibliothek hat.
    Ansonsten ist die Sprache an sich eine interessante Alternative zu C++. Unterstützt z.b. Metaprogrammierung um einiges besser als C++. Auch sonst viele Erleichtungen, die in C++ nur mit zusätzlichen Libs bieten.
    Die Kompilierung ist auch sehr schnell.

    Bin aber persönlich bei C++ geblieben, aus dem oben genannten Grund.
    Ansonsten ist die Sprache so konzipiert worden, dass man sie leicht parsen kann. Aber gute Tools die die Entwicklung erleichtern kenne ich nicht.

    Wenn du noch nicht programmieren kannst, wird es wahrscheinlich auch schwer sein, in der Sprache durchzusteigen. Da es dafür keine Bücher bzw. Tutorials gibt. Zumidest kenne ich keine.



  • Uso12trinker schrieb:

    Ich sehe D nicht als Weiterentwicklung oder Nachfolger von C++, da D nicht abwärtskompatibel zu C++ ist [...]

    Das kann ich mal so nicht stehen lassen. Ich würde sogar behaupten, dass Abwärtskompatibilität etwas ist, was die Weiterentwicklung ausbremst.

    matimatiker schrieb:

    Der größte Nachteil von D ist, dass es keine richtige Standardbibliothek hat.
    Ansonsten ist die Sprache an sich eine interessante Alternative zu C++.

    Ja genau, weil die D-Standardbibliothek ja viel weniger zu bieten hat als die von C++. Das ist mal wirklich eine gewagte Theorie. Sicher ist sie nicht sehr umfangreich, aber alles von C++ ist drin und zusätzlich mehr (zum Beispiel Threads).



  • Optimizer schrieb:

    Uso12trinker schrieb:

    Ich sehe D nicht als Weiterentwicklung oder Nachfolger von C++, da D nicht abwärtskompatibel zu C++ ist [...]

    Das kann ich mal so nicht stehen lassen. Ich würde sogar behaupten, dass Abwärtskompatibilität etwas ist, was die Weiterentwicklung ausbremst.

    Seh ich anders, aber jede seine eigene Meinung.

    Aber wer behauptet denn ständig es sei ein Nachfolger von C++.

    D is a systems programming language. Its focus is on combining the power and high performance of C and C++ with the programmer productivity of modern languages like Ruby and Python.

    Obwohl ich hätte bei der Definition von D, einiges anders gemacht :o



  • Ich würde D auch nicht unbedingt als Nachfolger von C++ ansehen. Aber vielleicht sogar mehr als wie C++ zu C, und das obwohl C++ zu C fast kompatibel ist. Aber wenn man es richtig macht, programmiert man in C++ ganz anders und der Unterschied zu C++ und D ist da nicht so groß.



  • matimatiker schrieb:

    Der größte Nachteil von D ist, dass es keine richtige Standardbibliothek hat.

    Ist denn Phobos nicht umfangreich genug? Ist ja immerhin noch Version 1.0 die Sprache. Quasi ganz am Anfang. Phobos bietet neben der kompletten C Standardbibliothek (befindet sich im Paket std.c) u.a. folgende Module: Sockets, Reguläre Ausdrücke, Funktoren, MD5-Funktionen, Threads und Funktionen für die Kompression (std.zip und std.zlib). Hab jetzt nicht alles aufgezählt, aber man kann ja selber nachschauen: http://www.digitalmars.com/d/phobos/phobos.html

    Dass keine Abwärtskompatibilität zu C++ besteht, ist wohl auch mit dem Aufwand dafür zu begründen. Einige Konzepte beißen sich zudem auch mit C++ und eine klare Abgrenzung in gewissen Punkten war Walter Bright sicherlich auch wichtig.

    Es besteht im Übrigen Binärkompatibilität zu C.



  • matimatiker schrieb:

    Die Kompilierung ist auch sehr schnell.

    Oh ja. Das ist so geil. Das kenne ich von meinen C#-Projekte. (Meine D-Tstprojekte waren bisher alle zu klein, um irgendwas ernsthaftes aussagen zu können. Aber es scheint recht schnell zu gehen.) Ein kompletter Projekt-Rebuild in wenigen Sekunden, wogegen man bei C++ erstmal Kaffee Trinken gehen kann. Und ich befürchte die Übersetzung wird bei C++ noch deutlich langsamer werden, wenn Konzepte und Concept-Maps kommen (sprich C++09). Die erste Umsetzunge der gcc schreckt jedenfalls schonmal unheimlich ab, auch wenn es sich nur um eine vorläufige Umsetzung handelt und es sicherlich noch deutlich schneller werden wird. Aber im Moment habe ich das gefühl, dass sich die Übersetzungszeit verzehnfacht.



  • GPC schrieb:

    matimatiker schrieb:

    Der größte Nachteil von D ist, dass es keine richtige Standardbibliothek hat.

    Ist denn Phobos nicht umfangreich genug? Ist ja immerhin noch Version 1.0 die Sprache. Quasi ganz am Anfang. Phobos bietet neben der kompletten C Standardbibliothek (befindet sich im Paket std.c) u.a. folgende Module: Sockets, Reguläre Ausdrücke, Funktoren, MD5-Funktionen, Threads und Funktionen für die Kompression (std.zip und std.zlib).

    Hm, mir gings da eher um Standardcontainer und co. 🙄



  • matimatiker schrieb:

    GPC schrieb:

    matimatiker schrieb:

    Der größte Nachteil von D ist, dass es keine richtige Standardbibliothek hat.

    Ist denn Phobos nicht umfangreich genug? Ist ja immerhin noch Version 1.0 die Sprache. Quasi ganz am Anfang. Phobos bietet neben der kompletten C Standardbibliothek (befindet sich im Paket std.c) u.a. folgende Module: Sockets, Reguläre Ausdrücke, Funktoren, MD5-Funktionen, Threads und Funktionen für die Kompression (std.zip und std.zlib).

    Hm, mir gings da eher um Standardcontainer und co. 🙄

    Okay, aber dann muss man auch dazusagen, dass die D-Arrays stark aufgewertet wurden (Slicing, abschnittsweise und komplette Zuweisung, Algorithmen wie sort und reverse als Property-Funktionen, ~ - Operator zum Aneinanderfügen) und Assoziative Arrays direkt in die Sprache integriert sind. Die Benutzung ist nur unwesentlich anders als in C++ std::vector und std::map. Bitarrays gibt's auch.

    Allerdings muss man klar sehen, dass noch einiges an Algorithmen und Containern fehlt. Es gibt zwar Implementierungen dieser Container, aber die sind noch nicht Teil von Phobos. Wie gesagt, D steht ja noch ganz am Anfang.

    Der größte Nachteil ist imo, dass Tools wie IDEs, mehrere Compiler (gibt momentan dmd und gdc, ein Frontend für den gcc) usw. momentan noch fehlen.



  • GPC schrieb:

    Der größte Nachteil ist imo, dass Tools wie IDEs, mehrere Compiler (gibt momentan dmd und gdc, ein Frontend für den gcc) usw. momentan noch fehlen.

    Kann sein. Mir reicht auch für c++ vim und doxygen aus. Auch für größere Projekte. Für D wäre da statt doxygen ddoc (oder wie das teil heißt) wohl angebrachter. Weiß nicht wie gut doxygen D unterstützt.



  • Das größte Problem für D wird wahrscheinlich sein, dass es nicht ordentlich von der Industrie gepushed wird und keine tollen, wichtigen Business-Frameworks dafür portiert werden.



  • habe vor ner Weile mir mal das D Tutorial durchgelesen und die Sprache ist echt nicht schlecht. gefält mir sogar (fast?) besser als C++. jedoch was mir nciht gefält, ist dass es noch in der Entwicklungsphase ist und sehr schlecht verbreitet. Zudem gibts kaum externe Libs dafür, und die die es gibt sind in der Alpa Phase. Ich denk mal in 5 jahren wird die Sache anders aussehen.



  • D finde ich recht interessant, da es wohl die wichtigsten Vorteile von C/C++ und Java zu vereinen scheint.

    Außerdem ist es mal sehr interessant eine Sprache von Anfang an mitverfolgen zu können. Mal sehen ob sie sich auch halten kann.

    Aber wer jetzt in D einsteigt, der kann sich als Pionier sehen in ein paar Jahren.



  • Ich finde D nicht spannend. Es ist eben eine weitere Sprache aus dem C-Umfeld, wo sich schon C++, Java und C# tummeln. Was soll mir D bringen? Ein paar Annehmlichkeiten? Da würde ich lieber eine Sprache lernen, die mir eine andere Art zu denken lehrt.

    Ansonsten ist D ein Projekt im großen und ganzen von einer einzelnen Person. Es fehlt (noch?) an einer großen Community, vorzeige Libraries und Industrie-Support. Derzeit ist es aus wirtschaftlichen Gründen sogar ein Risiko auf D zu setzen (nur für den Fall, das jemand mir erzählen will, das andere Sprachen die einen andere Wege zu denken vermitteln toll seien, aber nicht wirtschaftlich...).



  • Optimizer schrieb:

    Uso12trinker schrieb:

    Ich sehe D nicht als Weiterentwicklung oder Nachfolger von C++, da D nicht abwärtskompatibel zu C++ ist [...]

    Das kann ich mal so nicht stehen lassen. Ich würde sogar behaupten, dass Abwärtskompatibilität etwas ist, was die Weiterentwicklung ausbremst.

    Sehe ich genauso. Wozu soll D kompatibel zu C++ sein? Ich kann mich auch nicht erinnern, dass der Entwickler dies irgendwo in der Doku als ein Ziel erwähnt hätte.

    Ansonsten habe ich mir vor einiger Zeit D mal etwas genauer angesehen, und durchaus einige interessante Ansätze entdeckt. Vieles ist allerdings, wie rüdiger schon sagte, mehr Annehmlichkeit als wirklich neu. Zudem wurden leider einige Sachen semioptimal umgesetzt, wie zB die Syntax. Wobei hier natürlich eine gehörige Portion Subjektivität mitspielt. Das gleiche kann man sicherlich auch über andere Sprachen sagen. Deshalb ist D für mich erstmal keine wirkliche Option, zumal der Support im Vergleich zu anderen etablierten Sprachen recht gering ist. Spannend wird sicherlich sein, ob die Industrie auf D setzt. Wenn nicht, dann bleibt es nicht mehr als ein Hobby Projekt.



  • D ist ganz nett. C++0x ist ganz nett. Aber beides wird sich nicht mehr richtig durchsetzen können - und das nicht nur wegen des hässlich-nerdigen Namens. 🙄


Anmelden zum Antworten