T
Original erstellt von volkard:
aha. also darf ich dein argument dochj übertragen von c nach basic oder gar asm.
die komplizierten konstrukte wie
do
befehl
while(bedingung);
verbergen ja in wirklichkeit ein schlichtes
marke:
befehl
if(bedingung) goto marke;
natürlich ist unteres viel klarer. nicht zuletzt, weil mit if-goto außer do auch die verwirrenden sprachmittel wile, for, else und switch unnötig werden.
und wer mag behaupten, er habe sich nicht schon mal bei schleifen vertan? schleifen sind einfach gefährlich und kompliziert. und wenn noch switch und continue vorkommen! continue springt in der forschleife aufs semikolon zwischen der laufbedingung und dem weiterschaltungsausdruck! wie verwirrend!
nein, so kann man das nicht ansehen. Was ich meine sind dinge wie z.B. Implizite Destruktorenaufrufe. Sowas ist versteckt, denn sie haben kein Äquivalent im Programmtext ( } zählt hier nun wirklich nicht). Destruktoren sind definitiv eine praktische Sache, man muss sich nur seines Schrittes bewusst sein und an solche Sachen denken. Eine Übersetzung von deinem C-Beispiel in Basic oder Assembler ändert nur die Schreibweise der Instruktionen, da ist nichst dran versteckt.
übrigens verlagern sich die fehler mit der zeit.
anfangs ist ne falsche laufbedingung ein interessanter fehler. über tippfehler redet man nicht, die passieren immer mal und sind in null komma nix weg.
später ist ne schlechte funktionale zerlegung ein fehler, der es einem unmöglich macht, die gewünschte komplexität aufzubauen. über falsche laufbedingungen redet man nicht mehr. die passieren immer mal und sind in null komma nix weg.
so mag es sein, daß man auch mal ne zeit hat, wo man in c keine schlimmen fehler machen würde, aber in c++ viele. das vergeht aber. wenn man vorwiegend über die design-fehler nachdenkt, die einem erst in drei monaten das knie brechen, dann ist meines erachtes nach c++ eine der ungefährlichsten sprachen (man strirbt nämlich bereits nach 2 monaten und hat nen monat gespart).
Hm, da istd ie Frage ob Designfehler noch mit Sicherheit zu tun haben. Denn Designfehler sieht man wenigstens, meistens rennt man früher oder später mitm Kopf dagegen
Aber Anyway, ich denke man kann sowohl in C, als auch in C++ genauso gut "versteckte" Designfehler aufbauen. Ich programmiere zwar größeres in Java aber man nutzt in beiden (Java/C++) ja mehr oder weniger das OOP-Prinzip und man kann genauso gut in OOP einen Designfehler machen. Den schleppt man dann genauso wie einen C-Designfehler durch und durch und biegt immer mehr hier und da zurecht bis es ienfach nicht mehr geht. Aber ich denke das macht in C keinen Unterschied, solange man dort ebenso strukturiert bleibt wie in C++ (sprich: Funktionen nach Funktionalität in Dateien gruppieren z.B.). Wenn man natürlich alles kunterbunt durcheinander wirft, ists klar, aber wenn man es Strukturiert macht, sehe ich da keinen Unterschied.
[ Dieser Beitrag wurde am 24.05.2003 um 16:28 Uhr von TriPhoenix editiert. ]
[ Dieser Beitrag wurde am 24.05.2003 um 16:29 Uhr von TriPhoenix editiert. ]