Als objektorientierte Programmierung bezeichne ich eine Methode des Programmierens innerhalb des deklarativen Programmierparadigmas. |
Beispiel:
Smalltalk von A. Kay, der den Ausdruck „object oriented“ eingeführt hat.
Die paradigmatische Unterscheidung besteht darin, dass die Prozesse Objekten zugeschrieben werden, die die Datenstruktur und die mit den Daten ausgeführten Aktionen beinhalten, während bei der imperativen Programmierung Datenstrukturen und die mit den Daten ausgeführten Prozeduren voneinander unabhängig sind.
Die wichtigsten Vorteile der objekt-orientierten Programmierung (deklarative Programmierung) sind:
mehr kommt noch [ ]
A. Kay, der Erfinder der Programmiersprache Smalltalk und des Begriffs „object oriented“, definierte ihn im Kontext von Smalltalk folgendermassen:
"1. Alles ist ein Objekt,
2. Objekte kommunizieren durch das Senden und Empfangen von Nachrichten (welche aus Objekten bestehen),
3. Objekte haben ihren eigenen Speicher (strukturiert als Objekte),
4. Jedes Objekt ist die Instanz einer Klasse (welche ein Objekt sein muss),
5. Die Klasse beinhaltet das Verhalten aller ihrer Instanzen (in der Form von Objekten in einer Programmliste),
6. Um eine Programmliste auszuführen, wird die Ausführungskontrolle dem ersten Objekt gegeben und das Verbleibende als dessen Nachricht behandelt" (Alan Kay: The Early History of Smalltalk (1993))
A Kay drückte später seine Unzufriedenheit über den von ihm gewählten Begriff „Objektorientierung“ aus, weil dieser aus seiner Sicht den Kernaspekt des Messaging zu kurz kommen liesse. 2003 gab er folgende Definition von objektorientierter Programmierung:
"OOP bedeutet für mich nur Messaging, lokales Beibehalten und Schützen und Verbergen des Prozesszustands sowie spätestmögliche Bindung aller Dinge."