Zitat von
choose:
ich würde dem auch nicht zustimmen, alzaimar. Bei einer prozeduralen Betrachtung gibt es im engeren Sinne keine Kommunikation zwischen Beteiligten.
Im engeren Sinne natürlich nicht, davon sprach ich aber nicht. Du betrachtest "Kommunikation" als etwas Bidirektionales, bei dem beide Partner unabhängig voneinander einfach drauflosquatschen, so wie in einem verteilten System eben üblich. Die prozedurale Kommunikation findet aber, metaphysisch gesehen, sehr wohl statt, wenn auch etwas einseitig:
Ich befehle dem Unterprogramm, das es etwas erledigen soll und, wenn es fertig ist (oder auch früher, per
Exception), bekomme ich eine Rückmeldung, das es geklappt hat, oder nicht. Wenn ich die Worte 'befehle' und 'Rückmeldung' verwende (wie in prozeduralen Sprachen üblich: 'Commands', 'Returns' ...) , sollte das doch schon Beleg genug sein, das hier eine 'Kommunikation' stattfindet, nur ist sie etwas langweilig, weil es immer nur einen Aktiven gibt, nämlich den (logischen) Program-Counter.
Das hat aber Nicht viel damit zu tun, ob Delphi nun OO ist, oder nicht, denn OO macht sich ja nun mal nicht an der Tatsache fest, das Speicherblöcke Nachrichten austauschem, was im Endeffekt ja auch nichts anderes als Prozeduren sind (Aber ebenso könnte man Menschen die Intelligenz abstreiten, weil ja alles auf einfache chemische Reaktionen hinausläuft).
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'.
Ich würde die Definition im Wiki mal als Grundlage nehmen, und danach sind es nicht die Nachrichten, die OO ausmachen, sondern, wie ich bereits sagte, die Sichtweise und die Art und Weise der Implementierung.