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

GUI Python Discussion :

Quel langage et/ou quelle bibliothèque utiliser pour un usage professionnel ?


Sujet :

GUI Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 738
    Par défaut Quel langage et/ou quelle bibliothèque utiliser pour un usage professionnel ?
    Note de Jiyuu :
    Bonjour,

    Suite à quelques petits hors-sujet sur ce topic http://www.developpez.net/forums/d13...ython-en-2013/ merci de continuer sur ce fil tout ce qui touche au débat sur l'utilité ou non de Python dans le cadre professionnel.




    Salut,

    Citation Envoyé par fred1599 Voir le message
    Utiliser python en entreprise n'a rien de gênant, d'ailleurs si on l'utilise côté production, c'est aussi pour le gain de temps de codage.

    Utiliser le C/C++ aura un intérêt si on a besoin de performance pure niveau calculatoire.

    D'ailleurs si on utilise PyQt ou Qt sans parler d'autres choses que d'interface, quelle est la différence?
    Si vous travaillez en entreprise, vous devez savoir que le "système informatique" se décompose en (au moins) 3 couches:
    • le porte-feuille d'application "métiers"
    • les environnements OS/Base de données/réseau (qui supportent les applications métiers),
    • l’infrastructure matérielle (serveurs, stockage, réseau) qui supportent ces environnements.


    "environnement" et "infrastructures" sont gérés par nombre d'administrateurs et ingénieurs systèmes. Leur boulot est de maintenir le niveau de service des environnements: résoudre problèmes et pannes et de mettre en production patch, nouvelles versions, nouvelles applications,...

    Cette population fait de la "production informatique". Son boulot n'est pas de programmer, mais d'appliquer des "procédures" suivant des "processus" en attendant qu'on sache "automatiser" leurs activités.
    note: certains prennent le temps de réaliser de petits scripts qui fiabilisent certaines actions. Ils utilisent bash ou WSH, plus rarement PERL, exceptionnellement Ruby, Python,... Comme c'est un univers de ligne de commande, les GUI sont rarement utilises.

    Puis nous avons ce qui ont en charge développement/évolution/maintenance du portefeuille des applications métiers. Ce sont parfois des développements "internes" (maison) mais le plus souvent produits par des éditeurs, une communauté open source,...

    Développer du code étant rarement dans les métiers de l'entreprise (il devrait), une fraction du portefeuille des applications métiers sera confie a un "sous traitant" qui devra maintenir faire évoluer des applications qui auront parfois été développés par d'autres.

    Le "sous traitant" devra trouver chez lui des compétences techniques qui connaissent langages, bases de données,... utilisées par les applications et comme les applications sont "spécifiques" former des personnes pour pouvoir les faire évoluer,... i.e former une petite équipe plus ou moins "dédiée".

    Une personne ne pourra exceller en tout et aura rarement le temps de tout faire. Le nombre de personnes qui pourra être dédie a temps plein ou partiel sera "fini". Donc on réduira la variabilité des langages (chaînes de build), des bases de données, des type d'applications,...
    Pour les langages, on s’écartera rarement de PHP, Java, C++, C# car ce sont des expertises "faciles" a trouver sur le marche.

    Dans ce contexte, pousser dans le portefeuille applicatif des applications PyQt qui demanderont une expertise C++, Qt et Python fera couiner beaucoup de monde.

    Et ça n'a rien a voir avec les qualités techniques de Python ou de PyQt, c'est une question de coûts, de savoir faire,... et de rigidité des décideurs.

    Pour faire une analogie, nous sommes tous concernés par l’énergie consommées par nos maisons. Des solutions "intelligentes" existent avec le bois et la paille, mais les savoir faire, la filière industrielle est a construire. Cela n’empêche pas des réalisations se faire ici ou la mais la pénurie des savoir faire empêche la généralisation.

    Une autre implication est que PyQt, c'est bien pour apprendre les fonctionnalités de Qt mais très insuffisant pour être développeur d’applications Qt qui devra avoir une bonne expérience C++.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 738
    Par défaut
    Salut,

    Citation Envoyé par fred1599 Voir le message
    Ça veut dire quoi proprement pour vous ? Respecter la PEP8 ? Autres ?

    Deux codeurs professionnels diront que pour leur code faisant la même chose, chacun des codes adverses ne sera pas propre, qui a raison?
    Lorsque je code, mon code sera "propre", s'il passe avec succès:
    • la revue de code,
    • les tests unitaires,
    • les tests fonctionnels,
    • 2/3 mois de production sans bugs,

    Compétences et le savoir faire sont nécessaires mais le logiciel reste un "produit" qui répondra ou pas a certaines exigences de qualités vérifiées par des "tiers".

    Lorsque je fais un "brico" ou un "proof of concept" - ce pourquoi j'utilise Python entre autre -, l'objectif n'est pas de coder "proprement" mais montrer a quoi ça pourrait ressembler et avoir une idée de l'architecture que devrait avoir l'application.
    Ça part souvent a la poubelle - c'est l’intérêt de Python -, parfois ça dépanne en attendant que...
    En tout cas, ça ne deviendra jamais une application sans l'ajout de nombre d’itérations, revues, et autres tracasseries. C'est a ce moment la qu'on pourra intégrer des standards de développements et "faire propre" éventuellement dans d'autres langages.

    Si le "proto" est réalisé par un autre, il pourra utiliser son langage favori et avoir une approche (un design) complètement différent.
    Les deux "proto" fonctionnent, mais l'important sera "le design" qui permettra de maîtriser les difficultés et d'organiser le vrai boulot de développement.
    Qui gagne? En général, c'est le design le moins coûteux/risque a développer. Qui décide? Parfois c'est a pile ou face, souvent le truc s'impose.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    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 wiztricks Voir le message
    Une autre implication est que PyQt, c'est bien pour apprendre les fonctionnalités de Qt mais très insuffisant pour être développeur d’applications Qt qui devra avoir une bonne expérience C++.
    Euuuh... pas besoin de connaitre C++ pour coder en PyQt. Je vois pas vraiment le rapport ?
    Y a pas que le C++ ou Java pour coder... on peut aussi faire de très bons logiciels en Python, par exemple l'un des meilleurs EDI -orienté PyQt je le reconnais- est Eric et entièrement écrit en PyQt il me semble.

    Citation Envoyé par wiztricks Voir le message
    Salut,
    Ça part souvent a la poubelle - c'est l’intérêt de Python -, parfois ça dépanne en attendant que...
    Python son intérêt c'est d'aller à la poubelle ??? C'est peut-être ta conception des choses, mais heureusement pour le serpent ça n'est pas celle de tout le monde.

    Par contre je comprends un peu mieux ton envie de "déglinguer" un soft Python

    Citation Envoyé par wiztricks Voir le message
    Si le "proto" est réalisé par un autre, il pourra utiliser son langage favori et avoir une approche (un design) complètement différent.
    Les deux "proto" fonctionnent, mais l'important sera "le design" qui permettra de maîtriser les difficultés et d'organiser le vrai boulot de développement.
    Qui gagne? En général, c'est le design le moins coûteux/risque a développer. Qui décide? Parfois c'est a pile ou face, souvent le truc s'impose.
    - W
    Et ? Coder en Pyhton c'est dangereux et coûteux ?
    Il est souvent rappelé qu'un programme Python sera codé plus vite qu'un programme C++, donc moins de temps et comme le temps c'est de l'argent...
    Il y a des failles de sécu dans tous les scripts écrits en Python ? Le langage n'est pas stable ?

    Il ne me semble pas.
    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

  4. #4
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 738
    Par défaut
    Salut,

    Citation Envoyé par Jiyuu Voir le message
    Envoyé par wiztricks Voir le message
    Une autre implication est que PyQt, c'est bien pour apprendre les fonctionnalités de Qt mais très insuffisant pour être développeur d’applications Qt qui devra avoir une bonne expérience C++.
    Euuuh... pas besoin de connaitre C++ pour coder en PyQt. Je vois pas vraiment le rapport ?
    Y a pas que le C++ ou Java pour coder... on peut aussi faire de très bons logiciels en Python, par exemple l'un des meilleurs EDI -orienté PyQt je le reconnais- est Eric et entièrement écrit en PyQt il me semble.
    Essaie de postuler a un job de développeur Qt en SSII en n'ayant qu'un savoir faire PyQt....

    - W

    Salut,

    Citation Envoyé par Jiyuu Voir le message
    Python son intérêt c'est d'aller à la poubelle ??? C'est peut-être ta conception des choses, mais heureusement pour le serpent ça n'est pas celle de tout le monde.

    Par contre je comprends un peu mieux ton envie de "déglinguer" un soft Python
    Python son intérêt c'est d'aller à la poubelle ??? C'est peut-être ta conception des choses, mais heureusement pour le serpent ça n'est pas celle de tout le monde.

    Par contre je comprends un peu mieux ton envie de "déglinguer" un soft Python
    Python est un langage de programmation qui me permet de réaliser un "proto" d'un millier de lignes en quelques heures.

    Le but d'un proto est pouvoir montrer au client qu'on a bien compris ce qu'il voulait. Au début, on a souvent des "c'est pas ce que je veux". Plus tard, le truc lui donne des idées mais les nouvelles fonctionnalités remettent en cause l'architecture initiale.

    Au bout de quelques itérations, on a un code qui montre a quoi ce ressemble en vrai et un design qui permet de faire un chiffrage.

    Si je devais le coder en C++, chaque itération prendrait 2 a 3 fois plus de temps. Pire, c'est "contraignant": ça m'oblige a traiter des détails plutôt qu'a garder le focus sur le design et les fonctionnalités high level.

    - W
    PS: Difficile d'utiliser PyQt pour ce type d’exercice, comme l'a fait remarquer Tyrtamos programmer avec Qt c'est passer beaucoup de temps a décoder la doc.
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  5. #5
    Expert confirmé
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    4 062
    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 : 4 062
    Par défaut
    Citation Envoyé par Jiyuu
    Python son intérêt c'est d'aller à la poubelle ??? C'est peut-être ta conception des choses, mais heureusement pour le serpent ça n'est pas celle de tout le monde.
    Non, non... je vois très bien où il veut en venir, avant python était utilisé pour tester des algorithmes et leur complexité.

    Maintenant je suis moins sûr, de plus en plus d'entreprises (c'est un peu hors sujet) demande des pros django. Certes pas trop de rapport avec les IHM, mais on peut espérer dans très peu de temps que python soit un peu mieux reconnu que simple testeur.

    Citation Envoyé par Wiztricks
    Lorsque je code, mon code sera "propre", s'il passe avec succès:
    • la revue de code,
    • les tests unitaires,
    • les tests fonctionnels,
    • 2/3 mois de production sans bugs,

    Compétences et le savoir faire sont nécessaires mais le logiciel reste un "produit" qui répondra ou pas a certaines exigences de qualités vérifiées par des "tiers".
    Les tests unitaires et fonctionnels je les mettrais ensemble, et ça me semble logique dans le sens, où on écrit pas 15000 lignes et on teste.

    Dans des codes ils existent souvent des bugs, c'est pour cela qu'existe les reports de bug, et même pour des softs payants, les mises à jour sont assez récurrentes. Difficile d'avoir dans ce cas des codes propres, il n'y seront jamais.

    La revue de code, tu parles sans doute de l'optimisation du code, ce qui dans un sens est normal, rien ne me choque...

    Je pense qu'on a la même notion de propre, et en ce qui concerne un code propre, il peut être fait aussi bien par un professionnel que par un amateur, non?

    Citation Envoyé par Jiyuu
    Euuuh... pas besoin de connaitre C++ pour coder en PyQt. Je vois pas vraiment le rapport ?
    En quelque sorte les notions en C++ sont incontournables, si, car beaucoup d'exemples de la documentation officielle aident à comprendre, et ils sont en C++.

  6. #6
    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 fred1599 Voir le message
    Non, non... je vois très bien où il veut en venir, avant python était utilisé pour tester des algorithmes et leur complexité.

    Maintenant je suis moins sûr, de plus en plus d'entreprises (c'est un peu hors sujet) demande des pros django. Certes pas trop de rapport avec les IHM, mais on peut espérer dans très peu de temps que python soit un peu mieux reconnu que simple testeur.
    tant la biblio que l'artiste (et le film il parait ^^)

    Citation Envoyé par fred1599 Voir le message
    En quelque sorte les notions en C++ sont incontournables, si, car beaucoup d'exemples de la documentation officielle aident à comprendre, et ils sont en C++.
    "Je panne que dal au C++". J'entends par là que je suis incapable d'expliquer un script C++. J'ai bien essayé d'essayer mais les .h, .cpp, .pro me font littéralement tomber dans un coma profond dont seul un .py ou un .ricard peuvent me faire sortir

    Non, il n'est pas nécessaire de connaitre C++ pour coder en PyQt... et si, les participants à ce topic pensent ceci, je m'engage à vous faire changer d'avis dans les 12 mois qui arrivent...
    Parole de moi
    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

  7. #7
    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 wiztricks Voir le message
    Difficile d'utiliser PyQt pour ce type d’exercice, comme l'a fait remarquer Tyrtamos programmer avec Qt c'est passer beaucoup de temps a décoder la doc.
    Oui certes, mais comme tout autre langage que tu apprends. Par contre après faire un programme en PyQt pourrait être un gain de temps, puisqu'un programme est plus rapide à coder en Python qu'en C++.

    Après tout dépend du nombre de programme que tu as à faire :
    Si tu fais un programme tous les 10ans, ré-apprendre un langage c'est peut-être pas utile (quoique... niveau update/upgrade ça pourrait peut-être être intéressant)
    Si tu dois faire un ou deux programmes par mois sur des bases assez différentes, apprendre un langage qui te fera gagner du temps sera forcément rentable à tout point du vue...

    Mais ça reste mon point de vue ^^
    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

  8. #8
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 738
    Par défaut
    Citation Envoyé par Jiyuu Voir le message
    Envoyé par wiztricks Voir le message
    Difficile d'utiliser PyQt pour ce type d’exercice, comme l'a fait remarquer Tyrtamos programmer avec Qt c'est passer beaucoup de temps a décoder la doc.
    Oui certes, mais comme tout autre langage que tu apprends. Par contre après faire un programme en PyQt pourrait être un gain de temps, puisqu'un programme est plus rapide à coder en Python qu'en C++.
    Construire une application ou l'utilisateur interagit via un GUI, c'est réaliser un IHM et une application. Lorsqu'on débute, on ne comprend pas l’intérêt de "bien" séparer les deux. Avec un peu d’expérience, vous voudrez pouvoir tester indépendamment les fonctions de l'application qui seront activées par les dialogues proposes par l'IHM.

    Si l'IHM utilise les widgets de base (button, list, tree, table), le boulot a faire pour le coder sera semblable quelque soit le GUI. Il faudra creer, relier, positionner, ... le même nombre d'objets pour obtenir un rendu semblable.

    De ce point de vue, choisir Qt, Wx, Gtk,... ou autre ne changera pas grand chose cote "complexite". Le gain de temps sera plutôt sur le cote "application" écrite en Python.

    Pour illustrer les ennuis de la couche fine au dessus de la librairie C/C++ (i.e. le manque d’intégration avec Python), il faut faire des trucs non-standard. Reprenez le post, rambc souhaitait avoir un look&feel pas trop degueu pour jouer au sudoku. A partir des spécifications, coder le truc avec Tkinter ne m'a pris que deux itérations de 2/3 heures chacune.
    Si on voulait faire la même chose avec Qt, Wx,... pas facile de le faire sans spécialiser les équivalents de canvas pour masquer les détails de la gestion des items. Avec Tkinter on le fait aussi mais pas besoin de descendre aussi "bas".

    Je ne dis pas que Tkinter est "meilleur", juste qu'il manque aux plugins Qt, Wx, ... des niveaux d'abstractions qui les rendent plus simples a utiliser depuis Python.

    - W

    Salut,
    Citation Envoyé par fred1599 Voir le message
    Je pense qu'on a la même notion de propre, et en ce qui concerne un code propre, il peut être fait aussi bien par un professionnel que par un amateur, non?
    Les amateurs sont parfois plus compétents que certains professionnels! Mais le sujet n'est pas sur la compétence des personnes mais sur la qualité de ce qu'ils produisent.

    Le fait est que vous ne produisez pas le même code si c'est pour tester une fonctionnalité, réaliser un truc vous, le prototype d'une application, le module d'une application de production,...
    In fine, ce sera toujours du code et on peut même imaginer qu'il réalise les mêmes fonctions. Mais vous ne produirez pas le même code.
    Qu'est ce qui change? Le contexte.

    Allez voir sur Pypi, les librairies python qui y sont disponibles sont classées en fonction de leur "maturité".

    Réalisez un soft sur un coin de table qui vous semble mériter d’être publie sur PyPI: vous n'allez probablement pas le mettre dans la catégorie "Stable/Production Release" mais plutôt "Pre-Alpha", "Alpha",...
    Réciproquement, si un soft sur PyPI vous intéresse vous n'allez pas le mettre en production sans l'inspecter, faire une analyse de risque plus ou moins poussé en fonction de sa maturité, voir comment il est teste,...

    - W

    Salut,

    Citation Envoyé par Jiyuu Voir le message
    Non, il n'est pas nécessaire de connaitre C++ pour coder en PyQt... et si, les participants à ce topic pensent ceci, je m'engage à vous faire changer d'avis dans les 12 mois qui arrivent...
    Parole de moi
    Vous pouvez apprendre a utiliser les fonctionnalités de Qt via Python et PyQt. Et c'est un bon chemin cote progression. Si vous voulez maîtrisez Qt, il faudra se mettre a C++. Pour ce qui est de prétendre a un job de développeur Qt, impossible de ne pas avoir une expérience C++/Qt.

    Et il faudra plus de 12 mois pour convaincre du contraire.
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

Discussions similaires

  1. Réponses: 3
    Dernier message: 24/08/2011, 15h51
  2. Quelle technologie utilisée pour apllication web?
    Par boudou dans le forum Général Conception Web
    Réponses: 3
    Dernier message: 10/04/2006, 17h19
  3. Réponses: 3
    Dernier message: 11/11/2005, 15h52
  4. [Info] Quels outils de develpt puis-je utiliser pour pocketpc
    Par chris69000 dans le forum Développement Mobile en Java
    Réponses: 2
    Dernier message: 22/06/2004, 10h25

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