Gebt doch endlich mal richtige Gründe gegen die Sprache D an!



  • Aha und was war jetzt nochmal der Vorteil von D? Ich höre hier gerade die gleichen Argumente wie bei Java oder C# und sehe somit keinen Grund mit D rumzukrampfen wenn ich bei Java und C# bereits eine Top Toolchain habe.



  • Ich kann nicht mehr... schrieb:

    Aha und was war jetzt nochmal der Vorteil von D? Ich höre hier gerade die gleichen Argumente wie bei Java oder C# und sehe somit keinen Grund mit D rumzukrampfen wenn ich bei Java und C# bereits eine Top Toolchain habe.

    Du scheinst sehr dumm zu sein.

    In Java oder C# programmiert jedenfalls kein kommerzieller Spieleentwickler
    eine 3d Engine, mit D könntest du das machen, denn als Systemnahe Programmiersprache erlaubt sie dir die Performance die du dafür brauchst.

    Und lahme Compiler sind ja kein Argument, wenn die in Naher Zukunft Geschichte sind.



  • Mal ein Konstanten Problem bei C++ bzw. C in der Praxis:

    Wenn man ein konstantes Struct hat, das Zeiger enthält, dann
    "vererbt" sich das const nicht auf diese Zeiger.
    Und das heißt: ich kann das Struct so oft const machen, wie ich will,
    es wird trotzdem mutieren - nicht das struct selbst, aber die Daten,
    auf die es verweist.



  • Hi,

    aus Sicherheitsgründen wäre eher Ada zu empfehlen.

    Gruß Mümmel



  • Hi,

    was bringt die Sicherheit, daß ein const wirklich konstant ist?

    Der Compiler soll gegen versehentliche Fehler schützen. Nicht dagegen daß einer bewust falsch spielt. Wenn einer zum Beispiel das Const bewust wegcastet, dann wird er scho wissen warum. Aber C++ und C waren noch nie die Sprachen für den Dödel, sondern immer die Sprachen für den wissenden Entwickler.
    Vor lauter Fangnetzen kann man sich auch in denen verfangen.

    Gruß Mümmel



  • D Fan schrieb:

    Ich kann nicht mehr... schrieb:

    Aha und was war jetzt nochmal der Vorteil von D? Ich höre hier gerade die gleichen Argumente wie bei Java oder C# und sehe somit keinen Grund mit D rumzukrampfen wenn ich bei Java und C# bereits eine Top Toolchain habe.

    Du scheinst sehr dumm zu sein.

    In Java oder C# programmiert jedenfalls kein kommerzieller Spieleentwickler
    eine 3d Engine, mit D könntest du das machen, denn als Systemnahe Programmiersprache erlaubt sie dir die Performance die du dafür brauchst.

    Und lahme Compiler sind ja kein Argument, wenn die in Naher Zukunft Geschichte sind.

    Wenn einem die Argumente ausgehen fängt man halt an beleidigend zu werden...

    Welcher kommerzielle Spieleentwickler entwickelt seine Engine denn in 3D?

    Also ich kenne genügend 3D Spiele die auf Java setzen, du scheinbar nicht...



  • Ich lieg aufm Boden... schrieb:

    D Fan schrieb:

    Ich kann nicht mehr... schrieb:

    Aha und was war jetzt nochmal der Vorteil von D? Ich höre hier gerade die gleichen Argumente wie bei Java oder C# und sehe somit keinen Grund mit D rumzukrampfen wenn ich bei Java und C# bereits eine Top Toolchain habe.

    Du scheinst sehr dumm zu sein.

    In Java oder C# programmiert jedenfalls kein kommerzieller Spieleentwickler
    eine 3d Engine, mit D könntest du das machen, denn als Systemnahe Programmiersprache erlaubt sie dir die Performance die du dafür brauchst.

    Und lahme Compiler sind ja kein Argument, wenn die in Naher Zukunft Geschichte sind.

    Wenn einem die Argumente ausgehen fängt man halt an beleidigend zu werden...

    Welcher kommerzielle Spieleentwickler entwickelt seine Engine denn in 3D?

    Also ich kenne genügend 3D Spiele die auf Java setzen, du scheinbar nicht...

    kommerzielle versteht sich



  • D Fan schrieb:

    Eine 3d Engine wird auch schon in D programmiert und das Ergebnis kann sich sehen lassen.
    Die Screenshots sehen zumindest schonmal gut aus.

    Nenn mir doch mal wirklich gute Gründe für D, die dessen Nachteile aufwiegen.

    Für mich muss eine Sprache in erster Linie erstmal ihre Aufgaben erfüllen. Dafür sind sinnvolle Tools unabdingbar. Ansonsten könnte ich genauso gut auch Assembler mit einen Texteditor schreiben. Ansonsten mag D schöne Ansätze haben (Ich habe bislang keine gefunden die mir gegenüber C++ positiv herausgestochen sind, und nicht durch den kommenden Standard abgedeckt wären - Ganz von den Kinderkrankheiten abgesehen).

    Und eine 3D-Engine ist jetzt nichts ausschlaggebendes (das gibt es für jede moderne Sprache).

    cu André



  • Kein Mensch will D.
    Und die, wo noch mit C rumgurken, warten lieber auf E. :p



  • Also versuchen wir es mal optimistisch und wohlwollend, wie sonst bei einer Innovation, die bereits seit fast 10 Jahren entwickelt wird und die die wenigsten Entwickler aus der Praxis kennen.

    D könnte C++ ablösen in der Spieleentwicklung?
    D könnte C ablösen in der µP-Programmierung?
    D könnte Java/C#/C++ ablösen in der GUI-Entwicklung?

    Bitte gib uns konkrete Links zu Ansätzen in diesen drei Bereichen, damit wir uns ein Bild machen können.

    Ansonsten suche ich immer noch eine vergleichende Übersichtstabelle zumindest zwischen C/C++/D/Java. Gibt es so etwas von den D-Entwicklern?



  • Eine 3d Engine wird auch schon in D programmiert und das Ergebnis kann sich sehen lassen.

    Die Screenshots sehen zumindest schonmal gut aus.

    Hmm... Bei nem Foto von nem Auto bekommst Du auch nicht heraus, wie es fährt.



  • asc schrieb:

    Nenn mir doch mal wirklich gute Gründe für D, die dessen Nachteile aufwiegen.

    ➡ Lazy Evaluation
    ➡ Mixins
    ➡ GC
    ➡ ...

    Und wenn du schon Kinderkrankheiten ansprichst, vergiss bitte nicht diese auch bei deiner Beurteilung des kommenden C++-Standards, der irgendwann, in einigen Jahren, implementiert sein wird, zu berücksichtigen...



  • Erhard Henkes schrieb:

    Ansonsten suche ich immer noch eine vergleichende Übersichtstabelle zumindest zwischen C/C++/D/Java. Gibt es so etwas von den D-Entwicklern?

    Selbstverständlich:
    http://www.digitalmars.com/d/2.0/comparison.html



  • muemmel schrieb:

    Hi,

    aus Sicherheitsgründen wäre eher Ada zu empfehlen.

    Gruß Mümmel

    Ada suckt im Vergleich zu D.

    Beweis hier:
    http://home.att.net/~jimmaureenrogers/AdaAdditionToDComparisonTable.htm



  • Konzeptionell ist D vermutlich in Ordnung, auch wenn manche andere Vorstellungen von der idealen Sprache haben. Für mich sind die Handhabbarkeit und die primären Anwendungsfelder wichtig, und da liegen entscheidende Schwachpunkte.

    Wie stellt man sich das eigentlich im Entwicklungsteam vor?
    Soll D die Sprachen C und C++ substituieren? Diese beiden Sprachen werden doch ebenfalls weiter entwickelt, können gleichzeitig aber auch auf einen gigantischen Fundus an Software zurück greifen, vor allem im GUI-, Netzwerk- und Mikroprozessorbereich.



  • Erhard Henkes schrieb:

    Wie stellt man sich das eigentlich im Entwicklungsteam vor?
    Soll D die Sprachen C und C++ substituieren? Diese beiden Sprachen werden doch ebenfalls weiter entwickelt, können gleichzeitig aber auch auf einen gigantischen Fundus an Software zurück greifen, vor allem im GUI-, Netzwerk- und Mikroprozessorbereich.

    Du kannst alle C Bibliotheken auch mit D nutzen.
    D ist dahingehend abwärtskompatibel.

    Natürlich hast du dann keine Kontrolle über Bufferoverflows und so Scherze, wenn die n der C Bibliothek stattfinden.



  • OK, mal ein konkreter und sehr einfacher Test:

    Das Programm zur Collatz-Folge:

    // Berechnung der "3n+1"-Folge (Collatz-Folge)
    #include <iostream>
    #include <limits>
    #include <string>
    #include "BigIntegerLibrary.h"
    
    using namespace std;
    
    void wait()
    {
      std::cin.clear();
      std::cin.ignore(std::numeric_limits<std::streamsize>::max(),'\n');
      std::cin.get();
    }
    
    int main()
    {
      /*********************************************************** Eingabebereich ****************************/
      BigUnsigned element_limit(1000000) ;      // Maximum H(n)
      BigUnsigned element_print_limit(4103) ;    // Ausgabe nur, wenn H(n) > element_print_limit
    
      string s("10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000");               // Beginn der Berechnung bei start
      BigUnsigned start = easyStringToBI(s);
    
      s = "10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000";                    // Ende der Berechnung bei end
      BigUnsigned end = easyStringToBI(s); 
      /*********************************************************** Eingabebereich ****************************/
    
      for( BigUnsigned j = start; j < end; j++ )
      {
           BigUnsigned zahl = j ;
           BigUnsigned    i = 1 ;
           while( ( zahl != BigUnsigned(1) ) && ( i <= element_limit ) )
           {
                //cout << zahl << '\t';
                BigUnsigned rest = zahl % BigUnsigned(2);
                if( rest != BigUnsigned(1) )
                    zahl /= BigUnsigned(2) ;
                else
                    zahl = BigUnsigned(3) * zahl + BigUnsigned(1) ;
                i++;
           }
    
           if( zahl == BigUnsigned(1) )
           {
                if( i > element_print_limit )
                {
                    cout << "Startzahl: " << j;
                    cout << "\tAnzahl: "  << i << endl;
                }
           }
           else
           {
               cout << "Startzahl: " << j; 
               cout << "kein Resultat (Anzahl-Limit erhoehen)" << endl;
           }
    
           if( i > element_limit ) cerr << "Anzahl zu hoch" << endl;
      }
    
      wait();
    }
    

    In C/C++ benötige ich dazu einen Compiler wie Code::Blocks oder MS Visual C++ und die Bibliothek (Header-/Implementationsdateien) "BigInteger" (kostenlos aus dem Internet, ausreichend Alternativen bezüglich Handhabbarkeit und Geschwindigkeit).

    Wie sieht das nun konkret bei D aus?

    Compiler gibt es bei Digital Mars? http://www.digitalmars.com/d/download.html
    Wie sieht es mit einer kompekten IDE aus? (von Integration in Code::Blocks habe ich gehört, aber heute bekommt man MS VC++ 2008 Express kostenlos!).
    Woher bekomme ich eine "BigInteger" Bibliothek?



  • Erhard Henkes schrieb:

    Woher bekomme ich eine "BigInteger" Bibliothek?

    Die Frage verstehe ich nicht.

    Warum benutzt du die BigInteger Lib nicht einfach mit D?



  • Ein (Verständnis-)Problem das ich bei D habe: Welches Problem löst D denn? Ich meine reale Probleme und nicht Syntaxsdiabetes.



  • Da kannst du vermutlich lange auf eine Antwort warten. Das wissen die D Verfechter nicht mal selbst. Solche Diskussion sind leider ideologisch motiviert und nicht wirklich sachdienlich.

    @D Fan
    Du hast ausserdem ein grundlegendes Problem. Es geht nicht darum, Gründe gegen D anzugeben. Obwohl es da schon reichlich gibt. Es geht darum, trifftige Gründe für D zu finden. Und bis auf Syntaxzucker gibt es da keine.


Anmelden zum Antworten