Damit meine ich nicht nur die persönliche Einstellung zu bestimmten Dingen. Auch in der Softwareentwicklung kann eine positive Bezeichnung der Variablen erheblich helfen und die Wartung von Code vereinfachen.

Schauen wir uns zur Veranschaulichung folgendes Beispiel an (in leicht abgewandelter Form schon mehrmals so gesehen):

if (!fooBar.IsNotEmpty){
  // .. code ..
}

Worin besteht hier genau das Problem? Der Code ist ja eindeutig. Wenn „IsNotEmpty“ nicht wahr ist, wird der Code ausgeführt.

Aus meiner Sicht besteht das Problem in der doppelten Negation. Als Entwickler sollte man immer möglichst einfachen und lesbaren Code schreiben. Wenn die Abfrage nur „IsNotEmpty“ beinhaltet mag das alles auch noch in Ordnung sein. Allerdings muss ich sehr stark bei einer doppelten Negation aufpassen.

Der Code wird also ausgeführt, wenn etwas nicht-nicht leer ist. Nun streichen wir das doppelte nicht. Dies bedeutet, dass die Verschachtelung ausgeführt wird, wenn etwas leer ist. Schauen wir uns das nochmal im Code an:

if (!fooBar.IsNotEmpty){
  // .. code ..
}

if (fooBar.IsEmpty){
  // .. code ..
}

Viele werden die zweite If-Abfrage wahrscheinlich schneller erfasst und verstanden haben als die erste. Ist der Quellcode klein, überschaubar und nur ein kurzer „Hack“ mag das in Ordnung sein. Wenn ich als Entwickler in verschiedenen Dateien, Methoden und Klassen arbeite und öfter hin und her navigiere, freue ich mich über einfachen Code. Ich möchte den schnell erfassen und verstehen. Eine doppelte Negierung, bei der man sehr stark aufpassen muss (und vielleicht einen Knoten im Kopf bekommt) hilft hier wenig.

Ich hoffe, ich konnte dem einen oder anderen Leser ein kleinen Denkanstoß mit auf den Weg geben. Als Entwickler sollten wir immer möglichst einfachen Code schreiben.

Anmerkung: Ich wäre sogar so weit zu gehen, anstatt IsEmpty, etwas wie Any oder HasElements zu verwenden, da es positiver klingt.