# BOOPSI

BOOPSI (Basic Object Oriented Programming System for Intuition) ist ein objektorientiertes Programmiersystem für AmigaOS. Es erweitert die Fensterumgebung von AmigaOS (Intuition) um ein objektorientiertes Subsystem, das eine Hierarchie von Objektklassen ermöglicht. Jede Klasse definiert ein einzelnes GUI-Widget oder Interface-Ereignis. BOOPSI basiert auf den Prinzipien der objektorientierten Programmierung, die bereits im Vorgängersystem TRIPOS verwendet wurden. Dies ermöglichte es Entwicklern, modulare und wiederverwendbare Objekte wie Gadgets und Bilder zu erstellen und zu verwalten, die in grafischen Benutzeroberflächen verwendet werden können.

## Geschichte und Entwicklung

BOOPSI wurde offiziell mit AmigaOS 2.0 im Jahr 1990 eingeführt. Das Ziel war es, eine standardisierte Methode zur Erstellung von GUI-Elementen zu bieten, um Entwicklern die Arbeit zu erleichtern und konsistente Benutzeroberflächen zu schaffen.

### 1990 (AmigaOS 2.0)

    BOOPSI wird eingeführt, um die Erstellung von GUI-Elementen zu standardisieren und zu erleichtern. Es ermöglicht eine modulare und objektorientierte Entwicklung von Benutzeroberflächen, was die Flexibilität und Wiederverwendbarkeit von Code erhöht.

### 1992 (AmigaOS 3.0)

    Zusätzliche Funktionen und Verbesserungen werden eingeführt, wie die Unterstützung für komplexere Objekte und verbesserte Ereignissteuerung. Diese Erweiterungen ermöglichen es Entwicklern, noch leistungsfähigere und interaktive Benutzeroberflächen zu erstellen.

### 1994 (AmigaOS 3.1)

    Stabilität und Performance des BOOPSI-Systems werden weiter verbessert. Die Einführung neuer Klassen und Erweiterungen bestehender Klassen erhöht die Möglichkeiten zur Gestaltung von Benutzeroberflächen.

### 1999 (AmigaOS 3.5)

    Erweiterungen umfassen die Unterstützung neuer GUI-Elemente und verbesserte Interoperabilität mit anderen Systemkomponenten. Dies erleichtert die Integration von BOOPSI in bestehende Anwendungen und fördert die Entwicklung modernerer Benutzeroberflächen.

### 2000 (AmigaOS 3.9)

    Weitere Optimierungen und neue Features, wie zusätzliche Widgets und verbesserte Anpassungsoptionen, werden eingeführt. Diese Verbesserungen machen BOOPSI noch vielseitiger und anpassungsfähiger für unterschiedliche Anwendungsszenarien.

### 2004 (AmigaOS 4.0)

    Eine umfassende Überarbeitung von BOOPSI wird vorgenommen, um es besser mit der neuen PowerPC-Architektur zu integrieren. Dies beinhaltet die Einführung von 64-Bit-Unterstützung und Verbesserungen in der Speicherverwaltung, die die Performance und Effizienz des Systems erhöhen.
Diese kontinuierlichen Weiterentwicklungen spiegeln das Bestreben wider, BOOPSI zu einem leistungsstarken und flexiblen Werkzeug für die Entwicklung von grafischen Benutzeroberflächen zu machen. Jede Version brachte spezifische Verbesserungen, um die Funktionalität, Benutzerfreundlichkeit und Integration von BOOPSI zu optimieren. Dies trug dazu bei, dass BOOPSI zu einem beliebten Werkzeug für Entwickler wurde, die benutzerdefinierte und standardisierte grafische Benutzeroberflächen erstellen wollten. Beispiele für vollständige Widget-Toolkits, die auf BOOPSI aufgebaut sind, sind das Magic User Interface (MUI) und ReAction. Beide Toolkits wurden bei Amiga-Softwareprogrammierern populär, um grafische Benutzeroberflächen zu erstellen und zu pflegen.
BOOPSI basiert auf den Prinzipien der objektorientierten Programmierung, die bereits in TRIPOS verwendet wurden. Diese Prinzipien ermöglichten es Entwicklern, modulare und wiederverwendbare Objekte wie Gadgets und Bilder zu erstellen und zu verwalten, die in grafischen Benutzeroberflächen verwendet werden konnten. Die objektorientierte Herangehensweise beeinflusste auch andere Komponenten von AmigaOS, wie zum Beispiel die DataTypes-Architektur, die ebenfalls von den Vorteilen der OOP-Prinzipien profitierte.

## Vorteile und Funktionen

Die objektorientierte Gestaltung von BOOPSI bringt viele Vorteile mit sich:
* Modularität: Durch die Verwendung von Klassen und Objekten können Entwickler ihre Programme in kleinere, unabhängig funktionierende Module unterteilen. Dies erleichtert die Wartung und Erweiterung der Software.
* Wiederverwendbarkeit: Einmal geschriebene Klassen und Objekte können in verschiedenen Programmen oder Projekten wiederverwendet werden. Dies spart Zeit und Ressourcen und sorgt für konsistenten Code.
* Erweiterbarkeit: Neue Funktionen können einfach durch das Hinzufügen neuer Klassen oder das Erweitern vorhandener Klassen implementiert werden, ohne das bestehende System zu stören.
* Kapselung: Daten und Funktionen werden innerhalb von Klassen und Objekten gekapselt. Dies schützt die Daten vor unbeabsichtigten Änderungen und vereinfacht die Fehlerbehebung.
* Polymorphismus: Durch Polymorphismus können verschiedene Objekte auf die gleiche Weise behandelt werden, auch wenn sie intern unterschiedlich implementiert sind. Dies vereinfacht die Interaktion zwischen verschiedenen Komponenten des Systems.
* Einfache Objektverknüpfung: Wie bereits erwähnt, können Objekte leicht miteinander verknüpft werden. Ein Beispiel ist die Verknüpfung eines numerischen Eingabefelds mit einem Schieberegler, wobei Änderungen im Schieberegler automatisch im Eingabefeld reflektiert werden.
* Standardisierung: BOOPSI bietet eine standardisierte Methode zur Erstellung von GUI-Elementen, was zu einheitlicheren und konsistenteren Benutzeroberflächen führt.
* Effizienz: Die objektorientierte Struktur von BOOPSI ermöglicht eine effiziente Nutzung von Systemressourcen, da nur die benötigten Objekte instanziiert und verwendet werden.

## Technische Details

BOOPSI ermöglicht eine hierarchische Organisation von GUI-Widgets. Dies bedeutet, dass eine Basisklasse von Objekten allgemeine Funktionen bereitstellen kann, während spezialisierte Klassen erweiterte Funktionen hinzufügen können. Diese Struktur macht es einfacher, wiederverwendbare Komponenten zu erstellen und die Entwicklung von Anwendungen zu beschleunigen.

## Nutzung und Verbreitung

BOOPSI fand breite Anwendung in vielen AmigaOS-Anwendungen. Entwickler schätzten die Flexibilität und die Möglichkeit, komplexe Benutzeroberflächen mit minimalem Aufwand zu erstellen. Hier sind einige Beispiele für die Nutzung von BOOPSI:
* Magic User Interface (MUI): Ein flexibles und weit verbreitetes Toolkit, das die Erstellung und Anpassung von GUI-Elementen erleichtert.
* ReAction: Ein weiteres beliebtes Toolkit, das speziell für die Nutzung von BOOPSI entwickelt wurde und in vielen AmigaOS-Anwendungen verwendet wird.
* Dopus (Directory Opus): Ein leistungsfähiger Dateimanager, der BOOPSI für die Erstellung seiner benutzerdefinierten Oberfläche nutzt.
* AmigaAMP: Ein beliebter Musik-Player, der BOOPSI verwendet, um seine Benutzeroberfläche zu gestalten.
* IBrowse: Ein Webbrowser, der BOOPSI für die Erstellung seiner GUI-Elemente verwendet.
* AWeb: Ein weiterer Webbrowser, der BOOPSI nutzt, um eine benutzerfreundliche Oberfläche bereitzustellen.
* MUIbase: Ein Datenbankmanagementsystem, das BOOPSI für seine grafische Benutzeroberfläche verwendet.
* YAM (Yet Another Mailer): Ein E-Mail-Client, der BOOPSI verwendet, um seine Benutzeroberfläche zu gestalten.
Diese Beispiele zeigen, dass BOOPSI in einer Vielzahl von Anwendungen eingesetzt wurde, von Dateimanagern über Musik-Player bis hin zu Webbrowsern und E-Mail-Clients. Die breite Anwendung von BOOPSI unterstreicht seine Bedeutung und Flexibilität für die Entwicklung von grafischen Benutzeroberflächen im AmigaOS.

## Weiterführende Links

* BOOPSI - Object Oriented Intuition