A l'occasion de la sortie de la dernière Technology Preview de Qt Jambi, Trolltech a organisé un petit concours autour de cette nouvelle technologie.
Pour rappel, Qt Jambi est un portage de Qt sous Java, ou plutôt un binding de Qt C++ en Java. On retrouve donc toutes la richesse de Qt, mais en Java. Pour en savoir plus, suivez le guide :
Vu que j'avais envie d'essayer un peu Qt Jambi, le concours m'a donné une bonne excuse. Ce qui suit sont les impressions d'un développeur C/C++ sur Qt Jambi, je rappelle aussi que ce n'était qu'une Technology Preview, la version finale n'est pas encore prête.
Installation
L'installation est relativement simple : il suffit juste de d'extraire l'archive, de placer une variable d'environnement et rouler jeunesse.
Avec QtJambi, vient aussi une archive permettant l'intégration de celui-ci dans Eclipse. Et là encore, c'est très simple, il suffit juste d'extraire l'archive dans le répertoire d'Eclipse.
Utilisation
Je n'ai pas tester complètement Qt Jambi, il y a quelques aspects que je n'ai pas touché, comme :
- le designer : il n'est apparemment pas complètement Qt Jambi compliant
- le générateur : permet de créer un binding pour une bibliothèque C++
Par contre, l'intégration de Qt Jambi avec Eclipse est réellement parfaite. Il suffit juste de créer un projet Java et d'ajouter qtjambi.jar dans les Libraries. Et j'avoue avoir même pris du plaisir à utiliser Eclipse, c'est réellement un très bon IDE pour le développement Java (complétion automatique, détection à la volée des erreurs de compilation).
Il y a quelques petites différences entre Qt et Qt Jambi :
- signaux et slots : il n'y a pas de préprocesseur avec Qt Jambi (pas de
moc). Les signaux sont mantenant des membres de la classe (com.trolltech.qt.core.Signal0, com.trolltech.qt.core.Signal1... suivant le nombre de paramètres). Il suffit juste pour connecter un signal et un slot d'appeler la méthode connect du signal (quitButton.clicked.connect(this, "quit()")).
QVariant : Qt Jambi se base sur la classe Java Object pour les objets de base. La classe QVariant n'est plus qu'une collection de fonctions statiques permettant d'effectuer simplement des conversions (pour transformer par exemple un Object en String).
- classes conteneurs : les classes conteneurs de Qt ont disparu, Qt Jambi utilisant les conteneurs de base de Java.
Ma participation au concours
Pour ceux qui veulent, voici ma participation au concours, les sources sont téléchargeables en annexe. Rien de bien extraordinaire, c'était juste pour m'amuser un peu avec Qt Jambi :


Pour conclure
Il est temps maintenant de faire le point sur cette expérience. J'avoue avoir été particulièrement séduit par Qt Jambi pour plusieurs raisons :
- le développeur C++/Qt que je suis n'était pas perdu parmi les différentes classes : c'est pratiquement les mêmes,
- la vitesse de développement avec Eclipse est assez impressionnante.
Si j'avais la possibilité, je pense que je l'utiliserai pour faire du maquettage rapide afin de présenter au client. La facilité et rapidité d'utilisation permettrait de tester plusieurs configurations sans passer par des phases parfois longues de compilation/débogage.
Mais ne vous inquiétez pas, je reste fidèle à Qt classique... du moins, pour l'instant.
Billet original sur Essaye encore... - Qt