Goswin hat geschrieben:EyDu hat geschrieben:Ich kenne übrigens niemanden mehr, egal welche Programmiersprache, der noch Typinformationen in Namen einbaut. Das "class" ist nicht nur überflüssig, macht zusätzliche Arbeit und sieht auch noch unleserlich aus.
Jetzt kennst du wieder jemanden
. Bei statisch typisierten Sprachen wie Fortran und Java tue ich das auch nicht. Aber bei Python habe ich mir das angewöhnt, weil ich immer wieder vergesse, welchen Typ meine Variablen haben, haben sollen, und haben müssen, damit das Programm fehlerlos läuft.
Sehr richtig. Hier ein paar weitere Möglichkeiten, Source Code unwartbar zu machen:
How To Write Unmaintainable Code.
Unter der Rubrik
Naming findet sich als Punkt 30. folgendes:
Hungarian Notation is the tactical nuclear weapon of source code obfuscation techniques; use it! Due to the sheer volume of source code contaminated by this idiom nothing can kill a maintenance engineer faster than a well planned Hungarian Notation attack.
Leider kann man bei Microsoft immer noch
Charles Simonyis Artikel finden, in dem er die Ungarische Notation zum erstem Mal präsentiert hat. Was er dort schreibt, ist viel zu vernünftig und würde man Ungarische Notation so verwenden, wie dort darstellt, würde sie kaum zu Source Code Obfuscation taugen.
Ein Bekannter von mir besteht darauf, vor jeden Variablennamen ein 'o' zu setzen, weil Variablen ja auf Objekte referenzieren. Mein Argument, dass doch in Python alles ein Objekt ist, ficht ihn nicht an. Sein Gegenargument ist "Aber dann kann ich sofort sehen, was für einen Typ die Variable hat" - worauf ich entgegne "Aber damit siehst du doch nur, dass es sich um ein Objekt handelt, was ja zu erwarten ist, da in Python alles ein Objekt ist" - und er: "Aber dann kann ich sofort sehen, was für einen Typ die Variable hat", usw. etc. pp. ad. inf. Als ich diese Art der Variablen-Benennung als "oRomeo, oRomeo, oMein geliebter Romeo"-Notation verspottet habe, hat er sich zwar gemopst, aber bestand weiterhin darauf, dass das erste und wichtigste Kennzeichen vernünftigen Verhaltens (hier des Variablen-Benennungs-Verhaltens) dasjenige ist, bei dem man sich so verhält, wie man es schon immer getan hat, egal, wie gut die Gegenargumente sind. Man kann ja jedes Argument besiegen, indem man das magische Wort "trotzdem" verwendet. Man könnte diese philosophische Position als Trotzdemismus bezeichnen.
In specifications, Murphy's Law supersedes Ohm's.