Quel choix pour coder et déployer son programme : Qt en C++ ou Python ?
Bonjour,
Après plusieurs mois sans programmation je reviens parmi vous avec notamment le projet de reprendre l'un de mes programmes depuis le début.
L'idée est surtout d'améliorer le programme coté « programmeur » (coté utilisateur il sera aussi étoffé, mais ceci n'est pas le but de cette discussion), le but étant de d’obtenir un code :
• plus simple ;
• plus lisible ;
• plus facilement maintenable ;
• plus facilement mettable à jour.
Afin d’obtenir le meilleur compromis, je me pose alors les deux questions suivantes :
• pour la partie codage, mieux vaut-il faire un code en « pureQt » (en C++) ou utiliser l’un de ses binding (principalement en Python) ?
• pour le déploiement, faut-il favoriser la création d’un exécutable ou diffuser le code source et les bibliothèques nécessaires ?
Ces questions ne sont pas forcément très simples de réponse car supposent que les deux langages soient connus à niveau équivalent. Malgré tout une approche peut être faite pour dégrossir le sujet.
N’hésitez pas apporter en plus de vos votes un argumentaire en séparant bien les deux questions, même si elles peuvent être étroitement liées, il est peut-être plus simple de déployer d’une certaine manière avec un certain choix de langage…
Au niveau du code, il faut aussi remarquer que Qt Creator, l'EDI développé spécialement pour Qt, ajoute le support de Python dans sa dernière préversion.
Merci pour votre contribution.
J
Python + PySide (ou PyQt)
Franchement, il n’y a pas vraiment matière à hésiter.
Si tu connais bien Python et que ton application est pas gourmande en calcul, bah go Python.
Le code sera plus court, plus lisible, plus maintenable, et plus portable (pas besoin de distribuer X exécutables).
Et puis même si c’est gourmand, il y a peu de chances que ça soit l’interface qui calcule. Donc au pire tu fais le cœur qui calcul avec un truc qui dépote (numpy, pypy, C++, …) et tu restes sur du Python pour l’interface.
[avis perso]
Moi je n’ai jamais vraiment aimé Qt à cause de l’étape intermédiaire avec le préprocesseur pour générer du code à partir des macros que tu dois foutre partout dans ton code. Je trouve ça moche au possible…
Cela dit, j’ai pas franchement d’alternative à proposer donc ça reste un ressenti personnel, pas spécialement une critique technique (ça ne réduit en rien la qualité de Qt).
Il y a aussi la propension que Qt a (avait ? Paraît que ça change un peu maintenant) à faire doublon avec la bibliothèque standard sur certains point (bon, ça c’est compréhensible vu qu’à l’époque des premières versions de Qt, la bibliothèque standard c’était pas aussi bien foutu que maintenant).
Par contre, quand j’ai testé Qt avec Python, là c’était beaucoup plus « joli », plus naturel (vu que Python de base offre déjà des mécanismes d’introspection) du coup j’ai pris plaisir à coder avec ce couple.
[/avis perso]