À proximité de Noël mais aussi d’une nouvelle fin du monde, Digia dépose un gros cadeau sous le sapin : Qt 5. Pour rappel, Qt est le standard de facto pour les interfaces graphiques en C++, mais il fournit également un bon nombre d’autres fonctionnalités (comme le support de WebKit, pour afficher des pages Web, des fonctionnalités multimédia, de réseau, de script, des interfaces déclaratives avec Qt Quick, etc., sans oublier l’EDI Qt Creator). Pour ceux qui en suivent l’actualité, il est également important de noter qu’il s’agit de la première version majeure depuis que Trolltech, la société l’ayant créé, a été rachetée, d’abord par Nokia, puis par Digia.
Fonctionnalités majeures
Cette version est disponible comme un paquet de binaires pour toutes les plateformes desktop (Linux 32 et 64 bits, Mac OS X 10.7 et 10.8, Windows), comprenant, en plus de Qt 5, l’environnement de développement Qt Creator 2.6, les exemples et la documentation complète.
Les fonctionnalités majeures sont rassemblées dans une vidéo, entièrement générée par une application Qt 5, avec Qt Quick, OpenGL et WebKit. (Les sources sont bien évidemment disponibles : https://qt.gitorious.org/qt-labs/qt5-launch-demo.)
Également à noter : la deuxième beta a apporté une totale refonte de la documentation, elle est maintenant plus adaptée à la modularisation du framework.
Compatibilité
Qt 5 est un grand remaniement de Qt 4 (sorti en 2005), tout en restant dans la continuité : le but est d’avoir un framework ouvert sur le futur, prêt à supporter toutes les plateformes, mais sans rupture forte avec Qt 4, afin de faciliter la migration.
Cette version a donc été l’occasion de bien nettoyer l’architecture interne, notamment avec une modularisation du framework, mais une migration très rapide de la plupart des applications est possible. Ceci implique notamment que les widgets, la base des interfaces graphiques des précédentes versions, sont toujours supportés, bien qu’ils ne sont plus inclus dans le module Qt GUI (ils ont été déplacés dans un autre module, afin d’en faciliter la maintenance (ils ne sont plus la seule et l’unique manière de créer des interfaces).
Un exemple de cette très forte compatibilité : Qt Creator. Une seule base de code est utilisée pour compiler tant avec Qt 5 que Qt 4.
Futur
Pour la série 5.0, encore quelques points seront régularisés : pas de paquet de binaires disponible pour MinGW (le port de GCC pour Windows), étant donné que WebKit ne le supporte pas complètement, ni pour Visual C++ 2012 (il faut compiler Qt 5 soi-même). Il est actuellement prévu de résoudre ces problèmes pour Qt 5.0.1, prévu fin janvier.
Au-delà cette première échéance, la version 5.1 est prévue pour le printemps 2013, où le but sera de stabiliser encore plus le framework et de porter des modules add-ons tels que Qt 3D et Qt Sensors dans les modules principaux. Il est également prévu de montrer les avancées des ports vers Android et iOS.
Pour les versions suivantes, il est prévu que deux versions mineures sortent chaque année.
Contribution
Bien évidemment, il s’agit d’une première version finale, expurgée des bogues les plus problématiques, mais toute une série de problèmes est connue : http://qt-project.org/wiki/Qt500KnownIssues. Si vous souhaitez contribuer au framework (en rapportant de nouveaux bogues, en en corrigeant, en développant de nouvelles fonctionnalités, etc.), n’hésitez surtout pas : http://qt-project.org/contribute.
Déjà un grand nombre de gens ont contribué à cette version : 427 personnes pour le code source. Bien plus pour le rapport de bogues, les discussions, le feedback. Avec un peu plus d’un an, le Qt Project s’est montré être une grande communauté, une grande réussite pour l’avenir du framework.
Source : http://blog.qt.digia.com/blog/2012/12/19/qt-5-0/