Syntax im C-Stil == Schlecht?



  • Ich meinte wie man einen lokalen Scope macht. Weiß aber nicht, ob man das in Python überhaupt gebrauchten kann. Gibt es da eigentlich vernünftige Destruktoren? ^^



  • Naja, würde das nicht die Funktion "schließen"?



  • C Syntax läßt sich leider schlecht parsen - Preprozessor, Konfigurationsabhängig (z.B. welche Standard-Include-Verzeichnisse), Ausnahmen. Das ist zwar für den Compiler nicht weiterschlimm, aber z.B. für IDE - Tools.



  • Hallo,

    also ich mag die C-Syntax sehr gerne (in der Kürze liegt die Würze 😉 ) zum Schreiben, das Lesen von anderer Leute Code kann aber schon etwas kniffliger werden, als, sagen wir mal mit VB oder Python. Trotzdem ist sie meine bevorzugte Syntax, nicht nur aus Gewohnheit. Ist aber wohl Geschmackssache.

    Python ist auch sehr schön zum coden, v.a. übersichtlich. Was mir aber an Python fehlt, ist der Inkrement und Dekrementoperator und die do - while Schleife. Das wäre mal gar nicht übel.

    MfG

    GPC



  • Ich finde die C Stil Syntax in Ordnung und besser als viele andere Stile. Beispielweise ist mir der Stil der BASIC Dialekte oder Delphi etwas zu "geschwätzig". Ich finde einfach ein {} wesentlich übersichtlicher als begin end.
    Allerdings gibt es auch einige Sprache, deren Syntax mit besser als die von C gefällt. Die Python Syntax find ich beispielweise noch angenehmer zu lesen.



  • Die Syntax ist zu umfangreich und komplex. Schlüsselwörter an sich finde ich schon sehr problematisch, daher kommen auch ständig die foreach-Diskussionen (uä).

    C++ fügt der Syntax noch mal enorm viel hinzu. Das ist alles sehr komplex und umfangreich.

    Am coolsten sind eh Programmiersprachen, bei denen der Quelltext gleich einem Datenform entspricht (zB Lisp)



  • kingruedi schrieb:

    Die Syntax ist zu umfangreich und komplex. Schlüsselwörter an sich finde ich schon sehr problematisch, daher kommen auch ständig die foreach-Diskussionen (uä).

    C++ fügt der Syntax noch mal enorm viel hinzu. Das ist alles sehr komplex und umfangreich.

    Am coolsten sind eh Programmiersprachen, bei denen der Quelltext gleich einer Datenform entspricht (zB Lisp)

    Einer Datenform? Was genau meinst du damit? In Lisp ist ja alles eine Liste... oder so. Habe da nie einen Vorteil sehen können, war nur saumäßig unübersichtlich. Was bringt einem das? 😕

    Und warum sind Keywords so schlecht? Wenn eine Sprache komplex und umfangreich ist, dann hilft einem die Syntax da doch auch nicht gegen, oder? (Über Lisp weiß ich fast nichts.)



  • Der Vorteil ist ganz einfach, dass du den Quellcode wie normale Daten bearbeiten kannst. Wenn du dadrin keinen Vorteil sehen kannst, dann kann ich dir auch nicht helfen 🙂



  • Jo, das schon, nur ist das imho eher ein technischer Aspekt. Mir geht es ausschließlich um die Syntax. Sowas wäre in C++ o.ä. wohl nicht möglich.



  • gogno schrieb:

    Jo, das schon, nur ist das imho eher ein technischer Aspekt. Mir geht es ausschließlich um die Syntax. Sowas wäre in C++ o.ä. wohl nicht möglich.

    genau deshalb geht es um die syntax: die syntax von lisp erlaubt dir sachen, die in c++ ziemlich ausarten würden. (zum schreiben eines lisp-interpreters, zum beispiel.)



  • Wieso fühl ich mich jetzt nur unangenehm an XSLT erinnert? 😉



  • sarfuan schrieb:

    Wieso fühl ich mich jetzt nur unangenehm an XSLT erinnert? 😉

    Das unangenehme an XSLT ist doch nur XML.

    @gogno
    aber das ist ja eine fundamentale Sache für die Syntax.



  • Was ich damit sagen wollte ist, dass solche Features nicht in solche Sprachen wie C++ passen. Da fehlen dann übersichtliche Syntax und Performance. 😃 Kann aber auch Quatsch sein.



  • JBeni schrieb:

    Einer der Vergleiche die immer wieder gerne gezeigt werden.
    Pascal (übersichtlich):

    Function StringToUppercase(Zeile: String): String;
    
    type Kleinbuchstaben = ['a'..'z'];
    
    var temp: String;
        i    : Byte;
    
    begin
      temp:=zeile;
      for i:=1 to Length(zeile) do
        if zeile[i] in Kleinbuchstaben then 
          temp[i]:=chr(ord(temp[i])-32);
    
      StringToUppercase:=temp;
    end;
    

    und C (weniger übersichtlich, aber immernoch verständlich):

    char * StringToUpper(char * zeile)
    {
      static char temp [256];
      int i;
      for (i=0; zeile[i]!=0 && i<256; i++)
        if (zeile[i]>='a' && zeile[i]<='z')
          temp[i]=(char) zeile[i]-32; 
        else  
          temp[i]=zeile[i];
      temp[i]=0;
      return temp;
    }
    

    Und noch die C++-Version:

    std::transform(str.begin(), str.end(), str.begin(), std::tolower);
    

    irgendwie wirkt die auch mich am kompaktesten. 😉



  • Jester: Ist nicht standardkonform. 😃



  • Du hast einfach nur nochmal einen Funktionsaufruf drum herum gebastelt und diesen als schönere Syntax dargestellt. Ich nehme an, das war nicht deine Absicht. Du wolltest dich sicherlich mit uns darüber unterhalten, wie std::transform und std::tolower intern syntaktisch gut aussehen. 😉



  • Wie kommt die achso so tolle Pascalversion mit z.B. ä, ö und ü klar? 😕



  • kingruedi schrieb:

    sarfuan schrieb:

    Wieso fühl ich mich jetzt nur unangenehm an XSLT erinnert? 😉

    Das unangenehme an XSLT ist doch nur XML.

    Ich denke du stehst auf Sprachen, deren Quellcode einer Datenform entsprechen? 😉



  • nman schrieb:

    Schon alleine deswegen, weil sie viel Ballast und syntaktischen Müll mit sich bringt.

    eher das gegenteil davon stimmt.

    nman schrieb:

    Und dann natürlich noch deswegen. 😉

    die finden es bestimmt witzig, sowas im nachhinein zu behaupten....oder vielleicht ist es denen auch peinlich, aber bestimmt waren sie damals ziemlich überzeugt davon und stolz auf das, was sie gebastelt haben.

    nman schrieb:

    for(;P("\n"),R--;P("|"))for(e=C;e--;P("_"+(*u++/8)%2))P("| "+(*u/4)%2);
    

    probier's mal mit aussagekräftigen variablennamen und mach nicht alles in eine zeile. wenn du das nicht hinbekommst, dan frag mal im ansi-c forum ob dir das einer umschreibt.

    btw: c ist eine art portable assemblersprache. asm-sprachen sind eh' etwas kryptisch. c-compiler lassen sich leicht auf/für die verschiedensten prozessoren portieren. klar ist aus user-sicht die syntax vieler anderer sprachen angenehmer, aber viele low-level sachen gehen halt nicht damit. ...und wer für z.b. .NET entwickelt und c-syntax nicht leiden kann, der kann dafür ja auch visual bräsig nehmen.



  • net: *plonk* Ich habe ja schon viele dämliche Posts von Dir gelesen, aber dass Du offenbar nichtmal bemerkt hast, dass das aus der "C&Humor?"-Sektion stammt überrascht sogar mich. (Entweder das, oder Du trollst einfach auf Teufel komm raus, beides spricht nicht für Dich.)


Anmelden zum Antworten