Warum hat sich der C Stil durchgesetzt?



  • Warum Klammern wie {}, anstatt Begin und End?

    C, C++, D, Java, C# usw. alle nutzen den C Stil, also Klammern {}.
    Und Beginn und End nutzen nur Pascal, Delphi und Ada.



  • Weils übersichtlicher ist und sinnlose Tipparbeit spart?



  • Weil {} schneller zu schreiben und weil begin und end nicht unbedingt Schlüsselworte sein müssen! 🙂



  • Kürzer, übersichtlicher.
    Eine Programmiersprache muss nicht möglichs genau einer richtigen Sprache ähneln.

    const pointer to const character p equals "f.u.c.k yeah" expression end
    while dereference p not equal to zero
        print dereference p expression end
    

    f.u.c.k yeah.



  • 314159265358979 schrieb:

    const pointer to const character p equals "f.u.c.k yeah" expression end
    while dereference p not equal to zero
        print dereference p expression end
    

    f.u.c.k yeah.

    Das ursprüngliche love wäre vielleicht ok gewesen. Die letzte Fassung ist mumpitz! 😞



  • Weil man von einem Programmierer durchaus erwarten kann, ein paar Symbole zu interpretieren. Sicherlich wäre es auch wiederum nicht gut, wenn alles symbolisch wäre, dann wäre Assembler wieder einfacher.

    Die C-Syntax ist ein guter Kompromiss, um Code gut lesen zu können, ohne viel lesen/schreiben zu müssen.

    Sprachen, die viel Schlüsselwörter nutzen, sind eher für Gelegenheitsprogrammierer geeignet. Es ist z.B. gut das auch mal ein Büroangestellter, der nichts mit Programmierung zu tun hat, auch mal in VisualBASIC ein Makro in ein Excel-Dokument hauen kann, ohne gleich einen teuren Informatiker zu beauftragen. Hier sind Sachen wie BEGIN, END, THEN schon sehr gut.

    Aber ich, als jemand der Programmieren als Hauptgeschäft hat, möchte diese Schlüsselwörter nicht haben.



  • weil manche Tastaturen zu Zeiten der PDP 11 so hart waren, daß es als eine gute Idee erschien, Tastenanschläge zu sparen? Außerdem konnte man mit { ... } im Vergleich zu BEGIN...END mehr Quelltext im kostbaren RAM halten, den man damals ja noch in KByte maß.



  • Klammeraffe schrieb:

    Warum Klammern wie {}, anstatt Begin und End

    Damit DU was zum trollen hast...



  • Klammeraffe schrieb:

    Warum Klammern wie {}, anstatt Begin und End?

    Ungeachtet was sich durchgesetzt hat: Was wäre den der Vorteil von dem Begin/End gegenüber den geschweiften Klammern? Wenn ich Delphicode sehe muss ich erst einmal den Code lesen um festzustellen ob dieser für die Logik relevant ist ({} kann ich schneller beim Lesen "ausfiltern").

    Das erinnert mich an den Entwickler der etliche Makros für solche Konstrukte geschrieben hatte, und sich gewundert hat das nicht alle Begeistert davon waren.



  • Weil begin/end auf heutiger Hardware ineffizient ist. Siehe glBegin/glEnd in OpenGL.

    Trollface.jpg



  • Artchi@work schrieb:

    Weil man von einem Programmierer durchaus erwarten kann, ein paar Symbole zu interpretieren. Sicherlich wäre es auch wiederum nicht gut, wenn alles symbolisch wäre, dann wäre Assembler wieder einfacher.

    Ich kann mir das jetzt nicht verkneifen ... 😉
    Hier ein Hallo World in Brainfuck geschrieben:

    ++++++++++
    [
    >+++++++>++++++++++>+++>+<<<<-
    ]                       Schleife zur Vorbereitung der Textausgabe
    >++.                    Ausgabe von 'H'
    >+.                     Ausgabe von 'e'
    +++++++.                'l'
    .                       'l'
    +++.                    'o'
    >++.                    Leerzeichen
    <<+++++++++++++++.      'W'
    >.                      'o'
    +++.                    'r'
    ------.                 'l'
    --------.               'd'
    >+.                     '!'
    >.                      Zeilenvorschub
    +++.                    Wagenrücklauf
    

    Das gibts tatsächlich:
    http://de.wikipedia.org/wiki/Brainfuck
    Noch Fragen, warum man das mit C anders macht?? 🤡



  • Nicht ernst gemeint schrieb:

    Das gibts tatsächlich:
    http://de.wikipedia.org/wiki/Brainfuck

    Bekannt 🙂 => http://www.c-plusplus.net/forum/292057



  • @Brain****: Eine Sprache mit (nur) 8 Anweisungen wird durch keywords statt durchgängiger Interpunktion auch nicht übersichtlicher...



  • Bashar schrieb:

    Bekannt 🙂

    Ganz krank ist campers Code für einen Brainfuck-Compiler zur Kompilierzeit 😮

    Swordfish schrieb:

    Klammeraffe schrieb:

    Warum Klammern wie {}, anstatt Begin und End

    Damit DU was zum trollen hast...

    Auch wenn es im NadrW-Forum gerade Mode ist, sich gegenseitig als Troll zu bezeichnen, halte ich den Kommentar hier für unangebracht.



  • Nexus schrieb:

    Swordfish schrieb:

    Klammeraffe schrieb:

    Warum Klammern wie {}, anstatt Begin und End

    Damit DU was zum trollen hast...

    Auch wenn es im NadrW-Forum gerade Mode ist, sich gegenseitig als Troll zu bezeichnen, halte ich den Kommentar hier für unangebracht.

    Weil ... ?

    Zweifelst Du an meiner Annahme, das sich "Klammeraffe" der rein subjektiv möglichen Qualifizierbarkeit beider Konventionen völlig bewusst ist?



  • Nexus schrieb:

    Swordfish schrieb:

    Klammeraffe schrieb:

    Warum Klammern wie {}, anstatt Begin und End

    Damit DU was zum trollen hast...

    Auch wenn es im NadrW-Forum gerade Mode ist, sich gegenseitig als Troll zu bezeichnen, halte ich den Kommentar hier für unangebracht.

    Ich stimme dir zu, daher empfehle ich Swordfish aus diesem Forum zu bannen, wegen Beleidigung.

    Denn so kann das nicht weiter gehen, wenn das Niveau immer weiter den Bach runtergeht.



  • lol, fang: ><((((º>



  • Klammeraffe schrieb:

    Warum Klammern wie {}, anstatt Begin und End?

    C, C++, D, Java, C# usw. alle nutzen den C Stil, also Klammern {}.
    Und Beginn und End nutzen nur Pascal, Delphi und Ada.

    Ich dachte immer, das wäre offensichtlich, aber ich glaube du hast einfach zu wenig mit den gennanten Programmiersprachen gearbeitet, wenn du dir die Frage stellst.



  • Swordfish schrieb:

    lol, fang: ><((((º>

    Der Code ist zu abstrakt! Anders ausgedrückt in Pseudocode im C-Stil wird es vielleicht verständlicher:

    if(unreg mit mehr niveau bitte) leseprozess beenden;
      else anderen beitrag lesen;
    if(persönlich angegriffen) ignore;
    


  • berniebutt schrieb:

    Swordfish schrieb:

    lol, fang: ><((((º>

    Der Code ist zu abstrakt! Anders ausgedrückt in Pseudocode im C-Stil wird es vielleicht verständlicher:

    if(unreg mit mehr niveau bitte) leseprozess beenden;
      else anderen beitrag lesen;
    if(persönlich angegriffen) ignore;
    

    Dein code ist aber falsch: 😉

    [code]
    if (unreg.niveau < 0) leseprozess.beenden();
      else anderen_Beitrag.lesen();
    
    if (persoenlich.angegriffen == true) beitrag.ignore();
    [/code]
    

    😃 😃 😃


Anmelden zum Antworten