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



  • Es gibt überhaupt keine brauchbaren Programmiersprachen. Es gibt nämlich keine brauchbaren Computer. Denn wenn ich jemanden erst noch sagen muss wie er etwas tun soll, dann ist er unbrauchbar 🙂



  • Ich glaube du verstehst nicht ganz, das ist schon ziemlich ernst gemeint.



  • Ich glaube du verstehst nicht ganz, das war überhaupt nicht ernst gemeint. (Darum der Smiley)



  • Kellerautomat schrieb:

    Es gibt keine brauchbaren nativen Sprachen. D hat nen GC, C ist aus der Steinzeit und C++ ist nur das geringste Uebel. Rust sieht interessant aus, steht auf meiner TODO-Liste.
    Und wenn unfaehige Leute eine Sprache designen, dann kommt sowas wie Java/C#/JS/PHP/... raus.

    just my €0.02

    Sarkasmus?



  • Ethon schrieb:

    Kellerautomat schrieb:

    Es gibt keine brauchbaren nativen Sprachen. D hat nen GC, C ist aus der Steinzeit und C++ ist nur das geringste Uebel. Rust sieht interessant aus, steht auf meiner TODO-Liste.
    Und wenn unfaehige Leute eine Sprache designen, dann kommt sowas wie Java/C#/JS/PHP/... raus.

    just my €0.02

    Sarkasmus?

    Noe.



  • 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?



  • 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!



  • Kellerautomat schrieb:

    zweites habe ich noch nie das Verlangen nach einem GC gespuert.

    Ich habe auch noch nie das Verlangen nach Templates gespürt, bis ich C++ kennen gelernt habe.



  • Ethon schrieb:

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

    Wenn sie mir beim Abschalten des Navis auch die Gangschaltung deaktivieren, ja.



  • analogargument schrieb:

    Kellerautomat schrieb:

    zweites habe ich noch nie das Verlangen nach einem GC gespuert.

    Ich habe auch noch nie das Verlangen nach Templates gespürt, bis ich C++ kennen gelernt habe.

    Du nimmst an, dass ich noch nicht in GC-Sprachen programmiert habe und damit liegst du falsch. Ich habe beruflich in C# programmiert, sowie 5 Jahre lang Java an meiner Schule gelernt. Die ganzen Kruecken ala using/try-with-resources sind einfach nur ein Hack und gehen mir auf den Senkel.

    Ach, warum mach ich mir ueberhaupt die Muehe. Macht doch was ihr wollt, ich werde weiterhin privat keine GC-Sprachen anfassen. 🙄



  • Kellerautomat schrieb:

    analogargument schrieb:

    Kellerautomat schrieb:

    zweites habe ich noch nie das Verlangen nach einem GC gespuert.

    Ich habe auch noch nie das Verlangen nach Templates gespürt, bis ich C++ kennen gelernt habe.

    Du nimmst an, dass ich noch nicht in GC-Sprachen programmiert habe und damit liegst du falsch. Ich habe beruflich in C# programmiert, sowie 5 Jahre lang Java an meiner Schule gelernt. Die ganzen Kruecken ala using/try-with-resources sind einfach nur ein Hack und gehen mir auf den Senkel.

    Nur weil Java OOP das ins Absurde treibt ist OOP nicht schlecht. Trotzdem geht es mir in Java auf den Senkel.
    Es ist ja nicht so, dass es in D keine deterministischen Konstruktoren gibt, im Gegenteil. Und bevor du jetzt sagst, dass man die für Klassen nicht verwenden kann, in C++ gibt es auch RAII-Wrapper-Klassen (z.B. std::lock_guard).

    Kellerautomat schrieb:

    Ach, warum mach ich mir ueberhaupt die Muehe. Macht doch was ihr wollt, ich werde weiterhin privat keine GC-Sprachen anfassen. 🙄

    GC<Java>,GC<C#> != GC<D>



  • 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!

    Ja und? Wo man keinen GC will da will man auch keine Standardbibliothek.
    Wirst im Kernel zb. auch keinen std::string verwenden.

    Der GC zwingt dich dir nicht auf, einfach Operationen vermeiden die logischerweise Support benötigen wie new und fertig.
    Wenn malloc & free dich glücklich machen, okay.



  • 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.


Anmelden zum Antworten