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. #1
    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 : 43
    Localisation : France, Loire (Rh�ne Alpes)

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 456
    Billets dans le blog
    15
    Par d�faut 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
    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. #2
    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 : 32
    Localisation : Autriche

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

    Informations forums :
    Inscription : Novembre 2012
    Messages : 978
    Par d�faut
    Citation Envoy� par Jiyuu Voir le message
    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) ?
    Je n'ai pas une grande exp�rience en Python donc mon avis sera forc�ment biais� mais j'ai vot� pour du code 100% C++. Je ne sais pas si l'application que tu d�veloppes est gourmande mais les performances seront bien meilleurs en C++ qu'en Python. Ca d�pend aussi de ton exp�rience avec ces deux langages. Il y en a forc�ment un des deux que tu maitrises mieux que l'autre.

    Citation Envoy� par Jiyuu Voir le message
    � 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 ?
    Je dirais que �a d�pend des syt�mes d'exploitation vis�s. Pour Windows et Mac, il faut imp�rativement faire un installeur. Pour Linux, BSD et autres, le mieux est de mettre les sources sur Github ou �quivalent. Apr�s, un simple git clone suivi d'un cmake ou d'un qmake et le logiciel tourne sur la machine.

    Si le logiciel est un minimum int�ressant, il se retrouvera packag� dans la plupart des distributions. Tu peux aussi maintenir toi-m�me les paquets.

  3. #3
    Membre confirm� Avatar de Apocalyps
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Ao�t 2006
    Messages
    83
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 35
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activit� : Responsable de service informatique
    Secteur : Services � domicile

    Informations forums :
    Inscription : Ao�t 2006
    Messages : 83
    Par d�faut
    Bonjour � tous, pour ce sondage, j'ai r�pondu :
    Sans h�siter, un code 100 % en Qt ;
    Tout simplement C++ (car Python n'est pas encore � mon ordre du jour ), l'interface de Qt Creator est amplement suffisante pour mes projets.

    La cr�ation d'un ex�cutable sera plus propice � am�liorer le "SAV" ;
    ainsi que
    La distribution des sources et des biblios sera d'une grande efficacit�.
    Ayant le projet de faciliter l'utilisation de mes logiciels pour les utilisateurs lambda, je me doit de cr�er un installeur Windows (minimum).
    Les sources sont n�anmoins disponible dans le cadre du logiciel libre et du portage Linux.

  4. #4
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Ao�t 2008
    Messages
    26 772
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (�le de France)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - Multim�dia et Internet

    Informations forums :
    Inscription : Ao�t 2008
    Messages : 26 772
    Par d�faut
    Citation Envoy� par arnolddumas Voir le message
    les performances seront bien meilleurs en C++ qu'en Python
    Il faut encore voir si l'augmentation de perfs est si ph�nom�nale que �a� et aussi si �a a la moindre importance dans le cas pr�cis. Je ne pense pas que l'aspect performances brutes doit �tre le premier crit�re pour le choix. (D'ailleurs, Python n'a g�n�ralement pas � rougir de ses performances, bien que ce n'est pas son but principal.)
    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 !

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    40
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 40
    Par d�faut
    Le probl�me de performance est relatif.
    Certes dans l'absolu le C++ est plus performant que le python, mais:
    1) suivant ce que fait ton application �a se verra pas forcement ( � moins que tu fasse du traitement d'image/video ... ), et de toute fa�on python ou C++ la lib Qt et donc l'IHM restera en natif
    2) comme c'est plus rapide/facile de coder en python qu'en C++, il te reste plus de temps pour optimiser

  6. #6
    Membre confirm�
    Homme Profil pro
    Ing�nieur d�veloppement logiciels
    Inscrit en
    Mars 2011
    Messages
    223
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 47
    Localisation : France, Is�re (Rh�ne Alpes)

    Informations professionnelles :
    Activit� : Ing�nieur d�veloppement logiciels
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 223
    Par d�faut
    Utiliser python n�cessiterait que tes utilisateurs installent un interpr�teur python. Et distribuer les sources plut�t qu'un ex�cutables n�cessitent que tes utilisateurs installent la cha�ne de compilation et fassent la compilation eux-m�mes.

    Donc si tes utilisateurs ne sont pas tr�s avertis, il vaut mieux d�velopper en C++ et d�ployer un ex�cutable avec toutes les biblioth�ques dynamiques n�cessaires (dans un zip ou mieux via un installateur). Evidemment il faudra compiler pour diverses architectures si tu veux que ce soit multiplateformes.

    S'il est plus facile ou plus pratique pour toi de d�velopper en python, il y a peut �tre moyen de faire un installateur qui installera l'interpr�teur python automatiquement?

    �a ne t'emp�che pas de distribu�s les sources � part si tu veux faire de l'open source.

  7. #7
    Membre chevronn�
    Inscrit en
    Juillet 2012
    Messages
    231
    D�tails du profil
    Informations forums :
    Inscription : Juillet 2012
    Messages : 231
    Par d�faut
    Citation Envoy� par olreak Voir le message
    Utiliser python n�cessiterait que tes utilisateurs installent un interpr�teur python.
    Pas n�cessairement.
    Il est possible de convertir un script en fichier .exe qui embarque son interpr�teur et toutes les biblioth�ques n�cessaires avec lui.
    cx_freeze est un outil qui permet �a (et qui a le bon go�t d��tre compatible Python 3)

  8. #8
    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 : 43
    Localisation : France, Loire (Rh�ne Alpes)

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 456
    Billets dans le blog
    15
    Par d�faut
    Je tiens d�j� � tous vous remercier pour vos votes et/ou commentaires.

    Je souhaite r�agir sur trois points :

    La performance du langage :
    � mon sens il existe au moins trois niveaux de performance pour un langage :
    • La performance li�e � la rapidit� d'�crire le code ;
    • La performance li�e � la vitesse d'ex�cution, de consommation de ressources, ... ;
    • La performance li�e � sa maintenabilit� dans le sens large du terme (maj, correction bogues, ...) ;


    Comme Dourouc et jbb2811 le sugg�re, je pense que la performance li�e � la vitesse de calcul, etc est tr�s relative. Je pense que vous aurez compris que je suis avant tout un codeur Python. J'avoue n'avoir jamais vraiment �t� g�n� de ce cot�. Les seules fois o� j'ai eu l'impression de ralentissement �tait bien souvent au moment d'ex�cuter des requ�tes Sql sur un serveur distant, et l� je pense que les performances de Python ne sont pas forc�ment les seules en cause.

    D'autre part, bien que je n'ai pas une tr�s grande exp�rience en C++, j'ai lu ici et l� que ce n'�tait pas la panac�e en simplicit� de codage, ma faible exp�rience me fait dire aussi ceci et jbb semble aussi sugg�rer. Python est, je pense, plus performant de ce cot�.

    La distribution du code :
    Pour le C++, j'utilise depuis longtemps un logiciel �crit dans ce langage et dont les premi�res versions �taient exclusivement distribu�es en version source. M�me �tant sous windows, je n'ai jamais rencontr� de difficult� pour l'utiliser. Je pense que tout peut tr�s bien se passer si c'est bien pr�par�.

    Pour Python, je pense qu'il faut distinguer les applications destin�es � tourner sur Win ou sur Linux comme l�indique arnolddumas.
    Pour Linux, cela risque d'�tre beaucoup moins probl�matique puisque Python est pr�sent de base (et C++ aussi au passage ^^), il ne reste plus qu'� g�rer les biblioth�ques manquantes.
    Pour Win, j'avoue l� �tre un peu plus dans le flou car tous les programmes que j'ai fait actuellement ont soit �t� exclusivement pour moi (donc j'ai d�j� mon Python), soit distribu� via un ex�cutable, et je confirme que cela peut tr�s bien se passer.

    Cependant, il existe des solutions dites portables de Python qui peuvent avantageusement �tre distribu�es avec les sources du programme. Je me demande m�me dans quelle mesure, un simple copier-coller du dossier Python et quelques r�glages ne permettraient pas de r�gler le probl�me (test en cours )

    Quid de la taille du programme ?
    Le probl�me peut venir de l�.
    En Python et pour des petits � moyens projets on va rapidement atteindre les 350 ou 400Mo� certes �a peut paraitre peu vu les 1 000Go bien souvent disponibles, mais bon...
    J�ai aussi derni�rement essay� de cr�er un ex�cutable d�un programme exemple fourni avec Qt5.0.2. Si j�ai bien compris, une fois le .exe cr��, il est n�cessaire d�y ajouter quelques DLL. J�ai �t� assez surpris de la taille de Qt5Guid.DLL et d�autres� et me dit que finalement, un programme source python distribu� avec tout ce qui faut pour le faire tourner n�a pas forc�ment � rougir.

    En esp�rant que ces quelques remarques permettrons encore d�alimenter le d�bat, et peut-�tre de faire r�agir des pro-Python

    Merci � vous pour votre implication.
    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

  9. #9
    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 : 32
    Localisation : Autriche

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

    Informations forums :
    Inscription : Novembre 2012
    Messages : 978
    Par d�faut
    Citation Envoy� par Jiyuu Voir le message
    D'autre part, bien que je n'ai pas une tr�s grande exp�rience en C++, j'ai lu ici et l� que ce n'�tait pas la panac�e en simplicit� de codage, ma faible exp�rience me fait dire aussi ceci et jbb semble aussi sugg�rer. Python est, je pense, plus performant de ce cot�.
    C'est vrai que le C++ a vraiment des c�t� si0ux parfois.

    Citation Envoy� par Jiyuu Voir le message
    Pour le C++, j'utilise depuis longtemps un logiciel �crit dans ce langage et dont les premi�res versions �taient exclusivement distribu�es en version source. M�me �tant sous windows, je n'ai jamais rencontr� de difficult� pour l'utiliser. Je pense que tout peut tr�s bien se passer si c'est bien pr�par�.
    D'un autre c�t�, tu es d�veloppeur. 99% des gens ignore ce qu'est un compileur ou m�me un langage de programmation donc il ne faudrait pas g�neraliser. Tant mieux si tu arrives � compiler un logiciel mais je doute que ce soit le cas des utilisateurs finaux, sauf si le logiciel en question s'addresse aux d�veloppeurs.

    Citation Envoy� par Jiyuu Voir le message
    Le probl�me peut venir de l�.
    En Python et pour des petits � moyens projets on va rapidement atteindre les 350 ou 400Mo� certes �a peut paraitre peu vu les 1 000Go bien souvent disponibles, mais bon...
    J�ai aussi derni�rement essay� de cr�er un ex�cutable d�un programme exemple fourni avec Qt5.0.2. Si j�ai bien compris, une fois le .exe cr��, il est n�cessaire d�y ajouter quelques DLL. J�ai �t� assez surpris de la taille de Qt5Guid.DLL et d�autres� et me dit que finalement, un programme source python distribu� avec tout ce qui faut pour le faire tourner n�a pas forc�ment � rougir.
    Oui mais c'est Qt5Guid.dll aussi. N'oublies pas que c'est la version debug, avec plein de symboles inutiles (pour la distribution) dedans. Les version release sont nettement plus l�g�res.

    Pour que le programme prenne 300 Mo avec les dlls release, il faut utiliser quasiment tous les modules de Qt.

  10. #10
    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 : 43
    Localisation : France, Loire (Rh�ne Alpes)

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 456
    Billets dans le blog
    15
    Par d�faut
    Citation Envoy� par arnolddumas Voir le message
    D'un autre c�t�, tu es d�veloppeur.
    C'est gentil, mais je ne me consid�re que comme un d�veloppeur � plusquamateur �

    Citation Envoy� par arnolddumas Voir le message
    99% des gens ignore ce qu'est un compileur ou m�me un langage de programmation donc il ne faudrait pas g�neraliser. Tant mieux si tu arrives � compiler un logiciel mais je doute que ce soit le cas des utilisateurs finaux, sauf si le logiciel en question s'addresse aux d�veloppeurs.
    Ta remarque a attir� plus que mon attention. Je me suis peut-�tre un peu emball�...
    Huuuummm.... comment dire... il est possible que j'ai pris, dans ma m�moire d�faillante (message pour Dourouc : c'�tait pas que de la Belge ), la version ReadyToUse (non setup�e) pour une version source

    Citation Envoy� par arnolddumas Voir le message
    Oui mais c'est Qt5Guid.dll aussi. N'oublies pas que c'est la version debug, avec plein de symboles inutiles (pour la distribution) dedans. Les version release sont nettement plus l�g�res.

    Alors l� tu me rassures et tu d�montres � merveille que j'ai des lacunes en C++

    Citation Envoy� par arnolddumas Voir le message
    Pour que le programme prenne 300 Mo avec les dlls release, il faut utiliser quasiment tous les modules de Qt.
    C'est exactement �a. De m�moire :
    • Python jsute apr�s son installation : 50 � 60 Mo ;
    • Python apr�s l'installation de PyQt : 250 � 300Mo.


    J'ai mis la main sur une version portable de Python, pratique mais 250Mo, avec une possibilit� de r�duire car il y a toutes les biblioth�ques.
    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

  11. #11
    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 : 43
    Localisation : France, Loire (Rh�ne Alpes)

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 456
    Billets dans le blog
    15
    Par d�faut
    Bon, derni�re (ou pas) tentative de faire venir des Pythoniens
    Mani�re simple de faire une version portable de Python, c'est de choisir une installation pour un utilisateur unique lors de l'installation de Python...

    Allez les gars, faut faire tourner la balance dans l'autre sens
    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

  12. #12
    Membre chevronn�
    Inscrit en
    Juillet 2012
    Messages
    231
    D�tails du profil
    Informations forums :
    Inscription : Juillet 2012
    Messages : 231
    Par d�faut 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]

  13. #13
    Invit�
    Invit�(e)
    Par d�faut
    Il y a trois choses qui me d�rangent avec PySide/PyQt :
    • Le style : les bindings ne respectent pas la pep8, et quand on utilise d'autres modules qui la respectent, on aboutit � un code h�t�rog�ne sur le plan du style.
    • Le support des IDE : je n'arrive pas � obtenir une auto compl�tion correcte sur ces bindings. J'utilise PyCharm, et impossible de g�n�rer les squelettes python. Ce serait cool que QtCreator propose un bon support de Python. J'ai h�te de voir ce que �a va donner sur la version 2.8 finale.
    • Le fait que certains modules Qt sont redondants avec la librairie standard (threading, networking...). Une bonne pratique consiste � utiliser les modules Qt lorsque l'on interagit avec un contexte Qt, et les modules de la librairie standard sinon. Il n'en reste pas moins qu'on va potentiellement avoir l'utilisation de plusieurs modules diff�rents pour le m�me usage final.


    Mais en dehors de �a, PySide/PyQt reste pour moi une des solutions id�ales pour du GUI cross-platform.

    Le probl�me que j'ai avec le d�veloppement C++ pour des applications qui n'ont pas besoin de perfs extraordinaires, c'est que j'ai l'impression que la plus grande partie de ma concentration est verrouill�e sur la gestion m�moire pour pas faire de conneries.
    La productivit� est d�multipli�e en Python et pour 99% des applications perso que je vais faire, je n'ai pas besoin de la rapidit� apport�e par le C++. Au pire, l'int�gration de code natif est assez ais�.

    [HS]
    Il y a aussi JavaFx2 qui semble assez int�ressant dans ce domaine. Il permet aussi de faire du packaging d'applications pour avoir des apps "self-contained".
    Sans oublier aussi le trio JS/HTML/CSS qui commence � arriver sur desktop.
    [/HS]

  14. #14
    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 : 43
    Localisation : France, Loire (Rh�ne Alpes)

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 456
    Billets dans le blog
    15
    Par d�faut
    Citation Envoy� par Enerian Voir le message
    Le support des IDE : je n'arrive pas � obtenir une auto compl�tion correcte sur ces bindings. J'utilise PyCharm, et impossible de g�n�rer les squelettes python. Ce serait cool que QtCreator propose un bon support de Python. J'ai h�te de voir ce que �a va donner sur la version 2.8 finale.
    Je t'invite � lire ce tutoriel
    Pour la version 2.8 de QtCreator, je ne pense pas que �a aille bien au del� de ce qu'il y a � pr�sent. Au pire la possibilit� de faire un F5 .
    En tout cas je ne pense pas que l'on atteindra le niveau de performance et d'efficience que l'on peut avoir avec le couple QtDesigner-Eric.

    Je ne connais pas PyCharm. Cela semble �tre un IDE de plus, mais � priori orient� Django, l'un des plus c�l�bres framework web de Python. Il n'est peut-�tre pas forc�ment le plus d�di� pour cod� du PyQt ou PySide.


    Citation Envoy� par Enerian Voir le message
    Le fait que certains modules Qt sont redondants avec la librairie standard (threading, networking...). Une bonne pratique consiste � utiliser les modules Qt lorsque l'on interagit avec un contexte Qt, et les modules de la librairie standard sinon. Il n'en reste pas moins qu'on va potentiellement avoir l'utilisation de plusieurs modules diff�rents pour le m�me usage final.
    On ne peut qu'�tre d'accord avec toi su ce point. Le gros souci est que parfois on se casse la t�te � essayer de faire un truc en Qt alors que Python le permet tr�s simplement (le formatage de nombre par exemple).
    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

  15. #15
    Membre tr�s actif Avatar de Shuty
    Homme Profil pro
    Ing�nieur en d�veloppement
    Inscrit en
    Octobre 2012
    Messages
    630
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (�le de France)

    Informations professionnelles :
    Activit� : Ing�nieur en d�veloppement
    Secteur : High Tech - Multim�dia et Internet

    Informations forums :
    Inscription : Octobre 2012
    Messages : 630
    Par d�faut
    Python sort des temps tr�s satisfaisant. Certe il restera toujours derri�re le c++ mais ca reste une alternative interressante.

    Dans mon cas, je dirais bien sure : 100% cpp

  16. #16
    Membre Expert Avatar de PauseKawa
    Homme Profil pro
    Technicien Help Desk, maintenance, r�seau, syst�me et +
    Inscrit en
    Juin 2006
    Messages
    2 725
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, H�rault (Languedoc Roussillon)

    Informations professionnelles :
    Activit� : Technicien Help Desk, maintenance, r�seau, syst�me et +
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 725
    Par d�faut
    Bonsoir Jiyuu,

    Citation Envoy� par Jiyuu Voir le message
    Bon, derni�re (ou pas) tentative de faire venir des Pythoniens
    Mani�re simple de faire une version portable de Python, c'est de choisir une installation pour un utilisateur unique lors de l'installation de Python...

    Allez les gars, faut faire tourner la balance dans l'autre sens
    Une version portable de Python ? Il en existe comme par exemple Python Portable
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    What is included?
    
    Large set of third party python libraries - NumPy, SciPy, Matplotlib, PyWin32, Django, PIL, wxPython, PyQt, PyGame, etc. code editors - PyScripter and IDLE all packaged in a single installer.
    Ce n'est qu'un exemple.

    Python c'est
    � plus simple ;
    � plus lisible ;
    � plus facilement maintenable ;
    � plus facilement mettable � jour.
    Et plus rapide (+++) au niveau d�veloppement.

    Si c'est pour de la performance il existe, par exemple, CPyton. Et l'on garde la rapidit� de d�veloppement.

    Citation Envoy� par arnolddumas Voir le message
    Je dirais que �a d�pend des syt�mes d'exploitation vis�s. Pour Windows et Mac, il faut imp�rativement faire un installeur. Pour Linux, BSD et autres, le mieux est de mettre les sources sur Github ou �quivalent. Apr�s, un simple git clone suivi d'un cmake ou d'un qmake et le logiciel tourne sur la machine.

    Si le logiciel est un minimum int�ressant, il se retrouvera packag� dans la plupart des distributions. Tu peux aussi maintenir toi-m�me les paquets.
    Du code Python c'est universel.

    Bref... Comme je ne pratique pas Qt c'est juste pour r�pondre au "Allez les gars, faut faire tourner la balance dans l'autre sens" vu qu'avec le froid les pythons ne bouges plus (reptiles oblige).

    @+

    Edit:
    Amusez vous dans ce sens.
    Propose un sujet de d�veloppement sur une semaine pour les C++ et Python et regardez qui vas sortir le premier code 'valable'.
    Si aucun C++ n'as cela dans son cookbook vous allez voir la diff�rence, et la maintenance aussi.

  17. #17
    Membre chevronn�
    Inscrit en
    Juillet 2012
    Messages
    231
    D�tails du profil
    Informations forums :
    Inscription : Juillet 2012
    Messages : 231
    Par d�faut
    Citation Envoy� par PauseKawa Voir le message
    Si c'est pour de la performance il existe, par exemple, CPyton. Et l'on garde la rapidit� de d�veloppement.
    Je pense que tu voulais parler de Cython (CPython �tant l�interpr�teur de r�f�rence, le plus couramment utilis�).
    Il y a aussi PyPy qui a de tr�s bon r�sultats (sur des exemples bien choisi il est plus rapide que le C, sinon de mani�re g�n�rale il s�en sort bien).

  18. #18
    Membre Expert Avatar de PauseKawa
    Homme Profil pro
    Technicien Help Desk, maintenance, r�seau, syst�me et +
    Inscrit en
    Juin 2006
    Messages
    2 725
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, H�rault (Languedoc Roussillon)

    Informations professionnelles :
    Activit� : Technicien Help Desk, maintenance, r�seau, syst�me et +
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 725
    Par d�faut
    Citation Envoy� par grim7reaper Voir le message
    Je pense que tu voulais parler de Cython
    Oui... ()

  19. #19
    Expert confirm�
    Avatar de tyrtamos
    Homme Profil pro
    Retrait�
    Inscrit en
    D�cembre 2007
    Messages
    4 486
    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 486
    Billets dans le blog
    6
    Par d�faut
    Bonjour,

    D�sol� de mon retard sur un sujet aussi int�ressant, mais je suis en vacances dans un camping qui a un internet plut�t d�faillant...

    M�me en connaissant C et C++ ainsi qu'une douzaine d'autres langages, je vote, bien s�r, pour Python avec juste quelques limites.

    Python rend le codage vraiment tr�s facile et tr�s rapide. On peut faire beaucoup de POO, et utiliser une quantit� invraissemblable de modules divers dans plein de domaines tr�s diff�rents. Et la mise en oeuvre de ces modules est tr�s ais�e.

    En tant qu'outil de d�veloppement, j'utilise pour ma part Eclipse + Pydev, ce qui me donne une liaison directe avec tous mes projets, ce qui facilite la r�utilisation de morceaux ainsi que la gestion de fonctions de biblioth�que perso. Pydev dispose de toutes les facilit�s d'�dition (coloration syntaxique, completion y compris avec PyQt4, encodages, fins de ligne, debugging, etc...). Il est de plus multiplateforme, ce qui me permet de travailler de la m�me fa�on sur Windows, Linux et Mac OS X. Il a aussi le gros avantage de ne pas �tre �crit en Python, ce qui �vite les in�vitables conflits avec, en particulier, les threads et les processus...

    Les projets en Python + PyQt4 sont tr�s rapides, ou plut�t "aussi rapide qu'il est n�cessaire". Si une r�ponse de 1/10 de seconde convient, utiliser un langage plus complexe pour passer � 1/100 seconde est compl�tement inutile: ce n'est plus un crit�re de choix. En fait, si Python est un langage interpr�t�, les instructions Python passent la main tr�s rapidement au code �crit en C/C++, ce qui fait que 80 ou 90% s'ex�cutent en fait au m�me rythme que le C/C++ compil�.

    Certaines routines critiques en temps d'ex�cution peuvent s'�crire en Cython, ce qui acc�l�re beaucoup � condition de ne pas utiliser trop d'objets sp�cifiques Python (les appels multiples � l'API Python font perdre du temps). Par contre, avec des donn�es de type C/C++, on peut utiliser directement les biblioth�ques C/C++.

    Pour la distribution du code: rien de plus facile. J'utilise beaucoup cx_freeze sous Windows et sous Linux, et �a marche tr�s bien (avec quelques tatonnements tout de m�me). Cela permet de distribuer un "exe" accompagn� de toutes les biblioth�ques n�cessaires, y compris, bien s�r, de l'interpr�teur Python. Compte tenu de la puissance des machines actuelles, le volume que �a repr�sente n'est vraiment pas un probl�me.

    Sous Windows, apr�s traitement par cx_freeze, on peut utiliser un installeur comme innosetup, et on obtient un fichier qui s'installe comme n'importe quel logiciel Windows: les utilisateurs ne sauront m�me pas que c'est du Python... Je n'ai pas essay� sous Linux, mais je sais qu'il est possible de fabriquer des paquets (.dev, .rpm) et de cr�er un d�pot local personnalis�.

    J'applique tout �a pour mes projets. Mon plus gros projet fait le traitement d'un concours internationnal de photos pour mon photo-club (en tant qu'amateur b�n�vole). Il est �crit en Python + PyQt4. Il contient plus de 20 fen�tres et plus de 25000 lignes de codes Python, avec:

    - cr�ation d'�tiquettes autocollantes avec codes barres
    - lecture de codes barres avec pilotage du lecteur (sous Windows et Linux)
    - formulaire de saisie avec des widgets personnalis�s et de nombreuses v�rifications. Les widgets personnalis�s, �crits en Python, sont rendus utilisables par QtDesigner
    - gestion compl�te d'une base de donn�es relationnelle de 5000 articles, une quinzaine de tables avec contraintes de cl�s �trang�res et mises � jour et destructions en cascade. J'utilise sqlite3 mais Postgresql ou Mysql sont possibles.
    - consultation/modification dans la base de donn�es avec des outils graphiques de PyQt4 (QTableView). On peut �diter des tables temporaires � partir de scripts sql �crits en interactif (QTextEdit). La recherche/filtrage peut s'effectuer avec les instructions sql, mais aussi par wildcard, expressions r�guli�res et par mots similaires (avec ratio param�trable). Le tri peut �tre fait avec l'ordre du dictionnaire fran�ais (script Python utilis� directement par sql)
    - t�l�chargement ftp dans les 2 sens avec barre de progression et, si n�cessaire, avec reprise
    - compression/d�compression zip
    - une fen�tre �diteur de texte (QTextEdit)
    - une fen�tre navigateur internet qui permet, entre autres, de lire les manuels d'utilisation �crits en html
    - �dition de r�sultats sous diverses formes: html, csv pour Excel, pdf, jpg, ... J'ai m�me un programme utilisant le module PyPdf pour regrouper plusieurs centaines de fichiers pdf en un seul pour faciliter l'impression.
    - Traitement par cx_freeze pour obtenir un exe facilement transportable d'un pc � un autre, et qui s'ex�cute sans n�cessiter d'installer Python et PyQt4.
    - ...

    Sinc�rement, quand je vois avec quel facilit� j'ai fait tout �a, je ne regrette pas d'avoir choisi Python. Et comme j'en suis le principal utilisateur, je peux confirmer que �a marche!

    J'avais parl� tout au d�but de "quelques limites": les voici.

    En tant que langage interpr�t�, Python a quelques souplesses qui peuvent pousser � la faute. Trois exemples:
    - une simple faute de frappe peut faire cr�er involontairement une nouvelle variable sans aucun message d'erreur puisqu'il n'y a pas de d�claration. Et l'importance de l'erreur ainsi commise ne sera visible qu'� l'ex�cution.
    - certaines erreurs de codage n'apparaitront que lorsque la fonction concern�e sera effectivement solicit�e, c'est � dire le plus souvent apr�s la distribution du logiciel.
    - comme les variables, les arguments pass�s aux fonctions n'�tant pas typ�s, on peut passer n'importe quoi, mais les cons�quences se verront dans les traitements qui les utilisent: surprises possibles.

    On peut aussi rencontrer des difficult�s en cas d'exigence de temps de r�ponse, en particulier avec le ramasse miette qui peut se d�clencher n'importe quand.

    On peut, bien s�r, compenser en partie avec une (tr�s tr�s) solide m�thode de d�veloppement,mais ce serait encore plus fiable si on ne pouvait pas faire autrement. Autrement dit, j'adore Python, mais si je devais coder pour Ariane ou pour le nucl�aire, j'utiliserais un langage beaucoup plus contraignant... ADA?

  20. #20
    Invit�
    Invit�(e)
    Par d�faut
    @tyrtamos : merci pour le retour d'exp�rience sur un vrai projet ! Je te rejoins sur les inconv�nients que tu cites, mais pour moi, leur impact est limit� sur des projets personnels non critiques, quel que soient leur taille. Des noms explicites et des tests permettent d'anticiper bon nombre de soucis.

    Par ailleurs, en passant par hasard sur le site de Riverbank, j'ai vu que PyQt5 est disponible en version stable. Je ne suis pas sur qu'ils supportent tout, mais c'est une excellente nouvelle. Je ne pensais pas que �a sortirait si vite.

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