Open Source Software
Da ich in meinem Berufsleben ganz erheblich von Open-Source-Projekten und der Unterstützung durch die Entwicklergemeinschaft profitiert habe, habe ich schon früh den Entschluss gefasst, als Dank an die Gemeinschaft einige allgemein verwendbare Komponenten als Open Source zur Verfügung zu stellen.
Die Übersicht über meine Open-Source-Projekte gliedert sich in die Bereiche
und
Im Folgenden wird kurz dargestellt, wie es zur Entwicklung einiger meiner Open Source-Komponenten gekommen ist.
Wie es begann…
In den 1990er Jahren habe ich für die Erstellung von plattform-übergreifenden mehrsprachigen Anwendungen das Zinc Application Framework (ZAF) eingesetzt. ZAF war eine kommerzielle GUI-Bibliothek - zu seiner Zeit durchaus wegweisend, mit Unterstützung für DOS, Windows, Mac und Unix.
In den frühen 2000er Jahren allerdings begann der Stern von ZAF zu sinken, da das Produkt an Professional Software Associates (PSA) verkauft wurde und fortan nur noch für deren spezielle Plattformen gepflegt wurde. Es stellte sich also die Frage, auf welcher Basis die bislang mit ZAF entwickelten Applikationen weitergepflegt werden sollten.
Wie das Beispiel ZAF zeigt, ist ein kommerzieller Software-Anbieter keineswegs eine Garantie für langfristige Produktunterstützung. Aus diesem Grund wurde die Suche nach einem Nachfolgeprodukt für die GUI-Entwicklung auf den Open-Source-Bereich ausgeweitet. Nach gründlicher Recherche und Analyse fiel 2005 die Entscheidung schließlich zugunsten von wxWidgets.
wxWidgets, Datenbanken und Druckausgabe
Nachdem für die Erstellung von Benutzeroberflächen mit wxWidgets eine Lösung gefunden war, stellte sich die Frage, auf welche Bibliotheken für die Datenspeicherung und die Druckausgabe zurückgegriffen werden sollte.
Für die Datenspeicherung war vormals die Ocelot-Datenbankbibliothek, eine auf SQL 1999 basierende Implementierung in Assembler für MS-DOS und Windows, eingesetzt worden. Daher war klar, dass es wieder eine SQL-fähige Bibliothek sein musste. Die Wahl fiel auf SQLite. Allerdings gab es keine spezielle Anbindung für wxWidgets - und das war dann die Geburtsstunde der Komponente wxSQLite3, die von Anbeginn auch die Verschlüsselung der Datenbankdateien beinhaltete, da dies im kommerziellen Umfeld recht häufig zum Schutz der Daten erforderlich ist.
Viele Anwendungen erfordern die Druckausgabe von Ergebnissen. Zu MS-DOS-Zeiten war es noch gang und gäbe, Drucker mit spezifischen Codes direkt anzusteuern. Für moderne plattform-unabhängige Applikationen bedurfte es jedoch einer portablen Lösung. Statt auf in der Regel plattformabhängige Druckeransteuerungen zu bauen, wurde auf die Generierung portabler Dokumente im PDF-Format gesetzt. Dies mündete in der Entwicklung der Komponente wxPdfDocument.
Beide Komponenten, wxSQLite3 und wxPdfDocument stehen seit 2005 als Open Source-Komponenten zur Verfügung und werden seitdem weiterentwickelt.
Diagramme
Für die Ausgabe von Diagrammen unterschiedlichster Art gab es in den frühen 2000er Jahren nur wenige leistungsfähige Alternativen - zumeist kommerziell und teilweise ausgesprochen kostspielig. Aus der Menge hob sich die Bibliothek ChartDirector als extrem flexibel und leistungsfähig, dabei aber von den Kosten her sehr erschwinglich, hervor. Die zunächst nur intern verwendete wxWidgets-Anbindung wurde 2018 als Open-Source-Komponente wxChartDir veröffentlicht.
Auf dem Weg zu einer ernstzunehmenden Alternative ist das Open-Source-Projekt Wisteria Dataviz Library, das seit 2022 in Entwicklung ist und inzwischen schon eine beachtliche Zahl an Diagrammtypen unterstützt.
Ausblick
Neben der Entwicklung von Software-Komponenten bringe ich mich seit ein paar Jahren gelegentlich auch direkt in die Weiterentwiclung von wxWidgets ein - wie z.B. im Bereich Internationalisierung (I18N) mit der Entwicklung der Klasse wxUILocale.
Desweiteren bemühe ich mich im wxWidgets-Entwickler-Forum und in meinem GitHub-Account Fragen zu meinen Komponenten zu beantworten.