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



  • D sucks - sorry but it does 🕶



  • hreadv schrieb:

    Wie kann Compilezeit-Regex missverständlich sein?

    Ich war mir nicht sicher, ob ich dich richtig verstanden hatte.
    Nun, Compiletimecodegenerierung gibts in C++ via Templates.
    Der einzige Nachteil ist, dass der Compiler da scheinbar schnell an seine Grenzen kommt (oder mein Versuch ist zu schlecht :D).
    Sternchen, oder wie auch immer du nun heißt, wär das nicht was für dich?
    Konstanten String durchlaufen, nach Steuerzeichen Ausschau halten und rekursiv verknüpfen?



  • Sternchen, oder wie auch immer du nun heißt, wär das nicht was für dich?
    Konstanten String durchlaufen, nach Steuerzeichen Ausschau halten und rekursiv verknüpfen?

    Den Namen lasse ich nun zu Arcoth ändern, da das Sternchen allgemeines Unbehagen heraufbeschworen hat. 🙂

    Der Vorschlag ist nicht schlecht! Ja, ich bin ein TMP-Fan und die Aufgabe wäre nett.
    Also, worum genau geht es? Zeig mal ein Beispiel, wie es im Endeffekt aussehen sollte.



  • Fang doch mal mit einem

    constexpr char const expr[] = "a|b";
    assert(re<expr>.match("a"));
    assert(!re<expr>.match("c"));
    

    an und schau wieviel du umgesetzt bekommst.

    (kA ob das mit den Stringliteralen so per TMP funktioniert, kann ja auch ein



    • schrieb:

    Sternchen, oder wie auch immer du nun heißt, wär das nicht was für dich?
    Konstanten String durchlaufen, nach Steuerzeichen Ausschau halten und rekursiv verknüpfen?

    Den Namen lasse ich nun zu Arcoth ändern, da das Sternchen allgemeines Unbehagen heraufbeschworen hat. 🙂

    Der Vorschlag ist nicht schlecht! Ja, ich bin ein TMP-Fan und die Aufgabe wäre nett.
    Also, worum genau geht es? Zeig mal ein Beispiel, wie es im Endeffekt aussehen sollte.

    Hab mal schnell meinen Code umgeschrieben, dass man nicht meine Bibliothek verwenden muss:
    https://ideone.com/qXmBYB
    War grad dabei | zu implementieren, Compiler bricht aber immer bei der Kompilierung ab.



  • Bitte für den TMP-Spass einem neuen Thread aufmachen. Das hat mit D nur insofern etwas zu tun, als es beweist, dass C++ dafür nicht geeignet ist.

    Für String-Matching bitte KMP oder Boyer-More verwenden und das Lookup-Table zur Compilezeit generieren.



  • Hab mal schnell meinen Code umgeschrieben, dass man nicht meine Bibliothek verwenden muss:

    Der Code ist veraltet. Ich habe auch gerade das Repo aktualisiert. Keine Bugs! Nur einige Sachen ergänzt. Mache ich heute auch noch mehrere male. 🙂

    Compiler bricht aber immer bei der Kompilierung ab.

    Welcher Compiler? GCC 4.7.2? :p

    Ich sitze schon dran. Leider kenne ich Regex nicht... 🤡



    • schrieb:

    Compiler bricht aber immer bei der Kompilierung ab.

    Welcher Compiler? GCC 4.7.2? :p

    GCC 4.8.1 :p



  • Bist auf Windows?



  • Jup.



  • Linus Dorfwalds schrieb:

    D sucks - sorry but it does 🕶

    Quelle?



  • Nathan schrieb:

    Jup.

    Ouch.

    Bei mir klappt schon folgendes.

    template< typename Str >
    struct or_matcher
    {
    	using splitted = split_at<Str, Str::find('|'), false>;
    
    	template< typename Str2 >
    	struct matches :
    		std::integral_constant<bool,
    		                       find<type_list<get<splitted, 0>, get<splitted, 1>>, Str2 >::value != npos> {};
    };
    
    int main()
    {
    	using expr = STRING("a|b");
    
    	static_assert( or_matcher<expr>::matches<STRING("a")>::value , "" );
    	static_assert( !or_matcher<expr>::matches<STRING("foo")>::value , "" );
    }
    


  • Andrew Ahnensaum schrieb:

    Linus Dorfwalds schrieb:

    D sucks - sorry but it does 🕶

    Quelle?

    http://www.youtube.com/watch?v=Aa55RKWZxxI



  • Mein Grund gegen 😨

    Ich bin mit C und C++ voll und ganz zufrieden. Warum sollte ich also D verwenden?



  • Genau. C++ rockt!! Sorry but it does do!



  • Wer mit C und C++ zufrieden ist, ist sehr leicht zufriedenzustellen und damit auch mit D zufrieden.

    Bleibt ein letztes Argument: D kompiliert in einem Bruchteil der Zeit von C++.



  • yetanothertroll schrieb:

    Wer mit C und C++ zufrieden ist, ist sehr leicht zufriedenzustellen und damit auch mit D zufrieden.

    Bleibt ein letztes Argument: D kompiliert in einem Bruchteil der Zeit von C++.

    Troll!! 😡



  • @Sonnenhacker: Der zu matchende String sollte kein Compiletime-String sein müssen. Dafür gibt es kein Einsatzgebiet.
    Nur der RE-String selbst. Damit könnte man sich eben per TMP das Kompilieren des RE-Strings sparen können - super.



  • yetanothertroll schrieb:

    Bleibt ein letztes Argument: D kompiliert in einem Bruchteil der Zeit von C++.

    Mag sein, die Compilierzeit interessiert den Anwender aber nicht. Aber mich als Entwickler interessiert die Syntax und somit auch die Wartbarkeit von Software. D kann kein Mensch, d.h. man braucht spezielle Leute für das.

    Bei aller Nettigkeit, aber ich glaube nicht, dass sich D in nächster Zeit etablieren wird. Die meisten anderen Programmiersprachen seit Jahrzehnte alt und werden schon seit Jahrzehnten benutzt, sind somit also "Quasi-Standard".

    Es gibt sehr viele Bibliotheken für C und C++, wenn man D verwenden will, müsste man diese Bibiotheken umschreiben. Das ist ein zeit- und geldaufwändiger Prozess, den keiner machen will, denk ich mal.



  • D ist ein Forschungsprojekt und war nie für den Produktiveinsatz vorgesehen.


Anmelden zum Antworten