Von JavaScript und JSON gelernt
Für den durchschnittlichen Entwickler hat die Einführung von QPA keine große Signifikanz. Ein anderes neues Feature der Plattform fällt hingegen jedem auf: Das an eine Mischung aus JavaScript und JSON (JavaScript Object Notation) erinnernde QML entzweit die Nutzerschaft seit seiner Einführung. Zeitgemäße Benutzerschnittstellen bestehen primär aus grafischen Elementen und Animationen. Die Qt Markup Language kommt dem Trend entgegen – die in JSON geskripteten GUIs lassen sich durch Export aus PhotoShop erstellen.
Auch ist die Syntax wesentlich einfacher als die komplexe Kombination aus XML und C++-Code in Widget-Anwendungen. Designer haben eine realistische Chance, damit zurechtzukommen – das ist ein nicht unerheblicher Vorteil, der die Entwicklung von Programmen wesentlich beschleunigt.
Quasi nebenbei macht QML die Skriptsprache JavaScript zu einem Teil des Qt-Frameworks. Kleinere programmiertechnische Probleme lassen sich dank des integrierten JavaScript-Interpreters direkt in der .qml-Datei lösen. Es ist also nicht nötig, für jeden Farbwechsel in die in C++ gehaltene Logik zu "springen".
Die Mehrheit der bislang besprochenen Features ist allerdings schon in Qt 4.8 enthalten. Qt 5 bringt zusätzlich zum schon bekannten Quick 1.0 eine neue, Qt Quick 2.0 genannte Bibliothek mit. Diese bringt neben einer geänderten Interop-API für C++ folgende neue Features mit:
- Canvas-Steuerelement mit am HTML5-Canvas angelehnter API
- Unterstützung für Shader-Effekte
- Partikeleffekte
- Sprites
- Offline-Storage-API zum Speichern von Daten in JavaScript
- Window-Objekt zum Zugriff auf das "Host-Formular"
Übrigens: QML enthält keine fertigen Steuerelemente. Stattdessen greifen Entwickler auf Komponenten zurück, die sie entweder selbst erstellen oder von anderen Softwarehäusern beziehen. Digia plant, im Laufe der Zeit einige Komponenten mitzuliefern – diese sind aber noch nicht fertig.
Alte Bekannte
Obwohl QML in Qt 5 wesentliche Performancesteigerungen und neue Funktionen erhalten hat, bleiben die bekannten Widgets nach wie vor voll unterstützt. Da die Qt-Quick-Komponenten für den Desktop erst in einigen Monaten Teil der offiziellen Distribution des Frameworks werden, sind Widgets – zumindest am Desktop – nach wie vor "first class citizens" von Qt.
Trotzdem ist Digia bemüht, den Entwicklern den Unterschied zwischen QML und Widget zu verdeutlichen. Deshalb wandern die Widgets aus dem QtGui-Modul in ein eigenes Modul namens Widgets, das in der .pro-Datei mit folgendem Statement einzubinden ist:
QT += widgets
Die Übersiedlung hat den unangenehmen Nebeneffekt, dass sich einige Header-Pfade ändern. Daher ist es unter Umständen notwendig, die Includes zu aktualisieren. In der Quellcode-Distribution findet sich unter qtbase/bin/ ein Skript mit dem Namen fixqt4headers.pl, das automatisierte Abhilfe verspricht.
Krisensicher durch Open Governance
Qt war von Anfang an ein proprietäres Produkt. Da es in Open-Source-Kreisen rasch weite Verbreitung fand, entstand bald Sorge über die Sicherheit des darauf basierenden Codes. Da Trolltech als Unternehmen vom Verkauf von Qt lebte, war nicht davon auszugehen, dass das Framework durch "Missmanagement" vom Markt verschwinden würde.
Das Risiko ging zur damaligen Zeit primär von lizenzrechtlichen Querelen aus. Die Free Qt Foundation löste dieses Problem durch einen Vertrag mit Trolltech: Wenn die Firma die Entwicklung der quelloffenen Version von Qt einstellt (lies: kein Update für sechs Monate), fällt die letzte veröffentlichte Version unter die BSD-Lizenz.
Nach der Übernahme durch Nokia änderte sich die Lage. Für die Finnen war der Verkauf von Qt-Lizenzen kein attraktives Geschäft – die Plattform war primär zur Vereinheitlichung der außer Kontrolle geratenen Betriebssystemvielfalt vorgesehen. Um das Interesse der Community nicht völlig zu verlieren, wurde das Open-Governance-Modell eingeführt. Es sieht vor, dass die Benutzerschaft als Ganzes die Entscheidungen bei Qt trägt – analog zur Symbian Foundation wird das Mitspracherecht durch das Volumen der Beiträge festgelegt (Meritocracy).
Ab sofort kann man sich mit Vorträgen für die neue Konferenz zu Agile ALM, Continuous Delivery und DevOps bewerben.



