II. Lundi 11 octobre, Qt training▲
II-A. Présentation de Qt training et du eLearning▲
La première journée commence avec une conférence d'introduction de la journée Qt training (non, pas des Qt Dev Days, il faudra attendre demain avec la présence du CTO de Nokia). Il nous est rappelé la présence de nombreux cours en ligne sur le site de Nokia dans la rubrique Qt e-Learning ainsi que la possibilité d'assister à des cours réalisés par les partenaires certifiés par Nokia (Nokia Qt Development Framework ne fournit pas de cours par lui-même). S'en suivent une rapide présentation de l'évolution de la certification Qt Essential depuis un an (créée aux Qt Dev Days 2009) et de l'ouverture des certifications Qt Specialist disponibles gratuitement en version bêta ici pendant les Qt Dev Days. On apprend également que des certifications de plus haut niveau pourraient voir le jour dans le futur avec des techniques d'évaluation supplémentaires, on pourrait penser à quelque chose de plus pointu qu'un simple QCM. À suivre.
II-B. Qt Training - Qt Quick▲
Je n'ai malheureusement pas pu participer à l'intégralité du Qt Training sur Qt Quick (quatre conférences) mais je pense quand même avoir une bonne vision de ce nouveau module déclaratif après les deux conférences auxquelles j'ai assistées. Qt Quick, qui désigne l'ensemble des outils du module déclaratif dont le langage QML est sorti officiellement avec la version Qt 4.7, date du 21 septembre 2010. Pour rappel, il avait été annoncé pour la première fois il y a un an pendant les Qt Dev Days 2009 à Munich. L'outil a fait du chemin depuis ce temps, il est maintenant complètement intégré à Qt Creator (QML viewer et QML designer) et la documentation a été énormément enrichie, sachant que, il y a six mois, elle était très pauvre et ne permettait pas de se lancer dans un réel projet sans plonger la tête dans le code de QML directement. Mais qu'en est-il de son utilisation ?
L'utilisation parait assez simple au premier abord, une sorte d'assemblage de code JavaScript et d'éléments d'interface avec des propriétés dynamiques. Le concept est d'avoir un langage facile à comprendre pour les designers et qui permette d'avoir un rendu visuel très rapide pour un travail collaboratif entre les développeurs d'applications et leurs homologues de la section design. Dans le concret, qu'est-ce que cela implique ? Tout d'abord, le designer ne doit pas être rebuté de voir quelques lignes de code et même d'apprendre quelques principes de programmation qui sont nécessaires et, là, il s'agit d'un premier élément qui peut en bloquer certains. Après, la seconde question est : me permet-il de faire tout ce que je fais déjà avec Qt ? Ma réponse, et celle de Nokia après avoir interrogé David Stones (responsable marketing Qt chez Nokia) sur le sujet, est non ! Qt Quick n'a pas pour objectif de remplacer Qt sur le long terme. Il est là pour permettre à d'autres personnes telles que les designers de rejoindre le monde de Qt en permettant d'avoir des applications légères rapidement et de pouvoir les utiliser sur votre mobile ou votre ordinateur. Application légère, avez-vous dit ? Oui, Maya, qui vient de porter l'ensemble de son code sur Qt, n'utilisera jamais Qt Quick, car il n'a pas été fait pour créer des applications monstrueuses de la sorte. Cependant, si vous réalisez une application pour téléphone ou un projet de petite ou même moyenne taille, il est très intéressant de considérer cette solution.
Qt Quick peut vous apporter un gain de temps. En effet, il est souvent plus rapide d'écrire en langage déclaratif si l'on veut afficher un carré bleu plutôt que de redéfinir la fonction paintEvent d'une classe C++ permettant à l'aide d'un QPainter et d'un QBrush de faire la même chose. Un souci cependant, on a tendance à coder beaucoup de valeurs numériques "en dur" et à dupliquer du code, une tentation beaucoup plus forte qu'avec un langage possédant des classes comme C++ ou Java. Qt Quick peut permettre à des développeurs et à des designers de travailler ensemble sur un même projet si ces derniers sont un peu débrouillards et que quelques lignes de code QML ne leur font pas peur, du moment qu'ils ont un résultat rapide à l'écran. Un résultat, oui, c'est ce que l'on veut mais c'est pas toujours ce qu'on obtient. Les orateurs de cette conférence ayant utilisé QML depuis un an vous assurent qu'il arrive régulièrement d'essayer plusieurs techniques afin d'arriver au résultat désiré et que certaines parties restent encore obscures. Je pense que, comme le résultat est très vite visible, il n'est pas très gênant de tester les possibilités des différentes propriétés des éléments QML et ainsi d'obtenir le résultat voulu.
Pour terminer ce retour d'expérience sur Qt Quick, je pense qu'il faut préciser un point important. Nokia, Qt Development Framework y croit et pense qu'il s'agit de l'avenir de la programmation. Cela signifie qu'ils vont énormément se concentrer sur Qt Quick et QML dans l'avenir et que l'outil ne peut que s'améliorer avec des fonctionnalités que vous pouvez trouver manquantes à l'heure actuelle. Nous avons déjà vu ça avec le développement de Qt Creator qui a vu énormément de changements concernant l'intégration de QML mais très peu d'améliorations sur l'utilisation de Qt pour desktop par exemple. Je pense que c'est donc à vous de voir, en fonction de la taille de votre projet, si vous voulez faire le pari avec Nokia que cela va marcher et ainsi se lancer dans l'aventure ou alors rester sur un framework traditionnel mais cependant stable qui n'évoluera certainement pas autant et qui ne changera pas vos habitudes de travail. Qui a dit que l'humain n'aimait pas le changement ? Oui, c'est vrai mais on dit aussi parfois qu'il faut se jeter à l'eau. Faites votre choix !
II-C. Certification Qt Specialist - Qualified in C++ with Qt▲
En fin d'après-midi, j'ai également eu l'occasion de participer à la version beta de la nouvelle certification avancée de Qt. J'ai écrit une critique complète que vous pouvez retrouver sur le forum Qt.
Voir aussi le contenu de la certification Qualified in C++ with Qt.