IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Affichage des résultats du sondage: Quel langage et manière de déployer choisiriez-vous pour produire le code le plus optimisé possible

Votants
24. Vous ne pouvez pas participer à ce sondage.
  • Sans hésiter, un code 100 % en Qt ;

    11 45,83%
  • Qt et un de ses bindings pour avoir plus d'outils ;

    11 45,83%
  • La création d'un exécutable sera plus propice à améliorer le "SAV" ;

    9 37,50%
  • La distribution des sources et des biblios sera d'une grande efficacité.

    8 33,33%
Sondage à choix multiple
PyQt Python Discussion :

Quel choix pour coder et déployer son programme : Qt en C++ ou Python ?


Sujet :

PyQt Python

  1. #21
    Rédacteur/Modérateur

    Avatar de Jiyuu
    Homme Profil pro
    Développeur amateur
    Inscrit en
    Janvier 2007
    Messages
    2 456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur amateur
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 456
    Points : 6 789
    Points
    6 789
    Billets dans le blog
    15
    Par défaut
    Bonjour à tous,

    Tyrtamos... enfin tu te manifestes . Bonnes vacances à toi.

    Concernant PyQt5, il est en effet sorti récemment. Ayant décroché depuis un moment, j'avoue par contre ne pas connaître à 100% les différences entre un PyQt4 en Qt5.0.2 et un PyQt5 en Qt5.0.2 ...

    J'ai prévu quelques lignes à ce sujet et reviendrai avec des éléments plus précis, mais un des premiers points que j'ai notés : adieu le QtGui, et bonjour le QtWidgets... ça risque de poser un problème si aucun module de conversion n'ai prévu.

    D'autre part, impossible (en tout cas je n'y suis pas arrivé) d'installer, PyQt5 ET PyQt4 pour un même python. Si on veut passer à la nouvelle version, il faudra notamment dire (pour le moment j'espère) adieu à Eric5.

    Pour revenir au débat actuel, tout ceci semble bien serrer et j'en suis le premier ravi. Pour m'a part, même si j'ai déjà un peu mon avis sur la question, je n'ai pas encore voté, espérant que d'autres contributions viendront.
    Initiation à Qt Quick et QML : Partie 1 - Partie 2
    En cas de besoin, pensez à la
    Mon site et mes tutoriaux sur Developpez.com
    Pas de question technique par MP... Les forums sont là pour ça

  2. #22
    Expert éminent
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 461
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 461
    Points : 9 248
    Points
    9 248
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    Citation Envoyé par Jiyuu Voir le message
    Bonnes vacances à toi
    Merci!

    Concernant PyQt5, j'ai regardé un peu: il y a une rupture de compatibilité: plusieurs modules sont éclatés. Par ailleurs, je n'ai pas retrouvé phonon que je commençais à utiliser: j'espère qu'ils ont musclé QtMultimedia en conséquence.

    Bref: la migration PyQt4 => PyQt5 va être douloureuse . J'espère qu'il y aura beaucoup de '+' en contrepartie.
    Un expert est une personne qui a fait toutes les erreurs qui peuvent être faites, dans un domaine étroit... (Niels Bohr)
    Mes recettes python: http://www.jpvweb.com

  3. #23
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Jiyuu Voir le message
    D'autre part, impossible (en tout cas je n'y suis pas arrivé) d'installer, PyQt5 ET PyQt4 pour un même python.
    C'est théoriquement possible :
    PyQt5 can be installed alongside PyQt4 using the same Python interpreter without any problems so long as they are built with the same versions of SIP.
    Source (en bas).
    Après, je n'ai pas essayé personnellement.

    Pour le sujet initial, je pense que la réponse est simple. Tu es sur un projet perso pour lequel les deux options peuvent fonctionner : tu prends ce que tu préfères

    Je pense personnellement que par rapport à une solution C++ (dans le contexte donné), un code python sera plus rapide à développer, plus facile à maintenir et à faire évoluer, plus sûr (moins de chances de laisser passer une fuite mémoire par exemple) pour un résultat quasiment aussi rapide (vu que les traitements les plus lourds sont codés en natif).

    EDIT : liste des différences PyQt4/PyQt5

  4. #24
    Rédacteur/Modérateur

    Avatar de Jiyuu
    Homme Profil pro
    Développeur amateur
    Inscrit en
    Janvier 2007
    Messages
    2 456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur amateur
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 456
    Points : 6 789
    Points
    6 789
    Billets dans le blog
    15
    Par défaut
    J'ai commencé à lire toutes ces différences, mais pas le temps immédiatement de traduire la page.
    Concernant, les modules et pour être plus précis que je ne l'ai été, il s'agit effectivement d'éclatement ou de transfert de certains modules :
    Code extrait de IDLE : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    import PyQt5.QtGui as QtGui
    import PyQt5.QtWidgets as QtWidgets
    Label = QtGui.QLabel()
    Traceback (most recent call last):
      File "<pyshell#10>", line 1, in <module>
        Label = QtGui.QLabel()
    AttributeError: 'module' object has no attribute 'QLabel'
    Label = QtWidgets.QLabel()
    
     ================================ RESTART ================================
    Initiation à Qt Quick et QML : Partie 1 - Partie 2
    En cas de besoin, pensez à la
    Mon site et mes tutoriaux sur Developpez.com
    Pas de question technique par MP... Les forums sont là pour ça

  5. #25
    Rédacteur/Modérateur
    Avatar de arnolddumas
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2012
    Messages
    978
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : Autriche

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2012
    Messages : 978
    Points : 7 764
    Points
    7 764
    Par défaut
    Citation Envoyé par tyrtamos Voir le message
    Concernant PyQt5, j'ai regardé un peu: il y a une rupture de compatibilité: plusieurs modules sont éclatés.
    Ils indiquent vouloir mimer la modularisation de Qt5 ce qui est amha une bonne chose.

    http://www.riverbankcomputing.com/news/pyqt-50

    Citation Envoyé par tyrtamos Voir le message
    Bref: la migration PyQt4 => PyQt5 va être douloureuse . J'espère qu'il y aura beaucoup de '+' en contrepartie.
    Qt5 est plus rapide pour tout ce qui touche au rendu notamment : http://qt-project.org/forums/viewthread/24295

  6. #26
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 114
    Points : 129
    Points
    129
    Par défaut Au sujet des perfs
    Bonjour

    Au sujet des performances. Beaucoup de choses exacts ont déjà été dites. Je voulais juste revenir sur un point complété par un retour d'expérience personnel :
    OK, le C ou C++ génère du code plus rapide et permet des optimisations bas niveaux très efficaces. Mais trop souvent, le développeur C/C++ fini son programme par : "l'implémentation de cet algo est optimisé à fond, pour aller plus vite, il faudrait revoir l'algo, on fera cela quand on aura du temps".
    Le développeur Python, qui implémente l'algo vraiment plus vite, je reste grosso-modo sur le chiffre de 5 fois plus vite, lui a bien souvent encore du temps pour non pas travaillé sur l'implémentation de l'algo, mais sur l'algo lui-même et l'architecture globale du programme. Donc au final, il a le temps d'implémenter un autre algo, et le programme est plus rapide.

    Donc sur plusieurs retours d'expérience personnel, j'ai vu des programmes Python plus rapide que l'équivalent en C/C++, car le développeur a pu passer plus de temps sur les aspect choix d'algo/architecture du programme.


    Cordialement
    Emmanuel

  7. #27
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Ingénieur de recherche
    Inscrit en
    Août 2008
    Messages
    26 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur de recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2008
    Messages : 26 617
    Points : 188 587
    Points
    188 587
    Par défaut
    Citation Envoyé par arnolddumas Voir le message
    Qt5 est plus rapide pour tout ce qui touche au rendu notamment : http://qt-project.org/forums/viewthread/24295
    Je ne suis pas sûr que ce soit un argument pour passer à PyQt 5, puisqu'il existe des versions de PyQt 4 utilisant Qt 5 . (Non, ce n'est pas tordu pour deux balles .)
    Vous souhaitez participer aux rubriques Qt (tutoriels, FAQ, traductions) ou HPC ? Contactez-moi par MP.

    Créer des applications graphiques en Python avec PyQt5
    Créer des applications avec Qt 5.

    Pas de question d'ordre technique par MP !

  8. #28
    Expert éminent
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    3 804
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 804
    Points : 7 080
    Points
    7 080
    Par défaut
    Bonjour Jiyuu,

    ça fait un bye en effet

    Je vais donner un avis plutôt général sur le choix du langage dans un projet.

    À mon humble avis, un projet ne doit pas se faire sur un seul langage, on doit pouvoir profiter de tous les avantages que peuvent apporter chacun des langages.

    • Le C est syntaxiquement le plus simple
    • Le C++ évite de réinventer la roue et cela efficacement
    • Le python permet de rendre du code maintenable en étant concis


    Alors je te propose de faire de l'interfaçage python/C++ où tu pourras utiliser la syntaxe python, C++ et C (car la syntaxe C est compatible avec la syntaxe C++) à l'aide de cython.

    Là où il y a besoin de rendre efficace un module on crée un so ou une dll et le code est au pire 1,2 à 1,6 fois moins rapide que le C/C++ pures.

    Il y a possibilité de tout faire sur un seul OS et faire du cross compiling avec mingw32.

    Qt est une interface, en python il est assez facile d'utilisation, on peut le coder à 100% python.

    Bref le choix ne doit pas rester à un seul langage...

    Bonne journée
    Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
    La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)

  9. #29
    Rédacteur/Modérateur

    Avatar de Jiyuu
    Homme Profil pro
    Développeur amateur
    Inscrit en
    Janvier 2007
    Messages
    2 456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur amateur
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 456
    Points : 6 789
    Points
    6 789
    Billets dans le blog
    15
    Par défaut
    Bonjour à tous et merci pour votre participation.

    Voici ce que je choisirai dans l'immédiat : du code en Python (en partie tout du moins) et une distribution des sources, et voici pourquoi :

    Code en Python
    Outre le fait que je suis plus habitué avec ce langage, je le trouve surtout beaucoup plus clair et lisible. N'ayant pas le temps de passer des heures et des heures sur mon projet, je pense que ces deux aspects m'éviterons bien une calvitie précoce
    Par contre, petit curieux comme je suis, je n'exclue pas la possibilité de me pencher sur cython, en particulier si je peux y gagner sur les gestions de BDD, tout en sachant que je veux rester sur du QSql... Donc à approfondir car là je suis super novice.

    Distribution des sources
    Le but ici n'est pas de permettre à toute une communauté de participer à mon projet car dans l'immédiat il sera très spécialisé pour ma société, mais dans l'avenir pourquoi pas.
    La grande raison est surtout de me permettre de sortir un morceau de programme fonctionnel rapidement et d'y ajouter des modules petits à petits sans systématiquement devoir refaire un exe et demander aux utilisateurs de le lancer.


    Encore merci à tous, et j'invite tous ceux qui n'ont pas encore donné leur avis à le faire

    ++

    J
    Initiation à Qt Quick et QML : Partie 1 - Partie 2
    En cas de besoin, pensez à la
    Mon site et mes tutoriaux sur Developpez.com
    Pas de question technique par MP... Les forums sont là pour ça

Discussions similaires

  1. Quel choix pour une base de données embarquée ?
    Par Schyzophrenic dans le forum JDBC
    Réponses: 2
    Dernier message: 04/07/2008, 19h49
  2. quel choix pour la Persistence?
    Par Sniper37 dans le forum Décisions SGBD
    Réponses: 5
    Dernier message: 12/05/2008, 22h20
  3. Réponses: 9
    Dernier message: 09/04/2008, 16h51
  4. [Général] Quel langage pour une banque de son?
    Par freedom4seagulls dans le forum Windows
    Réponses: 4
    Dernier message: 22/11/2006, 20h00
  5. [Techno/Langage] Quel choix pour un gros développement orienté objet ?
    Par Neilos dans le forum Général Conception Web
    Réponses: 7
    Dernier message: 18/05/2006, 17h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo