Der Open Source Tech Stack

Aus archium.org
Wechseln zu: Navigation, Suche


Unser Software-Kosmos im Jahr 2020

Tech Stack Definition

Als Technologie Stack bezeichnet man in korrektem Denglisch die Toolbox von Softwareentwicklern.

Warum Open Source?

Der Begriff Tech Stack beschreibt unser Handwerkszeug jedoch nicht ausreichend. In Wahrheit greifen wir nicht in einen "Werkzeugkasten" hinein, vielmehr bewegen wir uns in dem unermesslich weitem Raum der Open-Source-Software – dem Linux Universum.

Anders als proprietäre Lizenzen sind Open Source Lizenzen keiner kommerziellen Verwertung unterworfen. Der Source Code von Open-Source-Programmen ist für jedermann frei verwendbar. Unter "proprietärer Lizenz" versteht man herstellerspezifische Software, deren Source Code nicht frei zugänglich ist. Proprietäre Software bedeutet daher auch immer Abhängigkeit vom Anbieter. Dies geht zwangsläufig zu Lasten der Anpassungsfähigkeit und Langzeitverfügbarkeit der eingesetzten Programme.

PostgreSQL

... ist unbestritten das relationale Open Source Datenbanksystem mit dem höchsten technischen Reife. Es befindet sich im Popularitätsranking schon seit Jahren stabil an Platz 4 hinter Oracle, MySQL und MSQL und im Gegensatz zu den drei davor platzierten Systemen nimmt die Beliebtheit von PostgreSQL unaufhörlich und stetig zu.[1] Und im Gegensatz zu MySQL oder dem davon abstammenden MariaDB haben wir dort mit der eingebetteten Programmiersprache PL/pgSQL (oder wenn dies nicht genügt, mit Python, C u.a.) die Möglichkeit, komplexen Quellcode bereits auf Datenbankebene zu implementieren. Die Performance und Zuverlässigkeit von PostgreSQL sind überragend.
Seit 2008 arbeiten wir mit PostgreSQL. Zu diesem Zeitpunkt leuchteten PostgreSQL und seine Vorgänger bereits mehrere Jahrzehnte.[2] Und seine Weiterentwicklung erfolgt nach wie vor ungebrochen lebhaft. Sehr gute Datenbanken benötigen eine verläßliche Zukunftsprognose![3]

Golang

... hat mittlerweile die größte Gravitation für uns. Wir haben auch viel Source Code mit Python und PHP auf Initiative von Kunden entwickelt.[4] Zwischendrin kam auch Java zum Einsatz, und die Programmiersprache C war zu jeder Zeit nie ganz auszublenden. Seit 2016 arbeiten wir vornehmlich mit Go (Suchmaschinen mögen den Begriff Golang in Kombination mit Source lieber). Go ist als konsequent typsichere Sprache mit besonderem Augenmerk auf nebenläufig Programmierung konzipiert worden und erfreut sich heute einer großen Entwickler -Community und eines außergewöhnlich reichen "Ökosystems" an Libraries und Zusatzsoftware. Neben der Eignung für das "parallel computing" schätzen wir Go auch für seine Fähigkeit, C Source und andere fremde Codes einzubetten. Auf diese Weise können wir z.B. mit Maschinensteuerungen kommunizieren.

Siehe hierzu ausführlich unseren Golang-Spicker!

Go-GUIs mit Qt, Webview, Fyne, u.a.

Go läßt sich mit diversen GUI-Toolkits kombinieren. Wir vervenden es u.a. zusammen mit dem Qt-Framework und als Webserver.

Siehe hierzu ausführlich unseren Go-Qt-Spicker 2020!

Linux

... ist das Zentrum unserer Galaxie, schon seit Mitte der 1990er Jahre. Linux stellt als freies, auf UNIX basierendes Mehrbenutzer-Betriebssystem, nahezu das gesamte Angebot an Open-Source-Software zur Verfügung. Es wird in Distributionen angeboten, deren Repositorien einen gigantischen Fundus an nicht proprietären, sondern unter einer freien Lizenz[5] veröffentlichten Programmen für alle Aufgaben bereit halten. Darin finden sich über einen langen Zeitraum bewährte Tools ebenso, wie experimentelle Entwicklungen mit interessanter Zukunftsprognose.

LaTeX

... eine Software, fast so alt wie der Urknall, sozusagen die kosmische Hintergrundstrahlung unserer Arbeit. Denn aus LaTeX besteht nie das ganze Projekt, aber es gibt uns immer dann eine immens große Freiheit an Darstellungsmöglichkeiten, wenn Vektorgrafiken oder Textsatz aus dem Code heraus generiert werden müssen.LaTeX beherrscht fremde Sprachen und auch schwierige Zeichensätze – sogar Musiknoten.
In Kombination mit den Computersprachen PGF/TikZ erstellen wir damit Vektorgrafiken, Diagramme und sogar Schaltpläne.

MediaWiki

Bleiben wir bei unserer kosmischen Analogie, so ist das MediaWiki in seiner Vielgestalt am ehesten mit einem Gasnebel gleichzusetzen. MediaWiki ist ein auf PHP basierendes, frei verfügbares Content Management-System für kooperativ zu verwaltende Inhalte – ein s.g. Wiki-System. MediaWiki wurde ursprünglich für die freie Enzyklopädie Wikipedia entwickelt. Sehr zahlreiche Extensions erweitern das System zum Universalwerkzeug. Mit Hilfe der Cargo-Extension beispielsweise, können wir selbst PostgreSQL-Datenbanken in das Wiki einbetten. Für den Anwender verschmelzen so die Anwendungsbereiche. Datenbanken und Internetpräsenz werden vereinbar.

WebAssembly, kurz WASM

... WebAssembly ist der jüngste Stern an unserem Firmament. Aber wir sind davon überzeugt, daß er in Kürze auch anderswo sehr hell erstrahlen wird. WebAssembly verwandelt den Browser in eine virtuelle Maschine, die nun den Source nicht mehr aus dem Text interpretiert, sondern im Voraus kompilierten ByteCode ausführt. Die noch sehr junge Entwicklung WebAssembly ist Ende 2019 zum Standard für Webbrowser erklärt worden. WebAssembly wird zunächst JavaScript ergänzen, anschließend wird es eine Entwicklung zur weiteren Optimierung von Browsern anstoßen. WebAssembly ist das missing link zwischen Internetseite und Desktop-App. Mit WebAssembly geht beides in einem!

nutzt WebAssembly für die Gestaltung von Industrievisualisierungen. Im Gegensatz zu konventionellen REST-Anwendungen, bei denen immer das langsame Browser-Frontend in Kombination mit der langsamen Interpretersprache JavaScript das Datenmanagement steuert, drehen wir mit WebAssembly die Prozesskette um. Das viel leistungsstärkere und sicherere Backend steuert über die Kommunikation mit der virtuellen WebAssembly-Maschine die Datenausgabe im Browser-Frontend. Wir vermindern dadurch den von JavaScript verursachten Speicher- und CPU-Resourcenbedarf ganz erheblich und beschränken die Kommunikation zwischen Backend und Frontend auf ein Minimum. Neben den deutlichen Performancegewinnen ist auch ein wesentlich besser geschützter Code eine weitere Folge!

Siehe hierzu ausführlich unseren Go-WASM-Spicker[6]

... Git, Github und der ganze Rest

Zu erwähnen wären hier noch die zahlreichen "vagabundierende Planeten" an Software, die wir für die verschiedensten Aufgaben verwenden. Git (github) beispielsweise, das dürfte heute bei keinem Entwickler fehlen. Und dann benötigen wir oft RawTherapee bei der Bilddigitalisierung oder Hugin für das Stitching. ImageMagick und Argyll-CMS fehlen im Imaging-Workflow ebenfalls nie. Die vielen kleinen Kommandozeilentools, die wir kontinuierlich im Einsatz haben, können hier nicht namentlich erwähnt werden. Sie bilden (nach dieser Definition) unseren Asteoriden-Gürtel.

Anmerkungen

  1. Betrachte die Entwicklung über einen längeren Zeitraum auf https://db-engines.com
  2. https://de.wikipedia.org/wiki/PostgreSQL
  3. https://thenewstack.io/the-slow-climb-of-postgres-and-the-value-of-persistence/
  4. An dieser Stelle möchten wir darauf hinweisen, daß wir auch die von Mozilla geleistete Entwicklung der hochperformanten Sprache Rust aufmerksam verfolgen. Mit Sicherheit wird auch RUST noch bei uns zum Einsatz kommen. Der Source des beliebten Browsers Firefox ist damit geschrieben worden. Zum Zeitpunkt 2020 reicht uns die Verfügbarkeit an Libraries und Schnittstellen für unsere Anwendungen allerdins noch nicht aus.
  5. Es gibt heute eine Vielzahl an Lizenzen für Quellcode. Die GNU General Public License ist hier hervorzuheben. GNU wurde auf Initiative von Richard Stallman hin von der Free Software Foundation (FSF) für das GNU Projekt geschrieben. Der Definition nach sind die kommerziellen Anwendungen dabei gestattet, sofern die Freiheit der Sources und Programme gewahrt bleiben und die Urheberrechte an der Open Source Software nicht verletzt werden.
  6. Mit Source Beispielen für Mozilla / Firefox und Chrome.