Einzelnen Beitrag anzeigen

Der_Unwissende

Registriert seit: 13. Dez 2003
Ort: Berlin
1.756 Beiträge
 
#50

Re: Delphi objektorientiert?

  Alt 30. Nov 2005, 14:35
Zitat von alzaimar:
Ich würde deine Sichtweise nicht als Merkmal der OOP, sondern eher als Merkmal verteilter Systeme definieren. Die bloße Tatsache, das Smalltalk mit Nachrichten rumhantiert, gibt ihr ja nicht automatisch den alleinigen Besitzanspruch für die Eigenschaft 'OO'.
Natürlich ist Kommunikation nur eine Notwendig Bedingung für OOP, keine Hinreichende und natürlich ist Kommunikation nur eine Bedingung.

Fakt ist, dass Delphi Programme Imperativ sein können. Der Beweis, dass Delphi aber nicht imperativ ist liegt in jedem TThread (ausser dem der Hauptanwendung/Main-Thread, wie auch immer). Den die imperative Programmierung geht definitiv von einer CPU aus, die sequenziell arbeitet (und es gibt ne Menge nicht sequentieller Programme in Delphi).

Fakt ist, dass Delphi Programme OO sein können. Der Beweis, dass Delphi aber nicht OOP ist, liegt in jeder dpr-Datei, die imperativ arbeitet (oder mindestens zu einem rein imperativen Programm umgeformt werden kann).

Fakt ist also, Delphi ist weder OOP noch Imperativ. Frage geklärt.

Die Sache ist und bleibt doch nun mal, wie genau ist OOP definiert. Was im Wiki steht ist natürlich keine allgemeingültige Definition (das Bedingt die Idee des Wikis).
Aber bei OOP handelt es sich nur um ein Programmierparadigma, dass wie bereits erwähnt eine bestimmte Sicht auf Probleme ermöglicht und diese damit auf eine Bestimmte Art und Weise löst. Da habeb also alle Recht, die das hier (denke es war mehrfach, zuletzt jedenfalls von alzaimar) gesagt haben.

Das Smalltalk OO ist liegt nicht an der Kommunikation zwischen Objekten sondern vielmehr daran, dass ein Smalltalk Programm nur die Kommunikation von Ojekten ermöglicht. Mehr ist, soweit ich weiß, nicht möglich. Es ist vorallem nichts anderes mit Smalltalk möglich.
Natürlich dürfen auch in anderen Programmierparadigmen Objekte existieren und miteinander Kommunizieren. Aber solche Paradigmen erfüllen schon mal einen Teil der Anforderungen an die OOP (da ist eine Verwechslung schon mal leicht).

Da OOP nur ein Paradigma ist, kann man nicht wirklich sagen dass eine Sprache OOP ist (auch wenn ich es hier schon mehrfach getan habe). Das liegt aber eher daran, dass wir doch dazu neigen unsere Sätze kontexsensitiv bilden (unsere Programme eher kontextfrei).
Natürlich kann man ein Paradigma nur einhalten oder nicht. Natürlich muss es die Möglichkeiten geben das Paradigma einzuhalten oder zu verletzen. Also kann eine Sprache nie OOP sein, wenn z.B. Kapselung unmöglich ist, sie muss wiederum OOP sein, wenn alle Bedingung immer erfüllt sind. Kann man das Paradigma erfüllen oder verletzen, ist keine Festlegung für die Sprache im allgemeinen sondern nur noch für einzelne Programme möglich.

Und damit sage ich es nochmal, Delphi ist weder OOP noch nicht OOP (oder wer möchte es ist gleichzeitig OOP und nicht OOP), hängt nur noch von der Auslegung (und meinen Denkfehlern) ab.

... und entspricht nahezu dem was alzaimar als letzten Satz schrieb, hm, bin wohl ein Letzes-Wort-Fetischist?!
  Mit Zitat antworten Zitat