Sortie de Qt 5.0

À 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/

Advertisements

Sortie de Qt 5 Release Candidate

La RC de Qt 5 est sortie, la Beta 2 étant disponible depuis les Developer Days, début novembre.

Sur ce temps, l’objectif a été la finalisation de l’API Qt et la résolution de bogues, il s’agit de l’étape de polissage du produit avant qu’il soit labellisé final. La structure et le contenu n’ont presque pas changé depuis la version précédente, à deux exceptions près :

  • la documentation a été restructurée, pour la rendre plus facile d’accès ; de même, les exemples ont été revus et sont désormais disponibles depuis l’écran d’accueil de Qt Creator ;
  • quelques changements dans les API ont été apportés.

L’objectif de cette nouvelle version majeure était de faciliter autant que possible la transition depuis Qt 4, ces nouveaux changements d’API ne font pas changer la balance.

Cette nouvelle version devrait être très proche de la version finale : à moins que de bogues importants soient remarqués d’ici là, la version finale devrait sortir la semaine prochaine. Sinon, une nouvelle RC sera publiée. L’objectif de Qt 5 en 2012 devrait donc être respecté !

Source : http://blog.qt.digia.com/blog/2012/12/06/qt-5-0-release-candidate/
La nouvelle documentation : http://qt-project.org/doc/qt-5.0/qtdoc/index.html
Les changements depuis Qt 4 : https://qt.gitorious.org/qt/qtbase/blobs/stable/dist/changes-5.0.0
Télécharger Qt 5 RC : http://qt-project.org/downloads

Necessitas, le port Android de Qt, intégré au Qt Project

Il était déjà annoncé que Digia envisageait de supporter les plateformes mobiles de mieux en mieux avec Qt, avec pour objectif l’intégration d’Android et iOS dans les plateformes supportées en tier 1 courant 2013 (c’est-à-dire comme plateformes principales). Une des pistes était l’intégration du code de Necessitas, le port lancé par BogDan Vatra pour Android : la bonne nouvelle du jour est que les deux parties se sont mises d’accord pour que cela arrive ! Le port Android de Qt 5 sera basé sur le projet Necessitas, BogDan souhaitant en devenir mainteneur (selon l’organisation du Qt Project : http://qt.developpez.com/actu/38218/Le-Qt-Project-est-la-le-projet-d-open-gouvernance-pour-le-framework-C-est-arrive-a-terme/).

Necessitas est développé sous l’égide du projet KDE, qui a fourni l’infrastructure nécessaire pour le développement et la distribution ; il est actuellement utilisé par un grand nombre de développeurs, qui ont publié des applications l’utilisant sur des périphériques Android.

Ce projet a été lancé grâce à QPA, la plateforme d’abstraction des plateformes de Qt, apparue avec la version 4.8 pour faciliter le port de Qt vers d’autres plateformes. Faisant ses débuts fin 2010, la première beta a été rendue disponible en février 2011, le port ne cessant depuis lors de supporter de plus en plus de fonctionnalités. Actuellement, le port n’est toujours pas considéré fini, mais cela devrait arriver dans les mois à venir, ces efforts pouvant être repris en très grande partie pour le port Qt 5.

Le projet Necessitas ne contient pas qu’un port de Qt : on compte également le Necessitas SDK, qui ajoute à Qt Creator le support d’Android, ainsi que Ministro, qui télécharge les dépendances (Qt) des applications déployées.

Pour ceux qui sont à Berlin cette semaine, quelques démos devraient avoir lieu aux DevDays (reportage en live : http://www.developpez.net/forums/d1278682/c-cpp/bibliotheques/qt/direct-qt-devdays-2012-a/).

Source : https://www.readability.com/articles/m86pwans

Sortie de Qt 5 Beta 2

Juste pour les Qt DevDays 2012 à Berlin (reportage en live : http://www.developpez.net/forums/d1278682/c-cpp/bibliotheques/qt/direct-qt-devdays-2012-a/), Qt 5.0 Beta 2 est de sortie, comme prévu. La sortie de la version finale est toujours prévue pour cette fin d’année 2012.

D’ailleurs, tout commence à se mettre au parfum Qt 5 : Qt Creator 2.6, sorti il y a peu, peut être basé sur Qt 5 pour compiler avec Qt 5, formant une version complète de l’environnement Qt très utile pour tester cette nouvelle version majeure.

Cela montre aussi le niveau de compatibilité entre Qt 5 et Qt 4 : le même code source est utilisé pour compiler Qt Creator, peu importe la version de Qt. Qt 4.8 et Qt 5.0 garantissent presque une garantie de compatibilité des sources.

Cette préversion montre aussi une liste des modules et paquets qui feront partie de la version 5.0 finale, ainsi que les distributions entre modules essentiels et add-ons. Mêmes si ces listes paraissent longues (signe d’un grand nombre de fonctionnalités), certains modules – comme Qt 3D – n’en font pas partie, bien qu’ils seront disponibles du Qt Project et utilisables avec Qt 5.0.
[B]Qt Essentials [/B]:
Qt Core
Qt Network
Qt Gui
Qt Sql
Qt Testlib
Qt Widgets
Qt Qml
Qt Quick
Qt Multimedia
Qt WebKit
Qt WebKit Widgets
[B]Qt Add-ons[/B] :
Qt Xml
Qt XmlPatterns
Qt Svg
Qt Concurrent
Qt Printsupport
Qt DBus
Qt OpenGL
Qt ActiveQt
Qt Graphical Effects
Qt Script
Qt Declarative
Qt Image Formats
[B]Outils[/B] :
Qt Assistant
Qt Linguist
Qt Designer
Qt Translations
Qt Creator
Qt Documentation

En tant que préversion, un certain nombre de problèmes est déjà connu ; notamment, la documentation n’a pas reçu sa dose d’attention, de grands changements sont à prévoir à ce niveau avant la version finale. La liste des problèmes connus : http://qt-project.org/wiki/Qt500beta2KnownIssues.

En tant que projet communautaire, il est important que tous participent à l’élaboration de cette nouvelle version : essayez Qt 5 sur vos projets, donnez votre avis au Qt Project pour résoudre autant de problèmes potentiels que possible avant la version finale.

Télécharger Qt 5 Beta 2 : http://qt-project.org/downloads

Sortie de Joomla! 3.0

Voilà qui est fait, six mois après la sortie de Joomla! 2.5 : la version 3.

Tout d’abord, un mot sur le release cycle : la version 2.5 est une LTS (long term support), pas la 3.0. Cette dernière permet de casser pas mal de choses et ne sera donc pas supportée à long terme : il faudra attendre la 3.5 pour cela (au rythme d’une version mineure tous les six mois). La 2.5 sera supportée jusqu’à la sortie de la 3.5, au moins : il est toujours sûr de l’utiliser, elle sera toujours supportée… mais ne verra pas d’évolution technique. Avec la sortie de cette version 3.0, par contre, c’est le support de la vieillissante 1.5 qui est arrêté.
La migration de la 2.5 vers la 3.0 devrait se passer sans heurts, sauf en cas d’utilisation extensive d’extensions (quelques modifications ont été apportées à la Joomla! Platform, ce qui rend les extensions incompatibles en partie mais facilement corrigeables).

Quelques choses ont été cassées avec cette version : d’un côté, la compatibilité avec PHP 5.2 (dont le support a été arrêté fin 2010), seul PHP 5.3.1 et supérieurs sont supportés (de même, MySQL 5.0 n’est plus supporté – cette version n’est d’ailleurs plus maintenue depuis belle lurette) ; de l’autre, l’interface d’administration, entièrement repensée, suite aux recherches du groupe JUX.

Dans les nouveautés, on compte l’intégration de Boostrap, le framework JavaScript de Twitter ; il est utilisé pour deux designs dits responsive (l’un pour la partie utilisateur, l’autre pour les administrateurs), optimisés pour les mobiles. L’installation a été simplifiée, elle se déroule maintenant en trois étapes tout en supportant PostgreSQL. Un nouveau module de statistiques est aussi disponible.

Également, des tests unitaires ont été introduits pour le CMS.

Au niveau des statistiques de cette version : 34 nouvelles fonctionnalités (dont 15 ont été intégrées dans les versions 2.5.1 à 2.5.7) et 491 bogues.

Sources : http://www.joomla.org/announcements/release-news/5464-joomla-3-0-0-released.html et http://www.joomla.org/about-joomla/technical-requirements.html

Nouveau voyage pour Qt

Ce 18 septembre 2012 était le premier jour avec Digia propriétaire de Qt. Avec une équipe renforcée (notamment par Lars Knoll), Digia annonce que le « vrai potentiel de Qt sera libéré, ainsi que son écosystème ». Dès l’annonce du rachat en août dernier, une série de questions se posaient sur l’avenir de l’écosystème libre : Qt sera-t-il toujours disponible sous la LGPL ? Quid de Necessitas, pour le support d’Android, puisqu’un objectif était le support tant d’iOS et d’Android ?

L’objectif de Digia est toujours de « garder Qt disponible tant en commercial qu’en open source, tout en continuant à maintenir activement les deux », d’« avoir une communauté Qt forte et unie », sachant que « faire avancer la technologie est extrêmement important ».

La transaction comprenait également le financement et la gestion de l’infrastructure du Qt Project ; ce transfert est actuellement presque achevé, ne restent que quelques items (comme le système d’intégration continue).

Continue reading “Nouveau voyage pour Qt”

KDE Frameworks 5 suit la même orientation que Qt 5

Qt 5 s’apprête à sortir, malgré les nouvelles de rachat par Digia ; de même du côté de KDE, l’environnement de bureau pour Linux (notamment), qui s’apprête à sortir KDE Frameworks 5, l’évolution des kdelibs, les bibliothèques de base complémentant Qt sur lesquelles tout l’environnement est construit.

Tout d’abord, quelques constats sur les kdelibs : elles ne sont pas très modulaires ou réutilisables (même si cela change), ont des fonctionnalités qui devraient plutôt bénéficier à toute la communauté Qt, disposent de classes et modules redondants par rapport à Qt (KHTML et QtWebKit, QLocale et KLocale, etc.). Ainsi, notamment, ses différentes parties dépendent fortement les unes des autre (jusqu’à nécessiter l’exécution de plusieurs processus sur le côté).

Grâce à l’open governance de Qt, il est plus facile de contribuer au framework et donc d’y passer toutes les fonctionnalités fournies par les kdelibs alors qu’elles devraient être dans le framework fondation. De l’autre côté de la frontière, il est dans les projets de faire disparaître la distinction entre applications Qt et applications KDE, de manière technique : les nouveaux KDE Frameworks sont aussi prévus pour une utilisation plus large que dans le seul projet KDE. Cela est une bonne nouvelle pour tous : si votre application aurait pu profiter d’une classe ou l’autre du projet KDE, il ne sera plus nécessaire de prendre tout le projet (ou presque) à côté ; une application KDE pourra également être utilisable plus facilement dans d’autres environnements (dans la lignée des initiatives KDE on Windows et KDE on Mac OS X), bien que sans les fonctionnalités d’intégration à KDE.

Ces changements philosophiques dans la conception des bibliothèques profite en même temps des nouveautés de Qt 5, puisque tout est actuellement développé avec, en tête, tant Qt 4 que Qt 5, en préparant une manière facile de porter le code vers Qt 5 lorsque ce temps sera venu (déplacement des méthodes dans des classes temporaires, par exemple, qui seront obsolètes avec Qt 5 mais très utiles avec Qt 4), ceci ne pouvant pas se faire sans quelques grands changements du côté de l’API par rapport aux kdelibs.

Continue reading “KDE Frameworks 5 suit la même orientation que Qt 5”