Es gehört zum einmaligen Konzept des StarOffice, dass dieses für die unterschiedlichsten Rechner-Plattformen zur Verfügung steht: klassische PC-Betriebssysteme wie Windows (in diversen Versionen) und OS/2 gehören ebenso dazu, wie UNIX-Workstations, das freie Linux und neuerdings auch NCs (Network Computers), die auf Basis von Java funktionieren. Diese Plattformunabhängigkeit erschöpft sich jedoch längst nicht im Datenaustausch und einheitlicher Bedienung! Das Konzept wurde, so weit dies möglich war, auch auf die Programmiersprache StarBasic ausgeweitet. Damit bietet sich das SO als integriertes, plattformübergreifendes Programmentwicklungs-, Dokumentations- und generelles Arbeits- und Kommunikationswerkzeug an ;-).
Leider sind die unterstützten Betriebssysteme zu unterschiedlich, als dass die gesamte von StarBasic zur Verfügung gestellte Funktionalität überall hätte einheitlich integriert werden können. Dies wäre zwangsläufig mit Abstrichen beim einen oder anderen System verbunden gewesen. So wird nun halt so viel wie möglich unterstützt, was aber leider die Gefahr von inkompatiblen Makros zur Folge hat. Im Folgenden möchte ich nun auf einige kritische Bereiche eingehen, welche die plattformunabhängige Programmierung mit StarBasic verhindern oder zumindest erschweren können.
Grundsätzlich kann gesagt werden, dass die Anzahl der
Problemfälle mit der Nähe zum verwendeten Betriebssystem
zunimmt. So ist in der Referenz zu StarBasic zwar noch dokumentiert,
wie Funktionen in DLLs (Dynamic Linked Libraries) aufgerufen werden
können. Doch dass dies natürlich in einem UNIX-System nicht
funktioniert, dürfte jedem klar sein, der sich schon mal damit
auseinandergesetzt hat. Es empfiehlt sich also, gänzlich auf
solche Aufrufe zu verzichten, wenn das Anwendungsgebiet nicht schon
von allem Anfang an auf Windows beschränkt sein soll! Dass
bereits der Shell()-Befehl
auf Unix-Rechnern nicht mehr läuft, ist aber schon etwas schade!
In eine ganz ähnliche Richtung gehen alle Funktionalitäten, die Geräte ansprechen: Dateisystem, Bildschirm- und Druckausgabe.
Dateisystem: Die Probleme beginnen hier bereits bei der Benennung von Dateipfaden. Während sich DOS-Anwender jahrelang mit dem Backslash abmühten, um Pfade wie «D:\Daten\Jahresbericht 1997.sdw» hinzukriegen, werden in UNIX-Umgebungen nur die einfacheren vorwärts geneigten Striche verwendet: «/users/herger/Daten/Jahresbericht 1997.sdw». Ob beim Mac überhaupt offiziell eine solche Notation existiert, entzieht sich meinen Kenntnissen. Im SO werden hier auf alle Fälle Doppelpunkte verwendet... Diesem Thema widmet sich der Abschnitt «Laufwerks-Zugriffe».
Um die Problematik der Bildschirmansteuerung zu erkennen, muss man nicht einmal plattformübergreifend arbeiten: wer schon mal unter Windows «Grosse Schriften» verwendet hat, der kennt das Übel der unbrauchbaren Dialoge, wenn die Knöpfe plötzlich für den enthaltenen Text zu klein werden... Hier gibt's viel Handlungsbedarf, der in «GUI-unabhängige Dialoge» beschrieben ist.
Ob und allenfalls wie die Druck-Ausgabe und etwa Zugriffe auf die serielle Schnittstelle Probleme bereiten, muss ich erst abklären. Sie wären dann ein weiteres Kapitel namens «Direkte Datei- und Geräte-Zugriffe».