Ada-Klassenbibliothek für RISC OS

Einführung

Ada 95 gehört meiner Ansicht nach zu den interessantesten Programmiersprachen der dritten Generation. Die Sprache zeichnet sich aus durch strenge Typbindung, exakte Spezifikation und Standardisierung sowie einer Vielzahl an teilweise einzigartigen Features.

Unter RISC OS führt Ada ein Schattendasein. Hauptsächlich deshalb, weil zwar ein Compiler verfügbar ist, dieser aber lange Zeit wegen fehlender Rechnerresourcen nicht sinnvoll einsetzbar war. Zudem fehlten Bibliotheken für den Zugriff auf RISC OS vollständig.

Da das aber nicht so bleiben soll, schwirrten den Ada-Anhängern auf der RISC OS-Plattform schon länger einige interessante Ideen durch den Kopf, die allerdings aus Zeitmangel nie realisiert wurden.

Einen gewissen Schub gab es dann, als CDBurn in Ada implementiert wurde - allerdings war die eigens dafür geschriebene Bibliothek weder umfangreich noch sonderlich durchdacht und schon gar nicht objektorientiert.

Um diesen Mangel aus der Welt zu schaffen, wurde Mitte 1999 endlich das Projekt "Ada-Klassenbibliothek für RISC OS" aus der Taufe gehoben. Bislang gibt es drei aktive Mitarbeiter:

Plan

Im Moment ist ein Teil der Designphase bereits abgeschlossen und die Implementierung dieses Teils hat begonnen.

Die Funkionalität für die erste Stufe wurde folgendermaßen festgelegt:

Endziel ist die Entwicklung einer Integrierten Entwicklungsumgebung mit Editor, GUI-Builder, Projektverwaltung, Debugger usw...das ist aber noch Zukunftsmusik. Die Klassenbibliothek ist der erste Schritt.

Umfang

Aufwandsschätzungen wurden bislang nicht vorgenommen. Allerdings besteht weitgehender Konsens, dass die bisher angedachte Funktionalität "gut implementierbar" ist, was einen Umfang von etwa 6 Monaten Entwicklungsdauer. So grob. Pi mal Daumen.

Die Perfektionierung mit integrierter Entwicklungsumgebung und GUI-Builder kann natürlich beliebig lange dauern, so dass ein Entwicklungsschwerpunkt auf der Nutzbarkeit der Bibliothek mit vorhandenen Werkzeugen lag (Text- und Templateeditor).

Philosophie

AdaLib ist als Klassenbibliothek gedacht, soll also einen objektorientierten Ansatz verfolgen. Allerdings wurde die OO-Reinheit nicht als Entwicklungspriorität aufgefaßt, sondern es wurde ein eher pragmatischer Ansatz gewählt. So ist beispielsweise die Nutzung von Callbacks in der reinen Lehre sicherlich nicht vorgesehen, sondern es wäre ein polymorphistischer Ansatz mit Dispatching gewählt worden. Da dies jedoch für den Nutzer der Library in der Mehrzahl der Fälle einen implementatorischen Mehraufwand bedeutet hätte, wurden Callbacks als pragmatische Lösung gewählt.

Hilfreich bei diesem Ansatz ist die Multiparadigmenfähigkeit von Ada 95. OO-Konzepte sind sehr schön und elegant mit "klassischen Konzepten" integrierbar.

History

Die Idee einer RISC OS-Library für Ada tauchte zum ersten Mal auf, als Christoph Schemainda und ich 1996 im Rahmen unseres Informatik-Studiums an einem Fachpraktikum teilnahmen, welches als Ziel die Implementierung eines Terminkalenders nach Software Engineering-Gesichtspunkten hatte. Vorgeschriebene Implementierungssprache war dabei Ada, für das Frontend unter XWindow wurde Tcl/Tk verwendet. Etwas später wurde GNAT 3.03 von Pete Burwood auf RISC OS portiert, und somit waren alle Voraussetzungen erfüllt, nachdem uns das Fachpraktikum zu wahren Ada-Fans gemacht hatte.

Als Basis für die Implementierung einer Ada-Library war ursprünglich die Toolbox vorgesehen, da diese damals als attraktive Entwicklungsmöglichkeit angesehen wurde. Im Laufe der Zeit stellte sich aber heraus, dass Acorn die Toolbox-Entwicklung nur halbherzig vorantrieb, und dass viele Bugs zu lange existierten. Zudem hätte eine Beschränkung auf die Toolbox erfordert, dass jeder Benutzer der Ada-Library gleichzeitig auch Besitzer von Acorn C/C++ Release 5 war, da es Acorn nicht für nötig gehalten hatte, die Toolbox und die zugehörigen Tools wie ResEd, dem Resourcen-Editor, frei oder zumindest gegen eine angemessene Gebühr verfügbar zu machen.

Im Nachhinein kann man also die Verzögerung bis 1999 durchaus als positiven Aspekt ansehen, da dadurch die Toolbox-Variante noch unattraktiver wurde...

Anno 1997 gab es schon eine erste Ada-Library, die zur Entwicklung von CDBurn implementiert wurde. Allerdings würde ich niemandem empfehlen, eine Neuentwicklung auf Basis dieser Library zu starten - zwar funktioniert sie einwandfrei und bietet auch ausreichend Features, um ein komplettes WIMP-Programm auf die Beine zu stellen, aber sie ist weit davon entfernt, "schön" zu sein.
 


Home © 1999-2001 Steffen Huber, steffen@huber-net.de

Valid HTML 4.01!