Sonstiges > Offtopic
Objekt-Theorie und reale Welt?
flaite:
Letzte Umfrage für die nächsten 4 Wochen. Versprochen.
Aber mir fällt jetzt, wo ich viel LotusScript und JavaScript programmiere sowie mich büchermässig mit den komplexeren Teilen von JavaScript beschäftige.
OO ist in LotusScript, JavaScript und Java ein jeweils ziemlich verschiedenes Werkzeug (find ich).
jBubbleBoy:
das sind aber auch 3 völlig unterschiedliche Ansätze / Umgebungen;
LotusScript = "Baukastenentwicklung", man schreibt nur Code in Ereignissen
Java = man muss alles selber machen und trägt für alles die Verantwortung
JavaScript = WEB
bubble
flaite:
Das wo mir vorschwebt hat nicht unbedingt was mit den Umgebungen zu tun.
Völlig losgelöst von der Umgebung bewirkt die Implementierung der Sprachen auf - sagen wir Compiler-Level - das völlig verschiedener Einsatz von OO sinnvoll ist.
Java ist nicht Maschinensprache. Da muss man wirklich nicht alles selber machen und trägt für alles die Verantwortung. Im Gegenteil. Java bringt eine deutlich größere Bibliothek an vorhandenen Klassen mit, so dass man sich um viele Sachen wirklich nicht selbst kümmern muß, sondern einfach eine vorhandene Klasse nutzt. Das ganze verstärkt sich nochmal mit den ganzen Frameworks wie EJB3, Hibernate, Spring, JSF, etc. die heute praktisch jedes Java Projekt prägen. Da nähert sich Java nämlich sehr stark einer Baukastenprogrammierung. Eclipse plug-in oder RichClient Programmierung ist btw. auch wesentlich ähnlicher wie Notes Programmierung, nur sehen das viele Diskutanten in den aktuellen Debatten nicht. Eclipse hat natürlich ein wesentlich komplexeres Objekt Modell als Lotus Script, aber im Grunde genommen reagiert dort der meiste Code auch "nur" auf vorgegebene Events.
JavaScript muss auch nicht "nur" fürs Web benutzt werden. Java 6 hat einen JavaScript Interpreter namens Rhino dabei, so dass man JavaScript in beliebige JavaProjekte einsetzen kann.
Ich mein eher so Sachen wie die Tatsache, dass JavaScript Closures hat, aber keine der beiden anderen Sprachen. Oder das in JavaScript Funktionen first class Objects sind, so dass Instanzvariablen Funktionen zugewiesen werden können.
JavaScript ist eine Funktionale Programmiersprache und wenn du dir die neuen openSource Ajax Bibliotheken wie Dojo oder Prototye anschaust, dann merkst du, dass diese JavaScript Programmierer das benutzen.
LotusScript kennt Properties, Java nicht. Der Typ Variant in LotusScript bedeutet etwas anderes als java.lang.Object in Java. In LotusScript dürfen keine Arrays in Argumenten oder als Instanzvariablen von Klassen auftreten.
LotusScript kennt kein Überladen von Methoden und Konstruktoren. Java schon. Java besitzt Annotations.
Die Weiterleitung von Exceptions/Errors durch den call stack und wie darauf reagiert werden kann ist in den 3 Sprachen unterschiedlich.
Das Event Modell ist in den 3 Sprachen sehr, sehr verschieden.
LotusScript besitzt einen Typ namens Type, der Struct in C ähnelt und für den es in Java kein Äquivalent gibt.
In der Java-Benutzung selbst sind bestimmte Programmiertechniken, die noch 2002 für die Mehrheit als voll ok galten (z.B. Singletons) mittlerweile in Verruf geraten. Schon die Benutzung des Springframeworks führt zu einem völlig anderen OO-Modell als ohne. Sogar kleinere Veränderungen der Umgebung wie die Verbesserung der AOP Features in Spring2.0 oder EJB3-Interceptors kann zu einem dramatisch unterschiedlichen OO-Modell führen.
Z.B. sind Ruby und Java beides OO-Sprachen, die an keine Plattform fest gebunden sind. Trotzdem führen sie zu verschiedenen Programmiertechniken, weil einfach verschiedene Dinge effizient sind.
Im Grunde ist das eine Binsenweisheit. Aber die Auswirkungen sind erstaunlich stark.
Gruß Axel
Glombi:
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.
jBubbleBoy:
Mit Java kann man ganz anders Web-Anwendungen entwickeln als mit LotusNotes. Für mich vergleichst Du hier Äpfel mit Birnen ;)
Basic ist nun mal ein anderer Ansatz als Java oder C. Ich kann mit Notes in 2 h Anwendungen schreiben, wo ich in Java 2 Tage oder mehr benötige. Wie gesagt Äpfel <--> Birnen, sind beider lecker aber unterschiedlich.
Wenn ich in Notes entwickle nutze ich automatisch OO, aber halt anders als in Java. Ich erzeuge die Objekte im Designer und nutze die Ereignisse zum Coden. Und das man keine eigenen Klassen in LS schreibt liegt einfach an der Programmiersprache Basic, dessen Philosophie dahin geht alles möglichst einfach zu halten, d.h alle wichtigen Klassen werden in Form von "fertigen Objekten" geliefert. Was im Umkehrschluss schnell Ergebnisse liefert, aber man nicht auf alles einen Einfluss hat.
der bubble
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln