Ist man mit der Programmiersprache D 2.0 anstatt C++ (C++11) schneller am Ziel?



  • Kellerautomat schrieb:

    Ethon schrieb:

    Dann versteh ich nichtmal im Ansatz wie man sich über den GC von D beschweren kann. Man muss ihn absolut nicht benutzen aber wenn man will dann ist er ein Geschenk des Himmels.
    Dem Argument fehlt in meinen Augen jeder Boden.

    Lehnst du ein geschenktes Auto ab wenn es ein Navi hat aber du kein Navi brauchst weil du den Weg auch so findest?

    Erstens wurde schon das Argument genannt, dass die D stdlib ohne GC nur beschraenkt benutzbar ist, zweites habe ich noch nie das Verlangen nach einem GC gespuert.

    Ums mal auf deine Analogie zu uebertragen: Das Navi kann ich einschalten wenn ichs brauche. Ein Navi, das sich nicht ausschalten laesst und dauernd irgendwas ansagt wuerde ich definitiv wegwerfen. Und wenn das Navi ins Auto eingebaut ist, dann auch das Auto!

    Der GC ist mehr wie die Servolenkung.
    Du kannst auch ohne Servolenkung Auto fahren, aber mit ist es bequemer und so ist es auch mit GC.
    Man spart dabei nen Haufen Zeit und das er bei D abschaltbar ist, ist doch etwas sehr schönes.

    Inwieweit das mit "D stdlib ohne GC = nur beschraenkt benutzbar" wäre zu beweisen.



  • Auf der anderen Seite kann man in C++ einen GC nutzen, wenn man denn unbedingt will. Wo bleibt da der Riesenvorteil von D?



  • Tyrdal schrieb:

    Auf der anderen Seite kann man in C++ einen GC nutzen, wenn man denn unbedingt will. Wo bleibt da der Riesenvorteil von D?

    Wer verspricht Riesenvorteil?



  • Tyrdal schrieb:

    Auf der anderen Seite kann man in C++ einen GC nutzen, wenn man denn unbedingt will. Wo bleibt da der Riesenvorteil von D?

    Spricht doch keiner davon dass der GC der Hauptvorteil ist. Wobei: Wie würdest du es denn bei C++ machen, welchen GC würdest du verwenden und wie ist die Kommunikation zwischen Sprach features und GC?

    Ich sehe den Vorteil in erster Linie darin dass man bei D einfach C++ komplett aufgeräumt hat + zahlreiche, bei C++ überfällige Features hinzugefügt hat.

    Gleichzeitig auch der Nachteil da C++ eigentlich auch nur wegen der großen Mengen vorhandenen Codes verwendet wird und man bei D für alles Wrapper/Interfaces schreiben müsste.



  • Zeus schrieb:

    Tyrdal schrieb:

    Auf der anderen Seite kann man in C++ einen GC nutzen, wenn man denn unbedingt will. Wo bleibt da der Riesenvorteil von D?

    Wer verspricht Riesenvorteil?

    Na der OP. Es geht hier doch um schnellere Ergebnisse.



  • Och, ist schon angenehmer nicht jede dynamische Speicherallokation irgendwie wrappen zu müssen.
    Wenn man dann bedenkt dass der GC in vielen Szenarien performanter ist als das new/malloc/delete/free Gedöns ist das schon ein netter Vorteil. 👍

    In zeitkritischen oder extrem Low-Level Anwendungsfällen muss man halt darauf verzichten - da möchte man meistens aber auch nicht mit new/delete hantieren und ich behaupte einfach mal dass die allerwenigsten hier Anwendungen schreiben bei denen ein GC-Aufräum-Cycle nicht akzeptabel wäre.



  • Ethon schrieb:

    Och, ist schon angenehmer nicht jede dynamische Speicherallokation irgendwie wrappen zu müssen.
    Wenn man dann bedenkt dass der GC in vielen Szenarien performanter ist als das new/malloc/delete/free Gedöns ist das schon ein netter Vorteil. 👍

    *gahn*, das höre ich nun auch schon seit java noch aufstrebend war.



  • Tyrdal schrieb:

    Zeus schrieb:

    Tyrdal schrieb:

    Auf der anderen Seite kann man in C++ einen GC nutzen, wenn man denn unbedingt will. Wo bleibt da der Riesenvorteil von D?

    Wer verspricht Riesenvorteil?

    Na der OP. Es geht hier doch um schnellere Ergebnisse.

    Das war kein Versprechen sondern seine Frage.



  • volkard schrieb:

    Ethon schrieb:

    Och, ist schon angenehmer nicht jede dynamische Speicherallokation irgendwie wrappen zu müssen.
    Wenn man dann bedenkt dass der GC in vielen Szenarien performanter ist als das new/malloc/delete/free Gedöns ist das schon ein netter Vorteil. 👍

    *gahn*, das höre ich nun auch schon seit java noch aufstrebend war.

    Ist auch kein Zufall dass Java 100x relevanter ist als C++, egal ob man Java mag oder nicht.



  • Ethon schrieb:

    Ist auch kein Zufall dass Java 100x relevanter ist als C++, egal ob man Java mag oder nicht.

    So wichtig, daß ich kein Java auf dem PC habe. Naja, ich bin aber auch kein Zocker, sonst müßte ich ja wegen der vielen modernen 3d-Spiele Java drauf haben. Mit Minecraft ist Java auf einmal vorn in die Spielewelt eingebrochen, nun gibt es nur noch Browser, Server, Compiler, Office-Suiten, Datenbankmaschinen, Numbercrunching und wissenschaftliche Simulationen, die klar von Java frei oder unbrauchbar sind.



  • Ich benutze auch nicht wirklich Java.
    Trotzdem kommen auf 1 Stellenausschreibung für C++ locker 99 Stellenausschreibungen für Java. Oder C#.

    Wir haben hier an der Uni ein gewaltiges schwarzes Brett mit Ausschreibungen. C++ liest man alle Jubeljahre mal und dann ist es embedded.



  • Ethon schrieb:

    Ich benutze auch nicht wirklich Java.
    Trotzdem kommen auf 1 Stellenausschreibung für C++ locker 99 Stellenausschreibungen für Java. Oder C#.

    Wir haben hier an der Uni ein gewaltiges schwarzes Brett mit Ausschreibungen. C++ liest man alle Jubeljahre mal und dann ist es embedded.

    Kann ich mir so direkt nicht erklären. Sind Java-Programmierer so austauschbar wie Putzfrauen? Entwickeln die überhaupt was oder machen nur Scriptanpassungen?

    Also bei uns in der Tageszeitung liest man viel mehr C++ als Java.



  • ich denke, C++ hat seine beste Zeit erst noch vor sich.

    C++11 ist ein ganz großer Wurf. Für mich der größte Fortschritt seit Einführung der STL.

    Mir fällt im Moment kein Grund ein, warum ich D oder java benutzen sollte.

    on topic: Ganz allgemein ist man aber wahrscheinlich in derjenigen Sprache mit am schnellsten am Ziel, die man am besten beherrscht, und für die es die für das jeweilige Problem hilfreichsten Bibliotheken(-bindings) gibt.



  • Ethon schrieb:

    Wir haben hier an der Uni ein gewaltiges schwarzes Brett mit Ausschreibungen. C++ liest man alle Jubeljahre mal und dann ist es embedded.

    Okay, komische Uni, ist bei uns eher ausgeglichen.



  • großbuchstaben schrieb:

    ich denke, C++ hat seine beste Zeit erst noch vor sich.

    C++11 ist ein ganz großer Wurf. Für mich der größte Fortschritt seit Einführung der STL.

    Mir fällt im Moment kein Grund ein, warum ich D oder java benutzen sollte.

    on topic: Ganz allgemein ist man aber wahrscheinlich in derjenigen Sprache mit am schnellsten am Ziel, die man am besten beherrscht, und für die es die für das jeweilige Problem hilfreichsten Bibliotheken(-bindings) gibt.

    Soso, und in welchem Bereich der Zukunft glänzt C++ denn? Im Web? Bei Apps? Bei Desktop-Programmen?
    Sogar im Spielesektor verliert C++ nach und nach an Bedeutung.

    D ist definitiv ein verbessertes C++ aber da auch C++ am absteigenden Ast ist und D nicht viel mehr Berechtigung hat benutzt zu werden + den Malus mitschleppt dass es keine guten IDEs + es viel weniger Libs gibt sieht die Zukunft halt düster aus.



  • volkard schrieb:

    Ethon schrieb:

    Ist auch kein Zufall dass Java 100x relevanter ist als C++, egal ob man Java mag oder nicht.

    So wichtig, daß ich kein Java auf dem PC habe. Naja, ich bin aber auch kein Zocker, sonst müßte ich ja wegen der vielen modernen 3d-Spiele Java drauf haben. Mit Minecraft ist Java auf einmal vorn in die Spielewelt eingebrochen, nun gibt es nur noch Browser, Server, Compiler, Office-Suiten, Datenbankmaschinen, Numbercrunching und wissenschaftliche Simulationen, die klar von Java frei oder unbrauchbar sind.

    Ähm eigentlich ist Java in der Geschäftswelt heimisch und nicht in der Spielewelt.

    Dutzende Auftragsentwicklungen werden in Java realisiert, Spiele werden kaum welche geschrieben und Minecraft ist übrigens ein guter Punkt für die Frage.
    Als Indie Entwickler der das am Anfang alles alleine stemmen musste, kam er mit Java sicherlich wesentlich schneller ans Ziel.
    Dafür ist Minecraft nun langsamer, aber Kohle hat es ihm trotzdem ohne Ende eingebracht und falls es mal ein Minecraft 2 geben sollte, dann bin ich zuversichtlich, dass er es mit einem > 50 Mann Team dann in C++ oder ähnliches realisieren wird.



  • Okay, vergleichen wir mal:

    /* fussschuss.cpp */
    
    #include <iostream>
    
    using namespace std;
    
    int main(){
      bool kaputt = false;
    
      if (!kaputt){
        cout << "okay\n";
      }
    
      // aber C++ erlaubt es auch, mit schlechtem Stil sich in den Fuss zu schiesen:
      if (kaputt == false){
            cout << "okay\n";
      }
      // soweit noch okay, aber:
      if (kaputt = false){
            cout << "okay\n";
      } else {
        cout << "BUMMM!!!\n";
      }
    
      return 0;
    }
    

    Dazu zum Vergleich:

    /* Ich benutze mal das C Tag, weil es im Forum noch kein Tag für D gibt. */

    /* nix_fussschuss.d */
    
    import std.stdio;
    
    void main()
    {
      bool kaputt = false;
    
      if (!kaputt){
         writeln("okay\n");
      }
    
      // so weit okay, aber 
      if (kaputt == false){  // BUMM, Compilererror + Warnung, da nicht erlaubt
             writeln("okay\n");
      }
    
      // Wegen BUMM von oben kann das erst gar nicht passieren:
      if (kaputt = false){ // gibt alleine ebenfalls nen Compilererror
             writeln("okay\n");
      } else {
         writeln("BUMM!!!\n");
      }
    
      return 0;
    }
    

    Fazit:

    D vermeidet schlechten Stil, man läuft dadurch weniger Gefahr sich in den Fuss zu schiessen und ist somit schneller mit der Arbeit fertig.



  • Mal ein Beispiel schrieb:

    Okay, vergleichen wir mal:

    /* fussschuss.cpp */
    
    #include <iostream>
    
    using namespace std;
    
    int main(){
      bool kaputt = false;
    
      if (!kaputt){
        cout << "okay\n";
      }
      
      // aber C++ erlaubt es auch, mit schlechtem Stil sich in den Fuss zu schiesen:
      if (kaputt == false){
            cout << "okay\n";
      }
      // soweit noch okay, aber:
      if (kaputt = false){
            cout << "okay\n";
      } else {
        cout << "BUMMM!!!\n";
      }
      
      return 0;
    }
    

    Dazu zum Vergleich:

    /* Ich benutze mal das C Tag, weil es im Forum noch kein Tag für D gibt. */

    /* nix_fussschuss.d */
     
    import std.stdio;
     
    void main()
    {
      bool kaputt = false;
      
      if (!kaputt){
         writeln("okay\n");
      }
      
      // so weit okay, aber 
      if (kaputt == false){  // BUMM, Compilererror + Warnung, da nicht erlaubt
             writeln("okay\n");
      }
    
      // Wegen BUMM von oben kann das erst gar nicht passieren:
      if (kaputt = false){ // gibt alleine ebenfalls nen Compilererror
             writeln("okay\n");
      } else {
         writeln("BUMM!!!\n");
      }
      
      return 0;
    }
    

    Fazit:

    D vermeidet schlechten Stil, man läuft dadurch weniger Gefahr sich in den Fuss zu schiessen und ist somit schneller mit der Arbeit fertig.

    Compiler-Warnungen einschalten.



  • Meine Meinung schrieb:

    volkard schrieb:

    Ethon schrieb:

    Ist auch kein Zufall dass Java 100x relevanter ist als C++, egal ob man Java mag oder nicht.

    So wichtig, daß ich kein Java auf dem PC habe. Naja, ich bin aber auch kein Zocker, sonst müßte ich ja wegen der vielen modernen 3d-Spiele Java drauf haben. Mit Minecraft ist Java auf einmal vorn in die Spielewelt eingebrochen, nun gibt es nur noch Browser, Server, Compiler, Office-Suiten, Datenbankmaschinen, Numbercrunching und wissenschaftliche Simulationen, die klar von Java frei oder unbrauchbar sind.

    Ähm eigentlich ist Java in der Geschäftswelt heimisch und nicht in der Spielewelt.

    Dutzende Auftragsentwicklungen werden in Java realisiert, Spiele werden kaum welche geschrieben und Minecraft ist übrigens ein guter Punkt für die Frage.
    Als Indie Entwickler der das am Anfang alles alleine stemmen musste, kam er mit Java sicherlich wesentlich schneller ans Ziel.
    Dafür ist Minecraft nun langsamer, aber Kohle hat es ihm trotzdem ohne Ende eingebracht und falls es mal ein Minecraft 2 geben sollte, dann bin ich zuversichtlich, dass er es mit einem > 50 Mann Team dann in C++ oder ähnliches realisieren wird.

    Hirn einschalten!



  • Ethon schrieb:

    Sogar im Spielesektor verliert C++ nach und nach an Bedeutung.

    *lach*
    Hab Dich mit Minecraft in eine Falle gelockt. Du argumentierst wie deine Mutter. Mit erfunden "Fakten" oder gar nicht und die wenigen beobachtbaren Tatsachen ordnet sie merkbefreit ein.


Anmelden zum Antworten