Ich persönlich finde, dass man in Notes besser ohne OO programmieren kann. Ich habe schon eine Menge Datenbanken mit (teilweise ekzessiver) OOP gesehen, aber überzeugt hat es mich nicht unbedingt. Im Gegenteil, der Codewust in (Declaration) ist sehr unübersichtlich. Das müsste besser gehen - vielleicht wenn der Designer / Script für Eclipse kommt.
Teamstudio Script Browser ist relativ brauchbar und umsonst.
Lotus benutzt selber ziemlich viel OO in ihren Templates (z.B. Mail Templates). Es kann Vorteile bringen, aber man kann sich damit sehr leicht in den Fuß schiessen. Einen automatischen Vorteil bringt das class-Konstrukt nirgendwie. Man muss sehr aufpassen. Für bestimmte Aufgaben macht es in meiner täglichen Praxis Sinn. Was definitiv nicht funktioniert ist einfach Java OO Praktiken zu nehmen und die in LS einsetzen. Es gibt eigene LS-OO Praktiken.
@Bubble:
Es gibt Anwendungen, die kann ich in 4 Stunden in Java programmieren und in 4 Tagen in LotusScript.
Klassen können niemals als "fertige Objekte" geliefert werden. Klassen sind Blaupausen für Objekte. Deshalb verstehe ich deinen Beitrag nicht so ganz. Auch in LotusScript ist die Klasse NotesDocument selbst etwas anderes als ein z.B. durch
doc = db.createDocument()
erzeugtes Objekt.
Und an "fertigen Klassen" mangelt es in Java wirklich nicht: file:///C:/java/doku/jdk-6-doc/docs/api/index.html
Aber mir gings nicht darum Sprachen zu vergleichen, sondern OO Praktiken.
@Bernhard: Mir gings nicht um eine Diskussion um die Vorteile von OO oder Java - LotusScript.
Man
muss in keiner der 3 Sprachen eigene Klassen schreiben.
In Java kann man sein ganzes Programm in einer main-Methode schreiben. Oder es gibt Systeme, in denen Programmierer die Business-Logik in Prozeduralen-Skripten in der Programmiersprache Java geschrieben werden. Weite Teile von J2EE Anwendungen sind nicht objekt-orientiert sondern prozedural. EJB-Session Beans werden traditionell oft prozedural-strukturiert geschrieben. Auch die in Java sehr verbreiteten ANT-Skripte zum automatisierten build, Packetierung, Auslieferung auf Server, etc. pp. auch nicht objekt-orientiert sondern in XML geschriebene Skripte.
D.h. soweit sind wir gar nicht auseinander. Verzicht auf eigene Klassen kann ja durchaus auch als OO-Praxis gesehen werden. Eben Negation. An dieser Stelle im System ist ein Skript effizienter als OO.
Alles was ich sage ist, dass sobald man eigene Klassen in den 3 Programmiersprachen schreibt, wirken auf ein
effektives Design der Klassen völlig andere Kräfte. Das beruht ein bischen auch auf Chaos-Theorie. Wenn in der Implementierungssprache ein kleines Feature hinzugefügt wird (z.B. Annotations in Java) kann das eine dramatische Auswirkungen auf die Effizienz von verschiedenen OO-Praktiken haben.
Oder General Theory of the Second best aus der Ökonomie (In einem sub-optimalen System kann eine Maßnahme, die in einem optimalen System positive Auswirkung hat, negative Auswirkungen haben). Nehmen wir an es gäbe einen Satz an theoretisch optimalen OO-Praktiken, die aber eine optimale Implementierung von OO in der Sprache zur Bedingung hat. Und nehmen wir weiter an, dass OO in keiner Sprache optimal implementiert ist. Dann folgt daraus, dass eine "gute" OO-Praxis im optimalen System nicht unbedingt eine positive Auswirkung im suboptimalen System hat.
Jedes System ist suboptimal und jedes System hat seine eigenen Regeln.
Gruß Axel