Qt wird niedliche 25 Jahre alt

Am 20. Mai 1995 veröffentlichte das Unternehmen Trolltech Qt 0.9. Damit trat das Framework seinen Siegeszug an, der jedoch immer wieder auf Widerstände stieß.

Lesezeit: 3 Min.
In Pocket speichern
vorlesen Druckansicht Kommentare lesen 68 Beiträge

(Bild: Shutterstock)

Von

Das genaue Geburtsdatum einer Software lässt sich oft schwer bestimmen. Bei Qt ist der 20. Mai 1995 zumindest der Tag, an dem die C++ Library das Licht der Welt erblickte. Davor gingen die Eltern vier Jahre mit dem Projekt schwanger: Haavard Nord und Eirik Chambe-Eng starteten die Arbeiten an Qt bereits 1991. Später gründeten sie Quasar Technologies, das kurz danach Troll Tech und letztlich Trolltech hieß.

Jenes Unternehmen veröffentlichte schließlich vor genau fünfundzwanzig Jahren Qt 0.9. Für seinen Namen standen dem Framework zwei Toolkits Pate: Emacs und Xt. Nord fand den Buchstaben Q in seinem Emacs besonders hübsch anzusehen, und das X-Toolkit steuerte den kleinen Buchstaben t bei. Ausgesprochen klingt der Name wie das englische Wort "cute", das einerseits niedlich und andererseits schlau bedeutet.

Seine Eltern legten Qt seinerzeit mit der Geburtsanzeige in Form der Ankündigungsmail ein Hello-World-Beispiel in die Wiege:

#include <qmsgbox.h>
#include <qapp.h>

int main( int argc, char **argv )
{
  QApplication a( argc, argv );
  return QMessageBox::message( "Attention", "Hello, world!" );
}

Das Sorgerecht für Qt wanderte 2008 nach Finnland: Nokia übernahm Trolltech und taufte die Software zu Qt Software beziehungsweise Qt Development Framework um. Der Mobilfunkspezialist nutzte das Framework maßgeblich für das eigene Betriebssytem Symbian. 2011 verkaufte es den kommerziell lizenzierten Part des Frameworks an Digia, das schließlich mit der Qt Company ein eigenständiges Tochterunternehmen gründete. Letzteres hält bis heute die Fäden in der Hand.

Bereits in den ersten Jahren traten Erziehungsprobleme bei der Vergabe der Lizenzen rund um Qt auf, die bis heute immer wieder das Leben des Frameworks bestimmten und bestimmen. Zum Start wählten die Eltern die FreeQt License, die Anwendern zwar Einblick in den Sourcecode genehmigte, aber weder eine freie noch eine Open-Source-Lizenz war. Bei der Veröffentlichung von Version 2.0 wechselten die Entwickler 1999 auf die Q Public License (QPL).

Seinen langfristigen Erfolg hat Qt zu einem guten Teil der Desktopumgebung KDE (K Desktop Environment) zu verdanken, die das Framework maßgeblich einsetzt. Ebendiese Verbindung sorgte aber auch für Diskussionen, als KDE Ende der neunziger seinen Siegeszug als Standarddesktop für Linux begann. Dass Qt als wesentlicher Bestandteil des Desktops unter der Kontrolle eines kommzeriellen Anbieters stand, bereitete der Open-Source-Gemeinschaft durchaus Sorge.

Der Sorgerechtsstreit brachte eine Klausel hervor: Sollte Trolltech zwölf Monate keine Updates unter Open-Source-Lizenz für Qt bereitstellen, darf die KDE Free Qt Foundation die letzte verfügbare Variante unter BSD-Lizenz freigeben.

Die Zwölfmonatsfrist spielt auch in den jüngsten Turbulenzen um die Open-Source-Strategie eine Rolle: KDE-Entwickler Olaf-Schmidt-Wischhöfer hat über Verhandlungen zwischen der KDE Free Qt Foundation und der Qt Company berichtet, nach der Letztere harte Einschnitte für den Open-Source-Bereich erwäge: Kommende Qt-Versionen sollen demnach die ersten zwölf Monate kommerziellen Anwendern vorbehalten sein. Zwar solle es weiterhin Open-Source-Releases geben, aber mit einem Jahr Verspätung.

Der Weg der Lizenzierung wurde bereits Anfang des Jahrtausends durchaus verwirrend mit einer doppelten Lizenzierung unter QPL und der GPL, wobei Letztere zunächst nicht für macOS und Windows galt, im Lauf der Zeit aber auch für Apples und Microsofts Betriebssystem nachgereicht wurde. 2007 folgten Lizenzen, die auch das Veröffentlichen von Software, die auf die GPL-lizenzierte Variante von Qt setzt, unter einer nicht-GPL-kompatiblen-Lizenz zu veröffentlichen.

Auf technischer Seite konnte und kann Qt in vielen Bereichen überzeugen. Die Widgets nehmen C++-Entwicklern Standardaufgaben ab und vereinfachen vor allem das Gestalten von UIs über standardisierte Elemente. Dass das Framework plattformübergreifend ausgelegt ist, vereinfacht die Cross-Plattform-Entwicklung mit Qt. Neben Linux, Windows und macOS lässt sich die Library unter Android, iOS und auf Embedded-Systemen verwenden.

Das eigentliche Framework sollte planmäßig bereits vor dem fünfundzwanzigsten Geburtstag in Version 5.15 erscheinen, verzögert sich aber wohl noch bis Ende Mai. Um die Library herum hat sich ein wachsendes Ökosystem etabliert: Qt Creator ist eine Entwicklungsumgebung, die primär, aber nicht nur auf C++-Code mit Qt-Integration zielt. Das Qt Design Studio baut auf Qt Creator auf, ist aber weniger auf Entwickler, sondern mehr auf Grafiker und Designer zugeschnitten.

Auf spezielle vertikale Bereiche sind Qt for Automation und Qt for Automotive ausgerichtet. Der jüngste Zuwachs der Familie zielt auf den Embedded-Bereich: Das Ende 2019 veröffentlichte Qt for MCUs ist ein Grafikframework, mit dem sich Anwendungen erstellen lassen, die direkt auf dem Mikrocontroller ohne Betriebssystemschicht laufen.

Daneben gibt es einige Werkzeuge von Drittanbietern, die auf Qt setzen, darunter das Webframework Cutelyst, das sich am Perl-Vorbild Catalyst orientiert, und die Cross-Plattform-Engine Felgo.

Qt 5.15 läutet das Ende der 5.x-Serie ein. Ende April veröffentlichte die Qt Company die Roadmap für die sechste Hauptversion des Frameworks, die am 1. Dezember erscheinen soll. Gleichzeitig markiert das aktuelle Release eine weitere Zäsur, die zu einer stärkeren Diskrepanz zwischen der kommerziellen und der Open-Source-Variante führt: Erstmals gilt der Long-term Support (LTS) ausschließlich für die kommerzielle Version, wie die Qt Company im Januar angekündigt hatte.

Insgesamt zeichnet sich Qt durch langlebige Versionen aus: Während für Java inzwischen im Sechsmonatstakt neue Hauptversionen erscheinen, stammt Qt 5.0.0 aus dem Jahr 2012. Qt 6 wird einige Breaking Changes mitbringen, die auf dem Weg zu maßgeblichen Änderungen und Ergänzungen unabdingbar sind. Bereits im August letzten Jahres hatte Lars Knoll, seines Zeichens Chief Maintainer und CTO der Qt Company, die Pläne für die kommende Hauptversion veröffentlicht.

Unter anderem wird die Skritsprache QML (Qt Meta-object Language) zahlreiche Änderungen mitbringen, allen voran eine starke Typisierung. Eine Anbindung an JavaScript ist als optionales Feature vorgesehen, und die Integration von WebAssembly als Zielplattform will die Qt Company weiterentwickeln. Unter der Haube wartet ein neuer Layer für 3D-Grafik, der Qt von der Abhängigkeit zu OpenGL löst und die Anbindung an Vulkan, Direct3D und Metal ermöglicht. Doch bis es soweit ist, werden in den kommenden Monaten einige Alpha- und Betaversionen die nächste Entwicklungsstufe des Frameworks vorbereiten.

Derweil sagt heise Developer: Herzlichen Glückwunsch zum 25. Geburtstag! May qt stay cute. (rme)