Ich werde mir immer mal wieder Exceptions ansehen und gucken, was ich damit machen kann, genauso wie ich mir immer wieder andere Konstrukte neu ansehe.Kerli hat geschrieben:Dann lassen wir das am Besten mit der Diskussion, weil ich glaub das würde sonst nie zu einem Ende kommen, bei diesen so verschiedenen Standpunkten
Ich beschränke mich allerdings nicht darauf, mir Konstrukte anzusehen, die C++ oder andere Sprachen anbieten, sondern ich gucke mir auch Konstrukte an, die in keiner (mir bekannten) Sprache formulierbar sind und probiere aus, was damit machbar ist.
Ich habe zum Beispiel mal Funktionen ausprobiert, die vom Compiler (nicht vom Benutzer) gerufen werden, wenn gewisse Vorbedingunen erfüllt sind. Der Compiler pflanzt den Aufruf einfach vor oder hinter die Bedingung. Sehr praktisch, wenn man mal eben was zwischen den Code schreiben möchte, aber eben nicht 1000 Änderunge machen will. Spannend wird es, wenn der Compiler sich dann rekursiv aufruft. Dann landet man in einer Rekusions-Endlos-Schleife, die man nichtmals bewußt aufgerufen hat. Kann mir gut vorstellen, dass da einige Entwickler nicht verstehen, was sie da eigentlich tun.
Keine Ahnung, ob man das Sprachfeature auf die Menschheit loslassen kann, oder ob die Mehrzahl der Entwickler es nicht kapieren wird, es deswegen meist falsch angewendet wird und es später heißt, das ist wäre ein katastrophales Feature, das macht reihenweise Software kaputt.
Was auch passieren könnte ist, dass es als Meilenstein abstrakter Programmierung gefeiert wird, AOP gilt ja als der kommende Hype nach OOP.
Ich habe mir meine Gedanken gemacht, was man mit diesem Feature machen kann als ich es entwickelte, andere Entwickler werden es vielleicht für andere Dinge gebrauchen - oder missbrauchen.
Für mich zählt nur, ob das Feature mir das Leben vereinfacht oder nicht.
Exceptions vereinfachen mein Leben nur dann, wenn ich sie als Ausnahme benutze und nicht als Goto, wie es in der Regel verwendet wird.
Schön... Du initialisiert Variablen vor, damit Du erkennen kannst, was Du anschließend wieder freigeben kannst. Ein vollkommen überflüssiger Schritt, aber das sind ja nur ein paar Takte, wie es immer nur ein paar Takte sind, die sich zu vielen Takten summieren... keine Ahnung, was daran schön ist, Variablen so zu manipulieren, dass man damit delete aufrufen kann, wenn man dafür keinen Speicher bekommen hat, delete also auch nicht rufen müsste. Für mich klingt das nicht schön, sondern überflüssig und Algorithmen, die überflüssige Dinge tun, fallen bei mir definitiv nicht in die Kategorie 'schön', das tendiert in meinem Verständnis eher in die Richtung 'falsch'.Kerli hat geschrieben:Ich möchte aber nur noch anmerken, dass gerade bei meinem letzten Projekt ein Code vorgekommen ist wo ich wie in meinem Beispiel ein paar Speicheranforderungen direkt hintereinander gehabt habe, und da war es mit Exceptions sicher die schönere Lösung.
Algorithmen, die Dinge tun, die für die Erledigung der Aufgabe unter den gegebenen Umständen nicht erforderlich sind, sind in meinen Augen falsch.