Qt (prononcer « cute », comme mignon en anglais), célèbre framework C++ libre multiplate-forme, continue son bonhomme de chemin avec ces deux annonces : un nouveau moteur Javascript et la version alpha de la 5.1 !
NdM : merci à neil pour son journal.
Nouveau moteur JavaScript
Après avoir changé de moteur JavaScript lors du passage à QML 2.0 (inclus dans Qt 5.0), Digia, la société qui soutient et développe Qt, annonce vouloir effectuer un nouveau changement de moteur ! Pour rappel, QML est le langage privilégié pour le futur de Qt, et mêle un aspect déclaratif pour la définition d‘interface graphiques, à un aspect impératif sous forme de code JavaScript. Pour l’instant, Qt se base sur le moteur V8, développé par Google, et dont la vélocité et la stabilité de l’API ont été les principales motivations de son incorporation à Qt.
Mais ce moteur est trop orienté navigateur, et rend complexe la définition d’objets en Qt. Ceux-ci devant être accessibles depuis QML, JavaScript et C++ (sous forme d’objet QObject). De plus l’utilisation de V8 pose différents problèmes, notamment pour le support d’iOS et WinRT (QML ayant vocation à unifier les interfaces graphiques mobile et desktop). Pour l’instant Qt maintient sa propre branche patchée de V8 dans son arbre. Le nouveau projet, commencé du temps de Nokia, fonctionne et porte le nom de v4vm, mais les performances actuelles sont encore très faibles : trois fois plus lents que l’ancien moteur JavaScriptCore (de QML 1.0).
Qt 5.1 en alpha
Digia a aussi annoncé la version beta de Qt 5.1. Cette nouvelle version apporte son lot de nouveautés, en particulier en complétant la bibliothèque QML pour la définition d’interfaces graphiques. En effet, les interfaces à base de widgets ne sont pas disponibles en QML, et les utilisateurs devaient jusqu’alors re-créer leurs propres composants graphiques en se basant sur les quelques éléments disponibles. Il est aussi possible de créer ses propres éléments QML à partir de zéro, soit en les peignant d’abord dans un QPainter, ce qui implique une perte de performance lors de la copie des bitmaps vers OpenGL, soit en définissant ses propres scènes OpenGL, un travail plus que fastidieux.
Avec Qt 5.1, on voit apparaître les Controls QtQuick qui regroupent tous les éléments standards d’une interface graphique habituelle : boutons, labels, barre de menu, barre de progrès, tabs, et un début de composants de texte. Tout ça reste bien moins puissant que l’expérience accumulée dans les widgets standards (le module Qt Widgets), et ceux-ci sont loin d’être dépréciés dans Qt.
Une avancée de Qt 5.1 est le support d’Android, en sus des plates-formes basées sur Linux ou BlackBerry. Ce support est quasi complet, n’omettant que certaines parties du module Multimedia. On peut noter aussi la présence d’un support minimal d’iOS, mais les problèmes du moteur V8 ne permettent pas d’écrire du QML sur cette plate-forme.
On peut aussi noter la sortie de Qt 5.0.2, uniquement des corrections de bugs. Notamment celui empêchant d’utiliser Qt/MinGW sous Windows XP.
Aller plus loin
- Journal à l'origine de la dépêche (97 clics)
- Evolution of the QML engine, part 1 (49 clics)
- Qt 5.1 Alpha Available (52 clics)
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.