Die Extended Class Syntax hat aber auch Nachteile gegenüber ReplaceItemValue:
1. Die Performance ist wesentlich schlechter, da der Compiler erst nach der Property/Methode sucht und dann - nachdem er keine gefunden hat - das als Abkürzung für ReplaceItemValue erkennt.
Das ist in vielen Kontexten eben auch egal. In vielen Fällen wird keiner die eingesparte Zeit merken.
In 7 haben wir ja eine Profiling Klasse. Damit bekommt man für einen konkreten Kontext konkrete Aussagen über die Zeit, die für die einzelnen Funktionen benötigt wird. Betrachtet man Performance vom Standpunkt der merkbaren Auswirkungen beim User (und alles andere macht keinen Sinn), dann sind solche Argumente eben mehr so metaphysisch.
2. Aus 1 ergibt sich dann sofort das Problem: Wenn es DOCH eine Property gibt, so führt das zu Fehlern. Das ist bspw. der Fall, wenn in einer neuen Notes-Version eine neue Property hinzukommt.
Akutelles Beispiel (wurde auch hier im Forum behandelt): Lock
ein doc.Lock = "1" funktioniert dann eben nicht mehr.
Und sowas kann mit ReplaceItemValue nicht passieren.
Das ist ein Argument. Mit einem vernünftigen Test-Prozess bei einem upgrade auf die neue Version, in der das implementiert ist, sind die Kosten möglicherweise nicht besonders hoch.
Was ich nur sagen will ist, dass man an einer Menge Stellen aus verschiedenen Gesichtspunkten (Latenz, Skallierbarkeit, Wartbarkeit, etc. ) optimaleren Code schreiben kann. Wir machen es nur nicht, weil man eben nicht alles berücksichtigen
kann. Und zwar keiner. Man kann nun 5 einfache Gesetze für "optimalen Code" aufstellen und das als "perfekten code" deklarieren. Die Regeln lassen aber bestimmt 120 Aspekte ausser acht. Ich bin sicherlich nicht gegen gute Programmierpraktiken. Will nur sagen, dass dies oft sehr komplex ist. Und das Ergebnis hinsichtlich einer totalen Betrachtung nie optimal ist.
Eine Architektur-, Design- oder Programmierentscheidung ist letztlich das Ergebnis einer Kosten-Nutzen Rechnung von denen ex ante die wirklichen Kosten und Nutzen nicht kennt.
Ein bischen wie die Theory of the second best in Wipol. In einem Markt mit Störungen führt eine Maßnahme die eine von mehreren Störungen beseitigt zu besseren, genau gleichen oder schlechteren Ergebnissen
http://internationalecon.com/v1.0/ch100/100c030.htmlAxel