Developpez.com - Rubrique Qt

Le Club des Développeurs et IT Pro

Les bindings de Qt sont-ils réellement matures ?

Sont-ils utilisables professionnellement ou relèvent-ils plus de la bidouille ?

Le 2010-08-22 20:55:34, par dourouc05, Responsable Qt & Livres
Bonjour,

Qt est un framework multiplateforme, notamment utilisé pour la création de GUI mais pas seulement, développé principalement pour le C++. Jusqu'à la version 4.5, une version en Java était développée en même temps. C'était alors le premier binding officiel.

D'autres bindings sont apparus depuis la création du framework : l'un des plus connus, PyQt, développé par River Bank Computing pour le langage Python, qui n'est pas disponible en LGPL, seulement en GPL 2/3 ou en licence commerciale. Il est fort proche de la version C++, parfois trop, rendant certaines parties très peu "pythoniques". Pour pallier le manque de support de la LGPL, Nokia a mis à disposition PySide, un autre binding Python de Qt, dont l'API est strictement identique, facilitant la migration de l'un vers l'autre.

Signalons que d'autres bibliothèques fortement utilisées par les utilisateurs de Qt, à savoir Qwt pour les graphiques et Qt Mobility pour le développement sur mobiles sont aussi disponibles : PyQwt pour PyQt et PySide Mobility pour PySide.

Il existe encore toute une série d'autres bindings de Qt, aux états d'avancement fort différents : QtAda pour Ada, Qyoto et qt4dotnet pour le framework DotNet (principalement C#), QtD pour le D, QtHaskell pour le Haskell, QtRuby pour Ruby, etc.

Certains sont parfois des montages un peu fallacieux :
Envoyé par _skip
Le binding .Net est QtJambi compilé avec IKVM, ce qui fait quand même beaucoup de bidules expérimentaux empilés.
Et vous, de votre côté, qu'en pensez-vous ? Utilisez-vous des bindings Qt pour un autre langage ?
S'y intègre-t-il relativement bien ? Vous permet-il d'écrire du code d'une manière semblable à une API prévue pour ce langage ? N'y a-t-il pas d'incompatibilité de paradigme ? Qt est prévu pour des langages orientés objet, ne pose-t-il pas de problème particulier aux langages fonctionnels, logiques... ?
Est-il suffisamment stable pour une utilisation quotidienne ? Sa structure lui permet-elle d'atteindre cette stabilité sans surcouche de surcouche ?

Voir aussi

La rubrique Qt de Developpez.com
La rubrique Python de Developpez.com
Une introduction à PyQt, par Olivier Girardot

PySide
PyQt
PythonQt
Feu QtJambi
  Discussion forum
12 commentaires
  • Julien Bodin
    Membre éclairé
    Utiliser Qt avec Java c'est toujours d'actualité ou c'est mort ?
    Il n'y a plus de support après la version 4.5.
  • o.girardot
    Membre confirmé
    QtJambi (implémentation Java de Qt) n'est plus supporté officiellement par Nokia, néanmoins la communauté est active et le projet continue.

    Après justifier l'utilisation devant un supérieur hiérarchique peut devenir un peu compliqué avec l'arrêt de l'implication de Nokia depuis Mars 2010...
    Mais la communauté est vivante et le projet loin d'être mort.
  • _skip
    Expert éminent
    Envoyé par o.girardot
    QtJambi (implémentation Java de Qt) n'est plus supporté officiellement par Nokia, néanmoins la communauté est active et le projet continue.

    Après justifier l'utilisation devant un supérieur hiérarchique peut devenir un peu compliqué avec l'arrêt de l'implication de Nokia depuis Mars 2010...
    Mais la communauté est vivante et le projet loin d'être mort.
    Personnellement je ne suis pas super optimiste en ce sens car maintenir la version java bien synchronisée avec l'évolution de Qt va demander pas mal de ressources. Il est possible que l'on voit apparaître des soucis dans le support de l'éditeur visuel notamment.

    Honnêtement, professionnellement parlant je préférerai payer une version commerciale maintenue par une véritable entreprise plutôt que faire confiance à la communauté. Ou alors carrément revenir à swing et investir dans un outil comme http://www.formdev.com/.

    Je suis pas anti open-source, mais pour que ça bouge, c'est bien s'il y a un soutien financier solide derrière ainsi qu'une entreprise ayant une vision produit. La preuve, regardez mono, depuis que Novell est derrière ils ont une trentaine de dévs qui sont dessus, ça avance affreusement vite. Rien à voir avec l'époque ou c'était une POC faite par quelques hobbyistes.