Gute Entwickler ...
- prüfen Fehlerfälle
- und behandeln diese korrekt
Deshalb würde ein "Hello World" in Python so aussehen:
aimport sys
try:
print('Hello, world!')
sys.stdout.flush()
except:
sys.exit(1)
Denn Funktionen, deren Ausführung nicht auf Erfolg geprüft wird, können auch gleich komplett weggelassen werden, weil überhaupt nicht sicher gestellt ist, ob sie jetzt erfolgreich verliefen, oder ein Fehler aufgetreten ist.
Im obigen Snippet ruft print() intern sys.stdout.write() auf, was im Fehlerfall eine Ausnahme wirft. Das gleiche gilt für flush().
Das mag bei "Hello World" übertrieben wirken, aber man kann sich ruhig angewöhnen immer und überall ausnahmslos alle Funktionsaufrufe auf Fehler zu prüfen. (Entweder über Exceptions oder Rückgabewerte.)
Leider machen das viele Entwickler quer durch alle Programmiersprachen nicht. Bei dingen wie print() wird man das u. U. verschmerzen können, aber wenn sich ein Programmierer diese schlechte Praxis angewöhnt, ist die Wahrscheinlichkeit hoch, dass er es auch bei malloc() (in C) vergessen wird.
Fazit: Funktionen, deren Ausführung nicht auf Fehler geprüft wird, können komplett wegfallen. Aber da in 99% aller Fälle das Programm dann nicht mehr so laufen wird, wie erwartet, sollte man sich einfach angewöhnen IMMER auf Fehler zu prüfen.
Die mit Abstand meisten Sicherheitslücken in Servern, Anwendersoftware und auf Mobilgeräten könnten einfach dadurch verhindert werden, wenn die Entwickler Funktionsaufrufe korrekt auf Fehler prüfen würden.
Und falls jetzt jemand meint: "Bei Hello-World ist das doch eh Wurst!", nein, ist es nicht.
Es gibt unter unixoiden Shells ein Tool mit dem schönen Namen "yes", und das tut nicht viel mehr, als einen String innerhalb von einer Schleife auszugeben. Das Werkzeug "echo" ist sogar noch primitiver. Und dabei muss natürlich geprüft werden, ob ein Schreiben nach stdout und ein anschließendes fflush() erfolgreich war.
Zumal nicht immer automatisch geflusht wird, wenn ein "\n" geschrieben wird. Das kann man über eine Million Wege in der Ausführungsumgebung ändern, z. B. über "stdbuf".
Also als erfahrener Entwickler ...
- prüft man ordentlich auf Fehler
- behandelt diese entsprechend
- sollte sich diese Praxis überall angewähnen
- und zwar Sprachübergreifend
Ansonsten noch viel Spaß! :)