Was ist das Wesen der „Objektorientierung“? Woher kommt es?

Man kann die Objektorientierung (im Folgenden verwenden wir das Präfix „oo“, jedoch immer mit einem Suffix versehen – etwa „oo-Technologie“ – um Missverständnissen vorzubeugen 😉 als Mainstream unserer Zeit ansehen; zu Deutsch ist es eine Art Geistesströmung, was allerdings weitaus mehr zu bedeuten hat, als nur eine vorübergehende Modeerscheinung oder gar ein Selbstzweck. Was genau dahinter steckt, wollen wir im Folgenden diskutieren; siehe auch FAQ-Artikel „Oo vs. SQL“ oder Sinn und Zweck von objektorientierten Datenbanken.

Noch bis in die 80’er Jahre hinein war die prozedurale Sicht der Dinge vorherrschend in der IT-Welt. Eine prozedurale Abbildung eines Systems (etwa mittels geeigneter Software) orientiert sich an den Funktionen und Prozeduren, die darin ablaufen. So werden einzelne Systemabläufe in Funktionen und Prozeduren zusammengefasst und diese in eine mehr oder weniger strukturierte zeitliche Abfolge gestellt. Es verwundert daher nicht, dass Phrasen wie „function“ oder „procedure“ feste Bestandteile älterer Programmiersprachen, wie z.B. FORTRAN oder PASCAL, sind.

Was ist denn so verkehrt an dieser Sichtweise? Auf den ersten Blick nicht allzu viel, denn schliesslich sind es primär die Abläufe, z.B. in einem produzierenden oder Dienst leistenden Betrieb, denen jede betriebswirtschaftliche Analyse gilt (vgl. transObjects® processPRO). Allerdings schlägt sich jede solche Analyse mit der äusserst unangenehmen Volatilität der Prozessstrukturen herum: Betriebswirtschaftliche Abläufe – oder sagen wir, die Art und Weise der Abarbeitung von betrieblichen Prozessen – unterliegen naturgemäss starken Veränderungen, bedingt etwa durch ständig wechselnde Marktanforderungen, Änderungen im Geschäftsumfeld etc. Auf der anderen Seite sind die grundlegenden betrieblichen Strukturen – etwa Datenstrukturen oder besser, deren Beziehungen zueinander (etwa Hierarchien?!) – doch weitgehend konstant. Im Umkehrschluss müsste es aber heissen, dass eine Software, die sich irgendwie an den Datenstrukturen bzw. deren (hierarchischen) Beziehungen zueinander orientieren würde, wesentlich seltener oder zumindest wesentlich weniger umfangreich zu mutieren sein müsste.

Etwas Ähnliches muss sich seinerzeit Bjarne Stroustrup gedacht haben, als er die als hocheffizient geltende (allerdings prozedurale) Programmiersprache „C“ hernahm und diese zu einem objektorientierten „C“ namens „C++“ erweiterte. Dieser linguistische Bestseller, den man inzwischen als den oo-Klassiker schlechthin ansieht, fand fortan viele Anhänger, bis hin zu den Microsofties, die deren 32-Bit-Betriebssysteme und -Anwendungen ebenfalls in C++ entwickelten und derzeit immer noch entwickeln, auch wenn demnächst Fortentwicklungen von C++ (etwa C#) nach und nach zum Zuge kommen sollten.

Die Erschliessung der oo-Technologie durch den Branchenführer Microsoft, aber auch die Bereitstellung von C++ – Entwicklungswerkzeugen durch diverse Softwarehersteller, setzten den Siegeszug von „oo“ und C++ fort. In den 90’ern wurde das „C++“ zu einem der wichtigsten Qualitätsmerkmale für Software und galt für immer mehr User als Inbegriff der Zukunftssicherheit und moderner Sicht der Dinge. Alles was Rang und Namen hatte, versuchte sich in der oo-Technologie. Dabei taten sich Neuentwicklungen, wie z.B. transObjects®, leichter, während z.B. SAP nur unter hohem Aufwand das rein prozedurale und höchst proprietäre „ABAP“ abzuschütteln suchte. Der Trend hin zu der objektorientierten Sicht der Dinge war jedoch ungebrochen und das ist es immer noch.

Im Jahre 1995 stellten sich die Entwickler der K&S Informatik GmbH die Frage, warum denn eine solch revolutionäre Sicht der Dinge an der Grenze zwischen dem Client und dem Datenbankserver ihre Vorzüge einbüssen muss. Warum muss denn die Ausrichtung nach Datenstrukturen ausgerechnet auf Seiten der Datenbank aufgegeben werden, wo es dort gerade um Datenstrukturen per se geht?

Diese Fragestellungen haben seinerzeit transObjects® die entscheidende Wendung hin zu den objektorientierten Datenbankservern gegeben, so dass wir aus heutiger Sicht etwas pathetisch von der Geburtsstunde der transObjects®-Technologie sprechen können. In der Tat punktet die oo-Technologie nirgendwo sonst so gewaltig, wie eben auf Seiten der Datenbankserver.