was die goto s angeht:



  • sdfsdf schrieb:

    Ich glaube kaum, dass du über genügend Theorie- und Praxiserfahrung verfügst, dass du die oben genannte Aussage von Linus in Frage stellen könntest. Nichts persönliches, aber ich finde gotos auch nicht sooo schlimm, auch wenn ich trotzdem gotos meist versuche zu vermeiden.

    Ja klar, Linus ist Gott, schon klar. *verbeug*

    ps: Lies mal die gesamte mailinglist, also den link den ich oben gepostet hab. sind noch ein paar andere faktoren zu berücksichtigen.

    Der Satz mag im Kontext seine Berechtigung haben, so allein stehend ist er aber Quatsch. Eignet sich nicht als Signatur. BTW lies doch mal meine gesamten Postings hier um meine Meinung über gotos zu erfahren.



  • sdfsdf schrieb:

    Schau mal unter der Sektion "# Why don't we replace all the goto's with C exceptions?".

    was sind denn 'C exceptions'?



  • Na SEH also ints geht glaube ich so:
    __try
    __except
    __finally

    Auf jeden fall nichts standardkonformes...



  • gut schrieb:

    jetzt haben wir wieder ein neues Thema, das "Methoden mit bool-Parametern und "Lesbarkeit" im Kontext" nervt ja auch schon.

    ja, lasst uns anfangen 😉
    ich finde goto gut. es ist manchmal genz praktisch. leider gibt es programmiersprachen ohne goto (z.b. Java, aber Java hat als goto-ersatz 'labeled' break und continue statements).

    rrtr schrieb:

    Na SEH also ints geht glaube ich so:
    __try
    __except
    __finally

    Auf jeden fall nichts standardkonformes...

    ach so, danke.
    🙂



  • Also ich bevorzuge gotos, da diese deutlich schneller sein. Zudem verwende ich statt if-statements einfache subtraktion so wie es in assembelr der fall ist.

    Auf diese Weise bin ich doppelt so schnell wie diese lahmen OOPler..

    </spaß>



  • Undertaker schrieb:

    sdfsdf schrieb:

    Schau mal unter der Sektion "# Why don't we replace all the goto's with C exceptions?".

    was sind denn 'C exceptions'?

    vielleicht über setjmp. Aber in dem Beitrag steht ja etwas dazu.



  • rüdiger schrieb:

    Undertaker schrieb:

    sdfsdf schrieb:

    Schau mal unter der Sektion "# Why don't we replace all the goto's with C exceptions?".

    was sind denn 'C exceptions'?

    vielleicht über setjmp. Aber in dem Beitrag steht ja etwas dazu.

    Bestimmt so. Ich habe mal einen Artikel gelesen, da haben die Entwickler einer embedded Anwendung Exceptions über setjmp usw. gebaut und waren deutlich schneller als das C++-Pendant (iirc ~Faktor 6-7). Den Link dazu find ich aber bestimmt nicht mehr 😉



  • Tim schrieb:

    Ich habe mal einen Artikel gelesen, da haben die Entwickler einer embedded Anwendung Exceptions über setjmp usw. gebaut und waren deutlich schneller als das C++-Pendant (iirc ~Faktor 6-7). Den Link dazu find ich aber bestimmt nicht mehr 😉

    http://www.ddj.com/cpp/184404317
    --> http://i.cmpnet.com/ddj/ddj/images/ddj0011i/0011it1.gif
    🙂



  • Wenn man modernes C++ (z.B. Verwendung von Exceptions, RAII, Guards) programmiert, braucht man IMO kein "goto" mehr, da sich sämtliche Fälle wo ich bis jetzt "goto" gebraucht habe anders (besser) lösen lassen.

    Wenn man C programmiert ist "goto" z.B. praktisch um im Fehlerfall Cleanup-Code anzuspringen. Das Problem ist nicht "goto" grundsätzlich, sondern dass man damit viel Unfug treiben kann. z.B. nach oben springen, oder mitten in Scopes hinein. Solange man das bleiben lässt finde ich nicht allzuviel dabei -- viele Funktionen werden so viel übersichtlicher als ohne "goto".



  • http://www.kbs.uni-hannover.de/Lehre/SWTG/goto.pdf

    Mehr gibt es dazu nicht zu sagen.



  • Undertaker schrieb:

    Tim schrieb:

    Ich habe mal einen Artikel gelesen, da haben die Entwickler einer embedded Anwendung Exceptions über setjmp usw. gebaut und waren deutlich schneller als das C++-Pendant (iirc ~Faktor 6-7). Den Link dazu find ich aber bestimmt nicht mehr 😉

    http://www.ddj.com/cpp/184404317
    --> http://i.cmpnet.com/ddj/ddj/images/ddj0011i/0011it1.gif
    🙂

    Jo, ich glaub der war's. Wie ich auf die 6-7 komme weiss ich aber auch nicht mehr...

    Hab ich den seinerzeit von dir... ermm... net?



  • Tim schrieb:

    Jo, ich glaub der war's. Wie ich auf die 6-7 komme weiss ich aber auch nicht mehr...

    du hast C++ leicht überschätzt. ~50 wäre richtig gewesen 😃

    Tim schrieb:

    Hab ich den seinerzeit von dir... ermm... net?

    wär' schon möglich, weiss ich aber nicht mehr.
    🙂



  • Undertaker schrieb:

    Tim schrieb:

    Jo, ich glaub der war's. Wie ich auf die 6-7 komme weiss ich aber auch nicht mehr...

    du hast C++ leicht überschätzt. ~50 wäre richtig gewesen 😃

    Hast du das gemessen? Ist dir bewusst, dass C++ absichtlich nicht einfach setjmp für Exceptions benutzt?

    @Tim: Was hast du angerichtet?! 😡



  • Mr. N schrieb:

    Hast du das gemessen?

    nö, aber ich glaub DDJ kann man vertrauen 😉

    Mr. N schrieb:

    Ist dir bewusst, dass C++ absichtlich nicht einfach setjmp für Exceptions benutzt?

    kann ich mir denken. C++ muss ja für exceptions irgendwelche objekte durch die gegend schubsen.

    asdasdas schrieb:

    Java is eh besser als C++.

    in Java sind exceptions auch lahm.
    🙂



  • Undertaker schrieb:

    Mr. N schrieb:

    Ist dir bewusst, dass C++ absichtlich nicht einfach setjmp für Exceptions benutzt?

    kann ich mir denken. C++ muss ja für exceptions irgendwelche objekte durch die gegend schubsen.

    Vor allem aber muss C++ Stack-Unwinding betreiben, und für jeden einzelnen Frame überprüfen ob Destruktoren oder catch-Blöcke auszuführen sind. Da Exceptions, wie der Name schon sagt, selten geworfen werden und das Ausführen der Destruktoren an der Stelle enorm praktisch ist, stört das aber eigentlich keinen.



  • Bashar schrieb:

    http://www.kbs.uni-hannover.de/Lehre/SWTG/goto.pdf

    Mehr gibt es dazu nicht zu sagen.

    Sicher?

    http://www.ecn.purdue.edu/ParaMount/papers/rubin87goto.pdf

    😃

    Edit: Sorry, aber der musste einfach sein 😉



  • Mr. N schrieb:

    Da Exceptions, wie der Name schon sagt, selten geworfen werden und das Ausführen der Destruktoren an der Stelle enorm praktisch ist, stört das aber eigentlich keinen.

    es wirkte sich aber immer negativ auf die code-grösse aus (siehe tabelle)
    --> http://i.cmpnet.com/ddj/ddj/images/ddj0011i/0011it1.gif
    aus diesem grund lässt sich wohl das exception handling bei vielen C++ compilern disablen.

    Tim schrieb:

    http://www.ecn.purdue.edu/ParaMount/papers/rubin87goto.pdf

    netter vergleich 😉

    It is like butchers banning knives because workers sometimes cut themselves.

    ...und der knuth ist ja auch nicht gerade der dümmste:
    --> http://pplab.snu.ac.kr/courses/adv_pl05/papers/p261-knuth.pdf
    🙂



  • Tim schrieb:

    Edit: Sorry, aber der musste einfach sein 😉

    Tim, genau aus dem Grund habe ich den Artikel verlinkt und nicht einfach nur den Titel genannt. In deinem Artikel steht überhaupt nichts zum eigentlichen Inhalt von Dijkstras Artikel, er hängt sich sehr an der -- zugegeben reißerischen -- Überschrift auf. Dabei ist die Begründung der Feststellung aus dem Titel sehr erhellend und wesentlich informativer als alle 23568972 Foren-Flameschlachten, die je dazu gefochten wurden. Sozusagen ist dein Artikel eine Bestätigung. Irgendwas böse zu finden ist vollkommen unsinnig, man muss auch wissen wieso.



  • Bashar schrieb:

    ...

    Schon klar. Aber ich finde den Titel so doll und konnte einfach nicht widerstehen 😉



  • Bashar schrieb:

    Irgendwas böse zu finden ist vollkommen unsinnig, man muss auch wissen wieso.

    man kann's aber auch übertreiben:

    I became convinced that the go to statement should be abolished from all "higher level" programming languages (i.e. everything except, perhaps, plain machine code)

    naja, 1968 ist lange her, da haben noch viele mit'm hexeditor maschinencodes reingehackt.
    🙂


Anmelden zum Antworten