Orientieren Sie sich am Objekt!

Wenn Sie über Programmiererfahrung mit früheren linearen Programmiersprache verfügen – BASIC, PASCAL, wasauchimmer – und auf Xojo umlernen möchten, ist eine der größten Hürden vermutlich, sich auf die Objektorientiertheit umzustellen. Mir zumindest ging es so.

Früher war das ja so: Ein Programm begann am Anfang des Codes, wühlte sich durch, verzweigte mal hier, drehte ein paar Schleifen mal dort, und kam am Ende unten an. Grob gesprochen zumindest. Wenn Sie das auf heutige grafische Betriebssysteme übertragen wollten, wäre der Aufwand enorm: In einer Dauerschleife müssten Sie die Position des Mauszeigers abfragen. Bei Klicks bestimmen, wo er steht, um entsprechend dem darunterliegenden Objekt, das Sie erst einmal bestimmen müssten, zu verzweigen. Zugleich müssten Sie Tastatureingaben abfragen, Ports, Anfragen anderer Programme – das wäre ein enormer Verwaltungsaufwand!

Stattdessen läuft es heute so: Jedes Objekt ist auch wirklich ein eigenständiges Objekt. Es kommuniziert mit anderen Objekten über Events – Systemmitteilungen. Bemerkt ein Button, dass der Mauszeiger über ihm steht, sendet er einfach eine Nachricht aus, dass dem so ist. Er bemerkt dies, weil das System ihm eine entsprechende Nachricht sendet – er selbst ist ruhig, bis er über einen Event aktiviert wird. Wenn sein Programmcode ihm vorgibt, in diesem Fall sein Aussehen zu ändern, dann macht er das – eigenständig, weil es dem Objekt (bzw. seiner Klasse) so beigebracht wurde. Man beschränkt sich bei der objektorientierten Programmierung daher viel eher auf das Abfragen von Events und die Aussendung von Mitteilungen an andere Objekte, als sich um die dahinterstehenden dauernden Beobachtungen von Benutzer- und Systemveränderungen zu scheren. Das kann das Betriebssystem viel besser – das wurde in vielen Jahren Arbeit daraufhin optimiert.

Schauen Sie sich einmal irgendein Simulationsspiel an. Betrachten Sie die herumwuselnden Spielfiguren. Wenn es ein großes Steuerprogramm wie in alten Zeiten gäbe, das sämtliche Bewegungen koordiniert: Es wäre mächtig komplex, oder? Stellen sie sich stattdessen vor, dass jede Spielfigur ein eigenständiges Objekt im Speicher Ihres Rechners ist. Es hat Methoden, um herauszufinden, was es tun soll. Es hat Methoden, um dies umzusetzen. Es hat Methoden, um der Grafikausgaberoutine zu sagen, wie es gerade aussieht. Das ist sehr viel eleganter, oder? Und dies hat auch dafür gesorgt, dass gerade Spiele heute so schnell funktionieren und so viel gleichzeitig bearbeiten können: Die Grafikelemente sind oftmals solche Objekte im Speicher der Grafikkarte, die eigenständig agieren. Die GPU kann das in vielen Fällen sehr viel schneller als die CPU. Und, nebenbei gesagt: Das ist in Xojo auch möglich. Über OpenGL. Und macht Spiele in Xojo durchaus möglich, nur eben noch nicht in Metal oder mit SpriteKit. Um mein Vorwort aufzugreifen.

Ach so: Das soll nicht heißen, dass Objektorientiertheit die einzig denkbare Programmiermethode heute ist. Aber es ist eine sehr gut funktionierende.
Wenn Ihnen die Umstellung noch Probleme bereitet: Das ging nach meiner Erfahrung den meisten so. Aber genauso erfahrungsgemäßig schnackelt es irgendwann, und dann stehen alle Wege offen.

Viel Glück!

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s