Qt Developer Days Europe: Wohin steuert Qt?

Veranstaltungsberichte  –  Kommentare

Mit den Qt Developer Days Europe fand Anfang Oktober in Berlin die größte jährliche Konferenz der Qt-Community statt. Da ihre Vorträge meist von Autoren der Qt-Komponenten gehalten wurden, konnten sich die über 600 Teilnehmer aus erster Hand über den derzeitigen Stand des plattformübergreifenden C++-Frameworks informieren.

Mit 2,7 Millionen Downloads seit dem Release von Qt 5.2 vor knapp einem Jahr sei es eines der verbreitetesten Frameworks für das Erstellen plattformübergreifender Apps – so beurteilte Lars Knoll, CTO der neuen The Qt Company, in seiner Keynote den derzeitigen Status von Qt. Laut einer Studie von Research2Guidance, einem Marktforschungsunternehmen, das sich auf den Markt der mobilen Apps spezialisiert hat, liege es sowohl in Bezug auf Zahl der veröffentlichten Apps als auch deren Qualität auf Platz 1.

Lars Knoll geht in seiner Keynote auf die wachsende Popularität von Qt ein (Abb. 1).

Knoll ging außerdem auf wirtschaftliche Themen ein. Kürzlich hat Digia die Qt-Aktivitäten in die neue Firma The Qt Company ausgelagert, deren Webseite qt.io das Angebot sowohl für Unternehmen als auch die Community bündeln soll. Deren CTO betonte dabei die globale Ausrichtung der Neugründung. Um die Motivation zur kommerziellen Lizenzierung des Frameworks zu erhöhen, werden einige neuere Komponenten unter der LGPLv3 angeboten. Das soll erschweren, dass Firmen – wie schon geschehen – Qt nutzen, ohne die Weiterentwicklung finanziell oder durch Code-Beiträge zu unterstützen.

Unter den IT-Trends hob Knoll die wachsende Bedeutung von Embedded- und mobilen Plattformen sowie die rasant steigende Zahl der Downloads in den App-Stores hervor. Ihnen will man auch in der Qt-Roadmap Rechnung tragen, etwa durch die Unterstützung von Windows RT und Xcode 6 ab Qt 5.4, die verbesserte Kommunikation zwischen Geräten mit verbreiteten Protokollen, mehr Funktionen für 3D-Grafik, Verbesserung der Sicherheit und Cloud-Backends. Letztere werden unter dem Namen Qt Cloud Services angeboten und bestehen derzeit aus den Komponenten Engin.io für Storage, Managed Application Runtime und Managed Web Sockets.

Im Gespräch mit dem Autor wies Knoll darauf hin, dass das Cloud-Angebot auf der Grundlage von Kundenfeedback derzeit noch erweitert werde. Diskutiert werde hier etwa die Unterstützung von Messaging-Protokollen, Private Cloud und die Integration mit Cloud-Frameworks.

Ein weiteres Zukunftsthema ist die Unterstützung neuer Betriebssystemversionen, Plattformen und Compiler. Schließlich verkündete Lars Knoll noch den Fahrplan für die kommenden Releases. Demnach wird Qt 5.4 Ende November erscheinen und das folgende 5.5-Release ist für April 2015 geplant.

Viel Raum erhielten auf der Konferenz die Themen Qt Quick und QML. Die UI-Entwicklung mit Qt Quick gewinnt als Alternative zur Gestaltung von Oberflächen mit Qt Widgets eine wachsende Bedeutung. Die deklarative Qt Modeling Language können auch Designer schnell erlernen. Da sie auch das Einbetten von JavaScript ermöglicht, wurde von den Qt-Entwicklern die JavaScript-Engine V4 als ressourcensparende Alternative zur V8-Engine des Chromium-Projekts entwickelt.

Anwendungen lassen sich so prinzipiell komplett in QML und JavaScript schreiben, wobei sich performancekritische Routinen in C++ auslagern lassen. Als Bindeglied dient dabei das Qt-QML-Modul, das sowohl eine QML- als auch eine C++-API implementiert. Die benötigten UI-Elemente liefern dabei die Qt Quick Controls.

Mit Qt erstellte Oberflächen erfüllen inzwischen sogar die hohen Standards der Musikindustrie, die das plattformübergreifende Framework nutzt, um effizient Anwendungen parallel für Mac OS X und Windows zu entwickeln. Die Firma Native Instruments präsentierte auf ihrem Stand sowohl eine DJ-Hardware mit Embedded Qt als auch eine Desktop-Anwendung, die derzeit nach Qt portiert wird. Gregor Klinke vom Musiksoftwarehersteller Ableton präsentierte seinen Ansatz, komplexe CSS-Oberflächenbeschreibungen in QML zu verwenden.

Mit der kommenden Version 5.4 zieht die Chromium Engine unter dem Namen QWebEngine in Qt ein. Die bisherige Webengine QWebKit wird zwar mindestens bis zu Qt 6 weiter unterstützt, soll jedoch mittelfristig von QWebEngine abgelöst werden. Hauptgrund für den Wechsel ist die Tatsache, dass Chromium mehr Plattformen unterstützt und somit dem plattformübergreifenden Anspruch von Qt besser entspricht als das von Apple entwickelte WebKit. Mit Qt 5.4 wird eine Technology Preview einer ressourcenschonenden Version von QWebView für mobile Plattformen erscheinen. Diese greift auf die Engine der jeweiligen Plattform zurück, also Androids Chromium-Implementierung und Safari, und implementiert darauf eine plattformübergreifende API.

Neu in Qt 5.4 ist auch das Modul QWebChannel, mit dem sich Qt-Objekte nach JavaScript exportieren lassen. Das gewünschte Objekt wird in einem QWebChannel publiziert und steht nach Einbinden von qwebchannel.js im JavaScript-Code zur Verfügung. Diese Brücke zwischen Qt und JavaScript/HTML besteht für QWebEngine, QWebKit, QWebView und jeden Browser, der WebSockets unterstützt. Da QWebChannel auch mit JavaScript-Laufzeitumgebungen wie Node.js funktioniert, ergeben sich neue Möglichkeiten für die Entwicklung effizienter und performanter Backends, bei denen performancekritischer Code in C++ ausgelagert ist.

Die Kombination von QWebEngine und QWebChannel ermöglicht die Entwicklung von Applikationen, bei denen hardwarenaher und performancekritischer Code in C++ und das Frontend in HTML5 und JavaScript implementiert sind. Das ist insbesondere im Embedded-Bereich interessant.