Umfrage

Gibt es EINE Theorie der Objekt-Orientierung, die Sinn in der realen  Welt macht?

Objekt Orientierung wurde dafür erfunden, um Schwätzern eine Möglichkeit zu geben, höhere Consulting-Sätze einzufordern.
2 (20%)
Gutes theoretisches Konzept,  das man nicht braucht.
0 (0%)
Es gibt eine Theorie der Objekt-Orientierung, die sich langsam durchsetzt. Die Implementierungssprache ist egal. Für Objekt-Orientierung in Java, JavaScript und LotusScript gelten die selben Regeln.
2 (20%)
Objekt-Orientierung ist ein moving target. Zwar gibt es eine  - recht dünne - allgemeine Theorie, aber in der Realität sieht die Umsetzung von Objekt-Orientierung in (z.B.) Java, LotusScript, JavaScript sehr unterschiedlich aus
6 (60%)
Objekt-Orientierung ist sicher interessant, aber ich hab zu wenig Zeit / zu wenig Interesse dafür.
0 (0%)

Stimmen insgesamt: 9

Autor Thema: Objekt-Theorie und reale Welt?  (Gelesen 2166 mal)

Offline flaite

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.966
    • mein del.icio.us
Objekt-Theorie und reale Welt?
« am: 13.08.07 - 19:31:18 »
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). 
Ich stimm nicht mit allen überein, aber mit vielen und sowieso unterhaltsam -> https://www.youtube.com/channel/UCr9qCdqXLm2SU0BIs6d_68Q

---

Aquí no se respeta ni la ley de la selva.
(Hier respektiert man nicht einmal das Gesetz des Dschungels)

Nicanor Parra, San Fabian, Región del Bio Bio, República de Chile

Offline jBubbleBoy

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.290
  • Geschlecht: Männlich
Re: Objekt-Theorie und reale Welt?
« Antwort #1 am: 13.08.07 - 20:06:10 »
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
Gruss Erik :: Freelancer :: KI-Dev, Notes, Java, Web, VBA und DomNav 2.5 / NSE 0.16 / OLI 2.0

--
Nur ein toter Bug, ist ein guter Bug!

Offline flaite

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.966
    • mein del.icio.us
Re: Objekt-Theorie und reale Welt?
« Antwort #2 am: 13.08.07 - 20:45:48 »
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   
« Letzte Änderung: 13.08.07 - 20:56:27 von Axel Janssen »
Ich stimm nicht mit allen überein, aber mit vielen und sowieso unterhaltsam -> https://www.youtube.com/channel/UCr9qCdqXLm2SU0BIs6d_68Q

---

Aquí no se respeta ni la ley de la selva.
(Hier respektiert man nicht einmal das Gesetz des Dschungels)

Nicanor Parra, San Fabian, Región del Bio Bio, República de Chile

Glombi

  • Gast
Re: Objekt-Theorie und reale Welt?
« Antwort #3 am: 13.08.07 - 21:49:29 »
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.

Offline jBubbleBoy

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.290
  • Geschlecht: Männlich
Re: Objekt-Theorie und reale Welt?
« Antwort #4 am: 13.08.07 - 23:56:43 »
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
Gruss Erik :: Freelancer :: KI-Dev, Notes, Java, Web, VBA und DomNav 2.5 / NSE 0.16 / OLI 2.0

--
Nur ein toter Bug, ist ein guter Bug!

Offline koehlerbv

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Objekt-Theorie und reale Welt?
« Antwort #5 am: 14.08.07 - 00:03:22 »
Äpfel und Birnen ist - meines Erachtens - ein wahres Wort. Dass passt auch sehr gut zu Axels anderem Thread .. ach nein, das ist ja gerade eben dieser  ;)  Man muss eben das beste aus den Möglichkeiten herausholen. Ich verwende an den Stellen, wo es sich für mich / mein Team lohnt, sehr gerne die Möglichkeiten von OOP, ich kenne aber - wie Andreas das auch schreibt - dazu krasse Antibeispiele.

Bernhard

Offline flaite

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.966
    • mein del.icio.us
Re: Objekt-Theorie und reale Welt?
« Antwort #6 am: 14.08.07 - 09:29:13 »
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
Code
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
« Letzte Änderung: 14.08.07 - 09:31:21 von Axel Janssen »
Ich stimm nicht mit allen überein, aber mit vielen und sowieso unterhaltsam -> https://www.youtube.com/channel/UCr9qCdqXLm2SU0BIs6d_68Q

---

Aquí no se respeta ni la ley de la selva.
(Hier respektiert man nicht einmal das Gesetz des Dschungels)

Nicanor Parra, San Fabian, Región del Bio Bio, República de Chile

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz