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



  • Nein die Syntax ist fehlerfrei.

    Implizierte Propterty Syntax, getter und setter mit ein Parameter können so geschrieben werden.

    Die Ausgabe ist 4 (Byte).

    Die Frage ist, was hab ich Abgefragt. b ist eigentlich ein Pointer auf eine Objekt der Klasse Box. Da D mir die Pointersemantik versteckt, sollte D auch die Frage an die Klasse delegieren, wird wohl aber nicht gemacht.

    Ok Ändern wie b.sizeof in Box.sizeof. Immernoch Ausgabe 4. Eh?



  • Ja wegen den 4 ints 🤡



  • Sollte das wirklich wegen 4 ints das Resultat sein,
    schleiche ich gleich wieder hier raus und hinterlasse
    ein leises "wtf".



  • chrische5 schrieb:

    Hallo

    muemmel schrieb:

    Hi Erhard,

    wenn wir ehrlich sind ist es mit C# genau so. Das wurde doch auch nur erfunden, weil Sun Java nicht zum verfrickeln freigegeben hat.

    Gruß Mümmel

    C#in Zusammenspiel mit .net ist wirklich nett. Gerade was das Zusammenklicken von GUI's angeht.

    chrische

    ZUm Zusammenklicken von GUIs gibt es aber schon Python mit entsprechenden GUI Bindings.

    C# ist da also überflüssig wir ein Kropf.



  • Zeus schrieb:

    Weil der D Compiler nicht mal gebacken bekommt diesen Code richtig zu übersetzen?

    class Box
    {
        int i;
        int j;
        int k;
        int l;
    }
    
    void main()
    {
        auto b = new Box();
        writefln(b.sizeof);
    }
    

    Das Problem sitzt wie immer vor dem Bildschirm.



  • Erkenner des Problems schrieb:

    Zeus schrieb:

    Weil der D Compiler nicht mal gebacken bekommt diesen Code richtig zu übersetzen?

    class Box
    {
        int i;
        int j;
        int k;
        int l;
    }
    
    void main()
    {
        auto b = new Box();
        writefln(b.sizeof);
    }
    

    Das Problem sitzt wie immer vor dem Bildschirm.

    Was ist daran falsch?



  • Zeus schrieb:

    Was ist daran falsch?

    Du hast die include Anweisung vergessen, ohne die kannst du den Code natürlich nicht compilieren. 🤡



  • Wie ist nach 5 Jahren der aktuelle Stand bezüglich Eindsatz der Sprache D?



  • Sieht durchaus besser mit IDE-Unterstützung aus, aber ich kann mir trotzdem nicht wirklich vorstellen damit programmieren zu wollen. Wenn ich mir die Code-Samples auf Wikipedia ansehe dann fühlt sich D wie eine vor 20 Jahren entwickelte Sprache an.

    MfG SideWinder



  • Ich finde D sehr schön.



  • Weil?



  • D ist ein besseres C++, insbesondere mit viel besseren Compile-Time-Möglichkeiten.

    Nur verwendet keiner C++ wegen den vielen Möglichkeiten der Templates sondern aus Legacy-Gründen, denn wer das tut ist mit D besser beraten.

    Ich kenne Leute, die verwenden D, aber das sind dann Ein-Mann-Projekte.



  • mit viel besseren Compile-Time-Möglichkeiten.

    Was heißt das? Statische Polymorphie, TMP, usw.? :hechel:



  • Ich finde die Konstruktor-Syntax sehr nett:

    this() {
                    fiber = new Fiber(&run);
            }
    

    Kommt denn bei D der ganze "low-level"-Kram nicht zu kurz? Sieht mir sehr Java-orientiert aus.



    • schrieb:

    TMP

    Braucht es nicht, jede beliebige* Funktion kann zur Compile-Zeit aufgerufen werden. Die Funktion kann D-Code als string generieren, der dann in den Quellcode "eingemixt" werden kann.

    *Gibt ein paar Einschränkungen, es dürfen keine Dateien gelesen werden und so



    • schrieb:

    Weil?

    Ich mag C++ und finde das Design von C# schön.
    D ist irgendwo in der Mitte. Gefällt mir.
    Nativer Code, schöne generische Programmierung, man hat sich bemüht viele Dinge elegant zu lösen die bei C++ eher Hacks sind. Die Möglichkeit des GCs finde ich auch nett. Muss man nicht nutzen aber man kann.
    Hat nicht einer der C++-Gurus (denke es war Alexandrescu) maßgeblich an der Weiterentwicklung von D mitgearbeitet?



  • Jup, der liebe Alexandrescu wars.
    Ich blicke auch manchmal ein wenig neidisch auf die Compiletimesachen von D.
    Aber für mich gab es noch keinen wirklichen Grund mich mit D intensiv zu beschäftigen.
    Gut, TMP ist einfacher, es gibt schon Modules, builtin Invariants,... aber mit C++ kann man das (bald) auch.



  • aber mit C++ kann man das (bald) auch.

    Worauf spielst du an? Was genau ist denn an C++1y soviel besser?
    (Mir sind alle neuen Features bekannt, dennoch sehe ich da keinen evolutionären Schritt)



    • schrieb:

    aber mit C++ kann man das (bald) auch.

    Worauf spielst du an? Was genau ist denn an C++1y soviel besser?

    Das bald bezog sich nur auf die Module, alles andere kann man jetzt auch schon (zwar nicht so elegant wie in D, aber möglich).



  • Nathan schrieb:

    Das bald bezog sich nur auf die Module, alles andere kann man jetzt auch schon (zwar nicht so elegant wie in D, aber möglich).

    D hat Compile-Time-Regex. Da wird ein regulärer Ausdruck genommen und in bestmöglichen D-Code verwandelt und dann mitkompiliert.

    Mir wäre nicht bekannt, dass das in C++ praktisch umsetzbar wäre.


Anmelden zum Antworten