C++: Das Qt Framework ist 20 Jahre alt

Wer C++ zur Cross-Platform-Entwicklung nutzt, stößt für gewöhnlich über kurz oder lang auf Qt. Die C++-Klassenbibliothek feiert diese Woche ihren zwanzigsten Geburtstag und ist trotz turbulenter Geschichte ein verlässlicher Partner.

In Pocket speichern vorlesen Druckansicht 86 Kommentare lesen
20 Jahre Qt
Lesezeit: 4 Min.
Von
  • Tam Hanna

Die Entwicklung von Qt begann schon 1992, aber am 20. Mai 1995 sendete Lars Wirzenius eine E-Mail mit dem Betreff "Beta of Motif-like C++ library available" an die comp.os.linux.announce-Mailingliste. Darin fand sich folgendes Codesnippet, das auch zwanzig Jahre nach der Erstauslieferung vielen Qt-Entwicklern geläufig sein dürfte:

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

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

Diese Ankündigung von Qt 0.90 gilt als Geburtsstunde der auch heute noch populären C++-Klassenbibliothek.

Anfangs beschränkten sich die Entwickler darauf, Programmierern das langwierige Hantieren mit dem X-Server zu ersparen. Als Trolltech, das einstige Unternehmen hinter Qt, gründet wurde, verschrieben sich die Entwickler einer relativ restriktiven Lizenzpolitik, bei der die Firma zwar die Bibliothek Open-Source-Entwicklern kostenlos zur Verfügung stellte, im kommerziellen Umfeld und bei Windows-Nutzern aber Geld verlangte. Bei der ab 2001 verfügbaren Portierung auf Mac OS X setzte die damalige Firma hinter Qt, Trolltech, auf eine ähnliche Vorgehensweise: eine quelloffene Variante folgte erst 2003.

Das verbreitete Desktopsystem KDE, gegründet, 1996, galt dann schon bald als Referenzanwendung für Qt. Um die Verfügbarkeit einer quelloffenen Variante besorgte Entwickler gründeten die Free Qt Foundation, die die ewige Bereitstellung einer quelloffenen Version des Produkts sicherstellen wollte. Der Vertrag zwischen den KDE-Entwicklern und Trolltech berechtigte Erstere zum Ausliefern einer BSD-Variante von Qt, wenn Trolltech länger als zwölf Monate kein Update der quelloffenen Version vornehme.

Mit der Version 2.0 ergänzte Trolltech außerdem die eigene quelloffene Q Public License (QPL), die aber die Free Software Foundation als inkompatibel zur GPL einstufte. Das führte letztlich dazu, dass Trolltech von 2000 an mit der Aufnahme der GPL eine duale Lizenzpolitik verfolgte. Diese bedingte, dass sich Open-Source-Entwickler für eine der beiden Lizenzen entscheiden und ihr dann folgen mussten. Auch die nächste Weiterentwicklung der GNU General Public License (2005: GPLv2) gingen die Qt-Entwickler mit.

Nach der Übernahme von Trolltech durch Nokia im Jahr 2008 beschloss der neue Besitzer, die Software dann unter der GPLv3 beziehungsweise der LGPLv2.1 als Open Source bereitzustellen. Der neue Besitzer sah in Qt eine Möglichkeit zur Vereinheitlichung des Betriebssystemchaos: Das Anbieten von drei verschiedenen Plattformen wird in dem Moment zum Nichtproblem, wenn Entwickler alle Betriebssysteme mit einer Codebasis bedienen. Nach dem Eingang der Partnerschaft mit Microsoft wurden die Qt-Assets – mit enormen Verlusten – an das Beratungsunternehmen Digia weiterverkauft. Seit dem derzeit aktuellen Qt 5.4 kann man übrigens die LGPLv3 alternativ zur LGPLv2.1 und der mit Qt Enterprise ausgegebenen kommerziellen Lizenz nutzen. Die GPL ist so entfallen.

Apples iPhone sorgte dafür, dass Benutzer Wert auf aufwendige Animationen legen. Das QtGui-Modul war dieser neuen Situation eher schlecht als recht gewachsen – als Lösung avisierte man ein auf JavaScript basierendes GUI-Framework.

Die Erleichterung von Portierungen war ein weiteres Designziel: Die mit Qt 4.7 eingeführte QML (Qt Markup Language) beschränkt sich auf das Bereitstellen grafischer Primitiven. Steuerelemente entstehen durch von Drittanbietern realisierte Komponenten. Dank der exzellenten Einbindung in den C++-Kern konnte QML die anfänglichen Vorbehalte gegen JavaScript rasch überwinden. Wer Qt programmiert, sollte sich demnach mit dem Framework auseinandersetzen, zumal sich Qt trotz aller lizenzrechtlichen Wirren als verlässlicher Partner etabliert: Es gibt kaum ein Betriebssystem, das sich damit nicht ansprechen lässt.

Siehe dazu auf heise Developer:

(ane)