Hallo,
Hi!
sind diese "Hilfen" ein Muss oder ein Luxus, auf den man verzichten kann?
Ich bezeichne sauberes Programmieren (use strict und -w) und sichere Programme (-T) nicht als Luxus, sondern als sinnvoll und in gewissen Fällen (z.B. Webanwendungen) als notwendig an.
Bisher habe ich meine Programme auf Unix- und Linuxsystemen mit der Kornshell entwickelt.
Du meinst Shell-Scripte? Respekt!
Nun fange ich mit Perl an, weil jegliche Shell meinen neuen Anforderungen nicht gewachsen ist.
Der Respekt ist gerechtfertigt.
Die Deklaration von Variablen in Perl ist mir nicht unbekannt, da ich schon kleinere Funktionen in C geschrieben habe und dort eine Deklaration zwingend vorgeschrieben ist. Aber gerne würde ich auf die Deklaration mit my, our und local verzichten.
Wieso denn? Da weißt du wenigstens, welche Variablen du hast und was am Anfang in ihnen steht. Für kleine Programme mag das nützlich sein, aber bei größeren "Projekten" macht das echt Sinn. Außerdem sieh es mal so: In dem du dich auch mit deinen Daten beschäftigst, kannst du gewisse Fehler im Vorfeld ausschließen.
Ich habe schon viele Programme gesehen und auch selber geschrieben, die weder use strict noch die Pragmas -w oder -T benützen, nur verfalle ich dann sehr schnell bei den sogenannten selbsternannten Superprogrammierern in Ungnade, wenn ich all diese "Hilfen" nicht benutze.
Also in der Perl-Manual heißt es, dass jedes Programm so anfangen sollte:
#! /pfad/zu/perl -w
use strict;
...
-T schon eine gewisse zusätzliche Komplexität ins Programm ein, weil man jede Variable von außen erst einmal "reinigen" muss. Für viele Fälle denke ich, ist das ein wenig zu paranoid, weil man durchaus seinen Anwendern trauen kann. Für CGI-Programme würde ich es aber immer empfehlen.
Genauso gehöre ich zu den "Programmieren", die sich nicht davor scheuen "goto" zu benutzen.
Es gibt Gelegenheiten, da hat man ohne goto Probleme. Aber diese Diskussion pro-contra goto ist schon so alt wie die höheren Programmiersprachen. Es gab mal seinerzeit ein Bashing mit Don Knuth, such mal nach "goto considered harmful" und "'goto considered harmful' considered harmful".
Denn immerhin ist es eine mögliche Funktion, warum sollte ich sie nicht verwenden? Die Gefahren, ein Endlos-Script zu programmieren, kann mir auch mit jeder while, for, unless, do etc. Schleife passieren!
Da verlierst du aber u.U. nicht Daten, was dir passieren kann, wenn du zwischen Funktionskörpern hin und her springst.
Gruß,
coolblue
Schönes Wochenende,
Robert