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: Considérez vous que Python soit adapté à un usage professionnel ?

Votants
155. Vous ne pouvez pas participer à ce sondage.
  • Oui, Python est adapté à une utilisation professionnelle (argumentez)

    111 71,61%
  • Non, il n'est pas adapté pour cet usage et un autre langage doit être choisi (argumentez)

    9 5,81%
  • Je n'utilise pas Python

    18 11,61%
  • Sans avis

    15 9,68%
  • 1 0,65%
  • 1 0,65%
Python Discussion :

Python est-il adapté pour un usage professionnel ?


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé

    Profil pro
    Développeur informatique
    Inscrit en
    Mars 2008
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2008
    Messages : 53
    Par défaut
    Bonjour
    Je plussoie le fait que Python soit professionnel et ne comprend même pas pourquoi la question se pose.
    J'attend d'un langage pour professionnel qu'il produise (car c'est bien le produit qui interesse le client) des applications extrémement :
    Stable
    Performantes
    Maintenables
    Rapide à implémenter

    Avec ce cahier des charges python répond parfaitement aux besoins de certains projets.

    Sa stabilité n'est pas à prouver (du moins celle de CPython).
    Ses perfomances sont tout à fait correctes à en croire les benchmarks. La possibilité d'interfacer facilement d'autre langages permettant de déléguer des taches plus spécifique (crypto, acces disque...).
    Sa syntaxe est un plaisir à maintenir. Le seul bémol serait le nombre de dév Python disponible mais la uqalité est en général au rendez-vous et il me semble voir de plus en plus de dev Python.
    L'implémentation et le déploiement sont d'une facilité déconcertante. Le sytème de package est un plaisir (setup.py pour les projets).

    Dans l'embarqué il se couple parfaitement avec le C/C++ si des librairies ont déjà été écrite en C. Dans le web : Django, Plone, Pyamid sont reconnu (Pyramid a une couverture de test assez exhaustive).

    Il reste cependant à éviter pour certaines applications. Je n'écrirais pas un moteur de BD en python, ni un programme pour un microcontrolleur (qui n'aurait pas la place pour embarquer python). Je préfére encore faire du HTML/JS dans un template mako/jinja/django pour mes interfaces web que d'utiliser Pyjama (au même titre que je ne suis pas fan de GWT). Et pour les IHM je pense que le nombre de librairie proposé et la percé de PyQt parle elle même en défaveur de ce langage pour ce domaine (bien qu'il script parfaitement des scènes graphiques cf Blender).

    Je pense donc que Python a tout à fait sa place en entreprise et continuerais à l'utiliser et à le faire utiliser chez nous.

  2. #2
    Membre expérimenté Avatar de Stopher
    Homme Profil pro
    Responsable technique
    Inscrit en
    Juin 2004
    Messages
    198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Nord (Nord Pas de Calais)

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

    Informations forums :
    Inscription : Juin 2004
    Messages : 198
    Par défaut
    Oui ! il l'est .

    Langage bien ficelé, communauté active, il y a souvent un module qui répond au besoin, et qui a été éprouvé et documenté ..

    Utilisable pour des scripts d'admin sys, pour le web, pour des applis clientes, bref répond aux besoins du plus grand nombre.

    Alors sans comparer avec d'autres langages, ( car ce n'est pas la question ), oui Python est parfaitement adapté au milieu professionnel .

    Seul hic selon moi ... on a du mal à trouver des codeurs Python à l'embauche .

    Ch.

  3. #3
    Invité de passage
    Homme Profil pro
    imprimeur salarié
    Inscrit en
    Août 2010
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : imprimeur salarié
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Août 2010
    Messages : 1
    Par défaut
    Pour un pur autodidacte en informatique, ce sujet est un régal.
    Même si mon attention se porte sur un autre langage, on voit des réponses éclaircissantes sur le monde professionnel
    L'intérêt de la question réside essentiellement dans vos réponses messieurs et rien que pour cela elle méritait d'être posée.
    Oui Python a la réputation d'être le langage pour les noobs en programmation et là, je vois que pas cela.
    Pour une reconversion, qui sait ?
    Bien le bonjour !

  4. #4
    Membre émérite

    Homme Profil pro
    Ingénieur
    Inscrit en
    Août 2010
    Messages
    662
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2010
    Messages : 662
    Par défaut
    Il ne faut limiter le sujet à "la création de programmes/logiciels à destination de clients".

    Comme la très bien dit je-ne-sais-plus-qui en début de conversation, de nombreuses entreprises/labos ont besoin de macros/softs/scripts pour des besoins purement interne. Un language scripté/dynamique comme python se prête vraiment bien pour ce genre d'activités. Et on parle bien là du domaine professionnel.

    De plus,

    J'ai travaillé dans un laboratoire de recherche et le python remplace Matlab pour certains :
    Les bibliothèques mathématiques de python sont riches, bien documentées et aisées à utiliser (numpy, scipy, matplotlib et j'en passe). Les performances sur ce plans sont très satisfaisantes, ce qui fait que python peut souvent très bien remplacer des outils de prog mathématique tels que MatLab, Scilab ou encore Octave.

    Avec python, des gens comme moi qui ne sont pas programmeur (et qui faut bien l'avouer ne le seront jamais ) peuvent développer facilement et en peu de temps de petits softs à usage interne.

    Donc, professionnellement parlant, python est top!

    Ju

  5. #5
    Membre Expert
    Avatar de shenron666
    Homme Profil pro
    avancé
    Inscrit en
    Avril 2005
    Messages
    2 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : avancé

    Informations forums :
    Inscription : Avril 2005
    Messages : 2 580
    Par défaut
    Je ne vois pas pourquoi un langage ne serait pas utilisable en milieu professionnel

    A la limite, qu'un langage soit un mauvais choix, ça peut encore se défendre, mais de là à généraliser...

    De toute façon, partant du fait qu'il y a des offres d'emploi demandant des compétences en Python
    Tutoriels OpenGL
    Je ne répondrai à aucune question en MP
    - Si c'est simple tu dis que c'est compliqué et tu le fait
    - Si c'est compliqué tu dis que c'est simple et tu le sous-traite ou le fait faire par un stagiaire.

  6. #6
    Futur Membre du Club
    Inscrit en
    Novembre 2012
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Novembre 2012
    Messages : 5
    Par défaut
    Impossible d'être pro avec Python. C'est mon avis et je le partage. C'est un langage orienté ligne de commande. L'utilisation de l'indentation est en particulier une véritable catastrophe, surtout pour ceux habitués à structurer leur code. Ceci dit, on en fait des choses formidables. Un jour j'aimerai bien connaitre le pourquoi de la popularité de Python.

  7. #7
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par vfelix Voir le message
    Impossible d'être pro avec Python. C'est mon avis et je le partage.
    Euh... ok... mais si tu pouvais nous expliquer sur quoi tu fondes cet avis en utilisant des arguments pertinents, ce serait chouette. Parce que comme évoqué plus haut, des logiciels assez complexes et volumineux en terme de code sont réalisés avec Python (Youtube, Spotify, Reddit.... - les liens pointent vers des articles expliquant leur utilisation de Python). Donc je serais curieux de savoir sur quoi repose ton assertion.
    Citation Envoyé par vfelix Voir le message
    C'est un langage orienté ligne de commande.
    Tu peux étayer un peu ? je comprend pas bien ce que tu veux dire.
    Citation Envoyé par vfelix Voir le message
    L'utilisation de l'indentation est en particulier une véritable catastrophe, surtout pour ceux habitués à structurer leur code.
    Là encore, je comprend pas. Qu'on aime ou qu'on aime pas, je veux bien, mais en quoi forcer l'indentation nuit à la structuration du code ?!
    Citation Envoyé par vfelix Voir le message
    Un jour j'aimerai bien connaitre le pourquoi de la popularité de Python.
    Tu as lu tous les posts précédant le tiens ? Tu as déjà de bons éléments de réponses à cette question (après, libre à toi d'être ou non d'accord, bien entendu ).

  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
    Citation Envoyé par Enerian Voir le message
    ...je veux bien, mais en quoi forcer l'indentation nuit à la structuration du code ?...
    Code pythpn : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    def (toto) :
        blablablabla
        blablablabla
        blablablabla
     
    def (tata) :
        blablablabla
        blablablabla
        blablablabla

    Code c++ : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    def toto {
    blablablabla
             blablablabla
       blablablabla
     
    }
     
        def tata {
     blablablabla
             blablablabla
    blablablabla
    }


    C'est clair que C++ (comme beaucoup de code utilisant {}) c'est vachement mieux structuré, ça rend même le code super lisible et propre...

    Bon j'exagère un peu, mais l'idée est là
    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
    Futur Membre du Club
    Inscrit en
    Novembre 2012
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Novembre 2012
    Messages : 5
    Par défaut
    Citation Envoyé par Enerian Voir le message
    Euh... ok... mais si tu pouvais nous expliquer ......
    Désolé pour le retard. Pour la structuration, qq1 a déjà expliqué le problème. J'ajoute le problème dans python des caractères non affichés. Il y en pas mal en ascii, dont en particulier l'espace et la tabulation, qui à eux seuls peuvent créer des problèmes invisibles. De plus au delà de 3 niveaux d'indentation, c'est vite le b....
    Quant au fait que python est un langage orienté ligne, c'est dans sa nature. C'est un langage de "scripting" comme j'ai pu déjà lire.
    En revanche, le fait qu'il soit pro ou non, c'est un jugement purement personnel. C'est l'avenir qui le dira.
    Pour la petite histoire, je me souviens de mon premier cours de SQL, juste avant qu'il ne devienne célèbre et populaire. Ce langage était destiné à l'origine à l'usage de l'utilisateur final, comme par exemple le PDG d'une boite désireux de faire ses propres requêtes en base (on nous le "vendait" comme cela). Maintenant il est devenu un langage de programmation professionnel incontesté, a destination des programmeurs, et cela malgré ses énormes défauts (pas de norme, optimisation compliquée, etc...). Comme quoi, le statut "pro" n'est jamais prévisible. Le marketing et l'irrationnel ont une part importante dans le destin d'un langage.

  10. #10
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par vfelix Voir le message
    En revanche, le fait qu'il soit pro ou non, c'est un jugement purement personnel.[...]Comme quoi, le statut "pro" n'est jamais prévisible.
    En fait, la question "Tel langage est-il pro" n'a pas grand sens. La question est plutôt : "Tel langage peut-il être utilisé dans un cadre professionnel ?". Ou encore "Tel langage est-il apte à répondre à certaines problématiques rencontrées dans un cadre professionnel ?".

    Quand on a clarifié la question, la réponse est immédiate pour le langage Python : oui. Ce n'est pas une question d'avis ou de préférence, c'est une question de réalité. Le langage a déjà été utilisé pour répondre a des problématiques dans un cadre pro.

  11. #11
    Membre éclairé
    Avatar de airod
    Homme Profil pro
    Gérant Associé, DMP Santé et Directeur technique
    Inscrit en
    Août 2004
    Messages
    767
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Gérant Associé, DMP Santé et Directeur technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 767
    Par défaut
    Ne peut on pas juste faire le bilan.

    Il y a 6 ans quand j'ai commencé ma carrière dans l'informatique, les poste de dev python était rare et les compétences aussi rare.

    6 ans après, il apparait que les compétences soit toujours aussi rare, mais le nombre de poste a tendance à exploser (toute proportion gardée).
    Je suis contacté en ce moment en moyenne 1 fois par semaine par des recruteur à la recherche de compétences python.

    Un langage qui ne serais pas PRO, ne serais certainement pas plébiscité par des entreprises de plus en plus nombreuses. Non!?

  12. #12
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 775
    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 775
    Par défaut
    Citation Envoyé par Enerian Voir le message
    En fait, la question "Tel langage est-il pro" n'a pas grand sens. La question est plutôt : "Tel langage peut-il être utilisé dans un cadre professionnel ?". Ou encore "Tel langage est-il apte à répondre à certaines problématiques rencontrées dans un cadre professionnel ?"
    Le fait qu'un forum Python existe sur Developpez (Club des développeurs et IT "pro") depuis 2004 répond déjà a la question.

    Citation Envoyé par airod Voir le message
    6 ans après, il apparait que les compétences soit toujours aussi rare, mais le nombre de poste a tendance à exploser (toute proportion gardée).
    Être suffisamment demande pour rémunérer des développeurs Python comme l'est aujourd'hui PHP, ou "Python deviendra-t-il un jour main stream" est un sujet a lui tout seul.
    Comme c'est de la prospective, un sondage - qu'en pensez vous? - pourrait être intéressant.

    Canvas a poste dans le forum TCL/Tk l'URL d'une suite de slides qui presente:
    The 10 programming languages most likely to drive developers insane
    When developers discuss the programming languages they hate the most, these names tend to come up - a lot
    Python y est bien sur cite.
    Le plus remarquable est la bullet:
    How to avoid it: Don’t work at Google, Yahoo or NASA.
    Si vous savez comment utilisent Python ces sociétés la.... on y retrouve de vieux sujets de discussions.
    Avec Google cherchez "programming at large at small" vous trouverez pleins de bonnes lectures.
    Une a ne pas manquer est le vieux papier de l'UCB. Il parle de construction des "programmes" avant l'invention de la POO, et de Python,... et explique l’intérêt des langage de "glue" - module interconnection langages - i.e. d'un Python.

    Pourquoi ce qui se fait chez "Google, Yahoo or NASA..." n'est pas plus populaire en France?
    Nous avons trop spécialisé l’activité de "codage" dans l'organisation du développements d'applications.
    Un développeur qui "code" encore après 10 ans d’expérience n'a pas eu l’opportunité d’évoluer vers des postes plus rémunérateurs comme manager, chef de projet,...
    Problème: Après 10 ans d’expérience vous avez a peine eu le temps d'apprendre le métier du "dev" avec un langage "main stream" particulier. et on tombe dans le syndrome "if all you have is a hammer, everything looks like a nail"

    Si vous regardez les choses de plus haut, c'est comme un eco-systeme. Il s'auto-entretient...
    Bonne nouvelle, le "cloud" fera bouger les choses.
    Mais en France, ce sera plus lent qu'ailleurs.

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

  13. #13
    Membre très actif
    Avatar de Aiigl59
    Homme Profil pro
    Freelance
    Inscrit en
    Janvier 2008
    Messages
    105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Jura (Franche Comté)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2008
    Messages : 105
    Billets dans le blog
    1
    Par défaut en haut... en bas !
    Pour semer la "clarté dans la confusion"
    Les langages de bas niveaux sont :
    - le binaire
    - l'hexa
    - l'assembleur
    Pourquoi ? : parce que ces langages sont directement écris avec les instructions ou les mnémoniques du processeur cible.
    Pour créer un exécutable il faut assembler ces instructions (pour produire le binaire cible)
    à partir du C on touche les langages dits de "haut niveau" car le compilateur est souvent écrit pour plus d'un processeur cible, suivant ses versions (uc, x86, arm, etc...).
    Le C (ansi) a été créé justement (en tant que langage de haut niveau) pour s'affranchir de l'assembleur spécifique à chaque cible recherché, on parle alors de "portabilité" qui est le propre d'un langage de "haut niveau".
    Il est toutefois toujours possible de coder directement en assembleur en mode "inline" avec des langages de haut niveau tel que le C par exemple.
    Voila, j'espère avoir été assez clair pour y voir plus (clair) dans ces débats toujours à la limite du "je parle d'un truc que je connais pas trop, mais avec beaucoup de termes techniques je vais noyer le poisson" et de la technique véritable ou les bascules, latchs et registres sont les seules valeurs sûres reconnues par ces petites "puces" qui font tant couler d'encres ("claviesque")
    De mon coté j'utilise à peu près autant le C, l'assembleur, python (que je trouve formidable surtout pour l'automatisation des tests et la connectivité avec les protocoles industriels de communication) et Labview. (pour le coté ihm et connectivité des instruments de mesure sous windows)
    Donc pour conclure: pas de "sectarisme" de mon coté
    Bonne fin de semaine à toutes et à tous et bonne programmation quelque soit votre langage ou domaine de l'informatique (embarquée pour ma part)
    A +

  14. #14
    Membre Expert

    Profil pro
    Inscrit en
    Septembre 2013
    Messages
    639
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2013
    Messages : 639
    Par défaut
    Citation Envoyé par tyrtamos Voir le message
    (...) une PME peut confier à Python toute sa "machinerie" d'information qui la fait vivre.
    Tout à fait, et c'est déjà une raison suffisante pour affirmer que Python est utilisable professionnellement. Ce n'est cependant pas un langage permettant d'écrire n'importe quel type d'application non plus. Dans mon domaine, grosse modo l'analyse et le traitement d'images, ce que je peux écrire en Python est environ 100 fois plus lent que ce que je peux écrire en C (je n'ai pas choisi le facteur 100 au hasard, j'ai réellement comparé les deux)


    Citation Envoyé par tyrtamos Voir le message
    Bonjour,

    je pense que c'est plutôt le C/C++ qui est un langage de bas niveau: en dessous, il n'y a guère que l'assembleur... Et c'est vraiment regrettable , compte tenu des puissances machines actuelles, que ce soit le langage "normal" de développement des applications.
    Les langages de plus haut niveau appartiennent à la famille des langages fonctionnels. Donc si on suit ton raisonnement, le langage "normal" de développement des applications devrait être Ocaml ou Haskell. Autrement dit ça va devenir dur de recruter.


    Citation Envoyé par noirbizarre Voir le message
    Pensez-vous que Python puisse être adapté à un usage professionnel pour la production d'un projet ?

    Pourquoi plus ou moins qu'un autre langage ?!
    Python est documenté, outillé, rapide à apprendre, utiliser et surtout relire.
    Tous les langages sont documentés, tous sont outillés au moins pour certains types d'utilisations, donc ce ne sont pas des arguments.

    "rapide à apprendre" ce n'est pas un critère ; ou plutôt si, c'est un mauvais critère, les langages les plus expressifs sont tous difficiles à apprendre, les langages les plus haut niveau sont tous difficiles à apprendre, les langages les plus bas niveau sont tous difficiles à apprendre,... tous les langages qui sont en eux-mêmes des avantages technologiques et permettent de faire les choses les plus poussées ou les plus efficaces sont difficiles à apprendre.

    En revanche tu as totalement raison de rappeler que du code Python est facile à écrire et à relire, ce sont ses principaux points forts et c'est pour cela que Python est adapté au développement rapide ou à la recherche.

    Citation Envoyé par noirbizarre Voir le message
    Si par professionnel on entend industrialisable, j'ai des exemples d'industrialisation extremement poussés en Python. Aucun soucis de ce côté là.
    Dans quel domaine ? Dans le mien, Python est inenvisageable, et pourtant je suis un "artisan" du logiciel et non un "industriel".

    Citation Envoyé par noirbizarre Voir le message
    Si par professionnel on entend, "je veux pouvoir recruter des développeurs pas cher et en changer du jour au lendemain":
    fais du java comme toutes les banques ou du php comme toutes les webagency et là tu auras des développeurs sans compétences, pas cher et interchangeables.
    En 2013 le développeur Python moyen, c'est à dire tout le monde, n'est pas plus doué que le développeur Java moyen. Il y a dix ans, Python était nouveau et ceux qui s'y intéressaient étaient des bons. (D'ailleurs à l'époque moi aussi je n'ai juré que par Python... pendant quelques mois) Ce n'est plus le cas aujourd'hui, Python étant enseigné partout et n'étant pas difficile à maîtriser.



    Citation Envoyé par noirbizarre Voir le message
    Au delà de ces question, je trouve que la hauteur des débats diminue avec le temps.
    Fais monter le niveau, alors ! (Pour le moment c'est raté)

    Citation Envoyé par noirbizarre Voir le message
    Tous ceux qui pensent encore que Python est un langage pour prototyper, j'aimerai bien savoir quels sont les arguments pour justifier ça et surtout à quels langages ils passent ensuite.
    Pour prototyper je préfère Lisp, mais si je ne connaissais pas Lisp je considèrerais Python comme un excellent candidat pour faire des prototypes (ou des maquettes). Quand je commence des recherches dans un nouveau domaine, j'ai tendance à coder tout ce que je peux en Lisp parce que Lisp est génial pour explorer tous azimuts... et quand j'ai une réponse solide pour chacun des principaux problèmes à résoudre, en général je recode tout en C pour avoir la performance dont j'ai besoin.

    J'ai pu constater que c'était au final beaucoup plus rapide de faire cela que de tout coder en C depuis la phase de recherche. Coder tout en Lisp (ou en Python) serait encore plus rapide, mais mes applications rameraient.

    Citation Envoyé par noirbizarre Voir le message
    Concernant les performances, je ne peux pas croire que quelqu'un croie encore en 2013 que le langage de programmation sera le goulot d'étranglement dans une architecture, quelque qu'elle soit.
    Il y a pourtant des langages qui sont inutilisables dans certains domaines. Python est génial comme langage de script, ou pour le WEB. Peut-on généraliser son emploi à tous les types d'applications ? Sûrement pas. Pour l'informatique de gestion, j'imagine qu'on peut utiliser Python sans problème. Pour créer un système d'exploitation, un jeu ultra rapide avec un rendu "next-gen", ou pour faire de la programmation temps réel, Python est un des derniers langages à considérer. En fait il ne faut même pas le considérer du tout.

    Citation Envoyé par noirbizarre Voir le message
    Pour finir, j'aimerai rappeler que le site générant le plus de traffic au monde, c'est à dire YouTube est lui même écrit en Python.
    Python pour le web, c'est génial, personne ne dira le contraire.

    Mais les décodeurs MPEG et compagnie qui lisent les vidéos de Youtube (ou autres) en temps réel, eux, ne sont pas prêts d'être "écrivables" en Python.

    Citation Envoyé par vfelix Voir le message
    L'utilisation de l'indentation est en particulier une véritable catastrophe (...)
    Je ne sais pas si c'est une catastrophe mais en tout cas c'est une bonne raison pour ne pas utiliser Python comme premier langage dans l'enseignement de la programmation. La notion de bloc d'instructions est plus floue, pour un débutant, s'il n'y a pas de marqueur clair (begin...end, accolades, ou que sais-je encore)

    C'est très dommage car Python a par ailleurs beaucoup de choses qui feraient au contraire de lui un bon premier langage.

  15. #15
    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
    @CodeurPlusPlus

    Merci pour ta contribution (merci à tous les autres aussi ^^) très détaillée. Bon je t'avoue être un peu septique sur le 100, mais si tu as vraiment fait des tests, je t'accorde le bénéfice du doute.

    Et puis après tout, 100 fois plus lent qu'un programme qui réagit en un millième de seconde ça fait jamais que 0.1 seconde de temps de réaction... dans beaucoup de cas ça reste très raisonnable, tout dépend de l'application et éventuellement de la machine que l'on doit contrôler (je pense par exemple à des robots de découpe où le dynamisme et les temps de réaction doivent être les plus performants possibles).

    Petit hors sujet :
    Par contre, et c'est peu-être un gros tord ou une grosse lacune de ma part (je suis un autodidacte de la programmation), mais je n'arrive vraiment pas à comprendre pourquoi l'indentation de Python est si mal perçue et surtout pourquoi les gens préfères les marqueurs.

    Pour moi, l'indentation impose d'avoir un "squelette" visuellement uniforme ce qui ajoute à la facilité de lecture et aussi à la rigueur.
    À contrario, je trouve que les marqueurs servent sont plus des four tout qu'autre chose.

    Au reproche à Python d'être d'autre permissif mais l'une des seules choses qu'il impose réellement en fait son principal défaut à en croire certains.

    Étrange non ?
    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

  16. #16
    Expert confirmé

    Avatar de deusyss
    Homme Profil pro
    Expert Python
    Inscrit en
    Mars 2010
    Messages
    1 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

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

    Informations forums :
    Inscription : Mars 2010
    Messages : 1 659
    Par défaut
    Citation Envoyé par Jiyuu Voir le message
    Par contre, et c'est peu-être un gros tord ou une grosse lacune de ma part (je suis un autodidacte de la programmation), mais je n'arrive vraiment pas à comprendre pourquoi l'indentation de Python est si mal perçue et surtout pourquoi les gens préfères les marqueurs.

    Pour moi, l'indentation impose d'avoir un "squelette" visuellement uniforme ce qui ajoute à la facilité de lecture et aussi à la rigueur.
    À contrario, je trouve que les marqueurs servent sont plus des four tout qu'autre chose.
    [/I]
    Je pense pareil. Pour moi, imposer une structure via l'indentation est un gage de perennité du code, d'un point de vue maintenance.

    Je suis passé chez un client ayant écrit un code C de 40 000 lignes (commencé il y a 20 ans), sans aucune indentation, sans aucun commentaire, sans saut de ligne vide pour aérer, et en decoupant les lignes de manière totalement aléatoire.

    Je peut affirmer que si les devs à l'époque avait respecter une structure tel qu'elle est obligatoire en Python avec l'indentation (entre autre), et bien on aurait pas passé des jours entiers pour rajouter une fonction qui au final revenait à implémenter 2 lignes supplémentaires.

  17. #17
    Membre expérimenté

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    264
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 264
    Par défaut
    J'ai du mal à comprendre en quoi le prototypage ne serait pas en soi une activité professionnelle…

    Avant même de tenter d'énumérer les domaines où Python excelle et ceux où il vaut mieux utiliser autre chose. Pour moi la question posée n'a aucun sens.

  18. #18
    Membre Expert

    Profil pro
    Inscrit en
    Septembre 2013
    Messages
    639
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2013
    Messages : 639
    Par défaut
    Le prototypage est, bien sûr, une activité professionnelle !


    Citation Envoyé par Jiyuu Voir le message
    @CodeurPlusPlus

    Merci pour ta contribution (merci à tous les autres aussi ^^) très détaillée. Bon je t'avoue être un peu septique sur le 100, mais si tu as vraiment fait des tests, je t'accorde le bénéfice du doute.
    J'ai été très surpris par ce chiffre, et à vrai dire je le trouve suspect moi aussi. Seulement c'est cette valeur que j'ai constatée, donc je ne vais pas en inventer une autre

    Ce chiffre n'est pas forcément représentatif ; je pense qu'il est vraiment spécifique aux types d'algos et d'implémentations que je fais souvent, et je ne suis pas certain que ma façon de les programmer en Python est optimale.
    En tout cas cela m'a fait conclure que Python n'était pas pratiquable sur ce cas précis.

    Citation Envoyé par Jiyuu Voir le message
    Et puis après tout, 100 fois plus lent qu'un programme qui réagit en un millième de seconde ça fait jamais que 0.1 seconde de temps de réaction... dans beaucoup de cas ça reste très raisonnable
    Oui, et cent fois plus lent qu'un traitement qui dure dix secondes sur une machine donnée sur une image d'une taille donnée, ça donne mille secondes, et là, il faut être un bon arnaqueur pour réussir à vendre le logiciel de traitement d'image le plus lent du monde.

    Citation Envoyé par Jiyuu Voir le message
    Petit hors sujet :
    Par contre, et c'est peu-être un gros tord ou une grosse lacune de ma part (je suis un autodidacte de la programmation), mais je n'arrive vraiment pas à comprendre pourquoi l'indentation de Python est si mal perçue et surtout pourquoi les gens préfères les marqueurs.
    En algorithmique et en programmation, la notion de bloc d'instruction est fondamentale (je ne te fais pas l'injure de croire que tu ne le sais pas, hein !).

    Un débutant doit pouvoir comprendre que :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    pour i de 1 à n faire :
      afficher (i)
    afficher ("toto")
    n'est pas du tout la même chose que :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    pour i de 1 à n faire :
      afficher (i)
      afficher ("toto")
    Il existe des débutants qui saisissent très vite la différence entre les deux et d'autres qui ont plus de mal.

    Si on choisit, mettons, Pascal comme premier langage, les débuts et fins de blocs sont très visibles (begin et end), alors que si on choisit Python (seule l'indentation permet de "voir" les blocs), ils le sont moins.

    J'ai remarqué que cela devient alors plus difficile pour les étudiants de faire la différence. Dans le passé, j'ai un peu enseigné l'informatique à l'Université. Le premier langage qu'on avait utilisé pour donner des premières bases aux élèves était Maple ; plus tard on a choisi Python. J'ai constaté au moment du passage à Python que les élèves comprenaient moins facilement ce qu'était un bloc, parce que les marqueurs sont "invisibles".

    (Python était cela dit un meilleur choix pédagogique comme premier langage que Maple, sauf en ce qui concerne cette histoire de bloc "invisible", parce que Maple pouvait donner aux élèves l'impression très fausse que n'importe quel langage informatique pouvait faire nativement du calcul formel...)

    Une fois qu'on n'en est plus à son premier langage, en revanche, peu importe la façon dont les blocs sont représentés. Je trouve personnellement le progn de Lisp assez moche, mais je ne m'arrête pas à ce genre de détail pour savoir si un langage est intéressant ou non (sinon, dans le cas du Lisp, j'aurais laissé tomber "comme tout le monde" à cause des parenthèses ) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    (progn  (instruction 1)
            (instruction 2)
            ...
            (instruction n))
    Ce type de bloc correspond à :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    begin
        instruction 1
        instruction 2
        ...
        instruction n
    end
    dans un langage impératif classique

    (avec en plus, petite précision pour ceux qui aiment les langages fonctionnels, le fait que l'expression entière (progn .... ) a à la fin de l'exécution du bloc la même valeur que celle de (instruction n) )


    EDIT : j'allais oublier ! Un truc génial avec Python pour l'enseignement, c'est que c'est un langage vraiment multiparadigme (ce qui en fait un bon héritier de Lisp hé hé hé). Donc autant Python n'est pas un bon premier langage, autant il a sa place dans un cursus d'études d'informatique. Et dans le monde professionnel également pour peu qu'on connaisse aussi bien ses faiblesses que ses forces.

  19. #19
    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
    Effectivement pour un débutant cela peut être plus facile à appréhender, ou en tout cas lui éviter d'avoir à trop ce casser la tête avec ça.

    D'un autre coté, s'il a la rigueur qu'impose Python dès le départ, il est certain de ne pas avoir de problèmes avec d'autres langages, sauf erreur de ma part évidemment et sur ce point précis.
    L'inverse ne me semble pas vrai.

    Je n'ai jamais pris de cours de programmation, la seule chose que je peux faire est donc d'espérer que les profs expliquerons qu'il n'est pas plus mal d'écrire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    begin
      instruction 1
      instruction 2
      ...
    end

    que d'écrire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    begin
    instruction 1
            instruction 2
      ...
    end
    bien que dans le cas présent ça revienne au même
    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

  20. #20
    Membre habitué
    Homme Profil pro
    Inscrit en
    Février 2011
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2011
    Messages : 15
    Par défaut
    Citation Envoyé par CodeurPlusPlus Voir le message
    Tous les langages sont documentés, tous sont outillés au moins pour certains types d'utilisations, donc ce ne sont pas des arguments.
    Je ne suis pas totalement d'accord.
    Si tous les languages sont documentés, la qualité et la facilité d'utilisation de la documentation peut être extrement variable.
    Sur la partie outillage, effectivement, je n'ai pas été assez précis.
    J'entend par là, ce que je considère comme des outils de base "aujourd'hui", c'est à dire:
    • isolation de l'environnement (virtualenv)
    • test unitaires
    • gestionnaire de dépendance (pip)
    • packaging propre (setuptools, même si j'en conviens, jusqu'à la version 1.0 il y a eu beaucoup de dispersion)
    • interpreteur dynamique (aucun n'arrive à la hauteur d'iPython, sauf peut-être les consoles javascript des browsers)
    • gestion des logs
    • ...


    Là encore c'est un point de vue qui n'engage que moi et qui correspond à la façon que j'ai de développer (pas seulement en Python)

    Citation Envoyé par CodeurPlusPlus Voir le message
    "rapide à apprendre" ce n'est pas un critère ; ou plutôt si, c'est un mauvais critère, les langages les plus expressifs sont tous difficiles à apprendre, les langages les plus haut niveau sont tous difficiles à apprendre, les langages les plus bas niveau sont tous difficiles à apprendre,... tous les langages qui sont en eux-mêmes des avantages technologiques et permettent de faire les choses les plus poussées ou les plus efficaces sont difficiles à apprendre.
    Dans un environnement professionnel, potentiellement soumis au turn-over et au marché du recrutement difficile en ce moment, où il peut y avoir plusieurs langages à maitriser pour travailler et produire, je considère que c'est un critère extrêmement important.

    Citation Envoyé par CodeurPlusPlus Voir le message
    En revanche tu as totalement raison de rappeler que du code Python est facile à écrire et à relire, ce sont ses principaux points forts et c'est pour cela que Python est adapté au développement rapide ou à la recherche.
    Tout à fait d'accord

    Citation Envoyé par CodeurPlusPlus Voir le message
    Dans quel domaine ? Dans le mien, Python est inenvisageable, et pourtant je suis un "artisan" du logiciel et non un "industriel".
    Cartographie, backoffice en tout genre, calcul numérique...

    Après, je conçois totalement qu'il y ai des domaines ou Python est inenvisageable (je suis d'ailleurs intéressé par une liste avec justifications), mais je pense que dans ces domaines, ce n'est pas spécifique à Python mais à la majorité des langages.

    Citation Envoyé par CodeurPlusPlus Voir le message
    En 2013 le développeur Python moyen, c'est à dire tout le monde, n'est pas plus doué que le développeur Java moyen. Il y a dix ans, Python était nouveau et ceux qui s'y intéressaient étaient des bons. (D'ailleurs à l'époque moi aussi je n'ai juré que par Python... pendant quelques mois) Ce n'est plus le cas aujourd'hui, Python étant enseigné partout et n'étant pas difficile à maîtriser.
    Pas tout à fait d'accord.

    Si effectivement il est facile d'apprendre le Python, très peu de SSII ont des profils qui l'utilisent et/ou une offre associée comme ça pourrait être le cas pour Java, C# ou php.
    En conséquence, il y a beaucoup plus de developpeur Java que de développeur Python, et beaucoup refont sans cesse le même type d'applications ou TMA pour les même clients.
    Je pense que le niveau moyen d'un développeur d'un langage qui n'est pas un langage du "marché" est plus élevé.
    Mais cela n'empêche pas qu'il y ai d'excellents développeurs en Java et de très mauvais en Python, mais on parle de moyenne.

    Au cours des différents entretiens que j'ai pu faire passer (et j'en ai fait passer beaucoup, sur différentes technos), cette différence de "potentiel" s'est souvent faite ressentir, ce ne sont pas les mêmes profils du tout en général.
    Bien sûr, comme pour tout recrutement, il y a les critères objectifs mais aussi une part de subjectivité, et c'est vrai que j'ai souvent eu une meilleure affinité philosophique et technique avec les développeurs Python qui ont tous (ceux qui j'ai eu en entretien) en commun une certaine soif d'apprendre et de découvrir là ou la majorité des développeur Java que j'ai pu voir se contentait de leurs acquis car ils leur suffisait pour être pris sur des missions et être payés.



    Citation Envoyé par CodeurPlusPlus Voir le message
    Fais monter le niveau, alors ! (Pour le moment c'est raté)
    Désolé, je me suis emporté et cette remarque ne fait effectivement pas monter le débat.
    Ce que je voulais souligner c'est l'augmentation des sujets de type "un language vs un autre" ou alors "ce langage est-il adapté à ..." ...
    Ces sujets se transforment assez facilement en trolls car il ne vont attirés principalement que les afficionados et les détracteurs qui ne changeront pas d'avis au cours du débat (comme c'est le cas pour moi par exemple: je donne mes arguments qui sont du vécu mais il n'y a aucune chance que je change d'avis, même si j'entend certains arguments)

    Citation Envoyé par CodeurPlusPlus Voir le message
    Pour prototyper je préfère Lisp, mais si je ne connaissais pas Lisp je considèrerais Python comme un excellent candidat pour faire des prototypes (ou des maquettes). Quand je commence des recherches dans un nouveau domaine, j'ai tendance à coder tout ce que je peux en Lisp parce que Lisp est génial pour explorer tous azimuts... et quand j'ai une réponse solide pour chacun des principaux problèmes à résoudre, en général je recode tout en C pour avoir la performance dont j'ai besoin.

    J'ai pu constater que c'était au final beaucoup plus rapide de faire cela que de tout coder en C depuis la phase de recherche. Coder tout en Lisp (ou en Python) serait encore plus rapide, mais mes applications rameraient.
    De la même façon, je prototype tout en Python.
    La seule différence, c'est qu'aujourd'hui, je n'ai jamais eu a réécrire aucune brique dans un autre langage.
    La partie qui demande plus de performances ont à chaque fois été écrite en Cython, qui est simplement du Python.

    Je pense qu'il n'y a pas de langage prévu pour prototyper mais juste des langage avec lesquels ont est plus ou moins rapide.
    Pour certains ça sera le Python, d'autre le php...

    Ce que je voulais souligner, c'est l'aspect "uniquement pour prototyper" sur lequel je ne suis pas d'accord.


    Citation Envoyé par CodeurPlusPlus Voir le message
    Il y a pourtant des langages qui sont inutilisables dans certains domaines. Python est génial comme langage de script, ou pour le WEB. Peut-on généraliser son emploi à tous les types d'applications ? Sûrement pas. Pour l'informatique de gestion, j'imagine qu'on peut utiliser Python sans problème. Pour créer un système d'exploitation, un jeu ultra rapide avec un rendu "next-gen", ou pour faire de la programmation temps réel, Python est un des derniers langages à considérer. En fait il ne faut même pas le considérer du tout.
    C'est là que la distinction entre le langage et l'environnement d'execution ou la chaine de compilation intervient.
    Il y a quelques années, tout le monde avait le même discours avec Java.
    Aujourd'hui Java est utilisé dans l'embarqué ou pour Android par exemple.
    Qu'est-ce qui a changé entre temps: des périphériques adaptés sont apparus en parallèle de l'amélioration de la chaine de compilation (JIT...)

    Je suis d'accord qu'aujourd'hui ces domaines ne sont pas accessibles en Python, mais ce n'est pas lié au langage mais à l'environnement qui lui est contraint. Dans ces domaines, il n'y a souvent pas de choix possible.

    Je pense que l'on peut appliquer ce raisonnement à tous les langages sortis du C/C++, de l'assembleur (), et plus récemment de Java et C# sont entrés dans la courses mais parce que des constructeurs ont fournis matériel et/ou outils de cross-compilation adaptés.

    Les cas OS, jeux ultra-rapides... sont vrais.
    Ce sont des cas extrêmement particuliers qui sont très contraints.
    L'éditeur d'un moteur de jeux 3D choisira probablement C/C++ pour les perfs, mais l'éditeur du jeux lui aura le choix dans les langages fournis par le moteur et là il n'y aura plus les même contraintes.
    D'ailleurs, les bindings Python pour les lib en C/C++ se trouvent très facilement de par la facilité qu'il y a à les fournir.

Discussions similaires

  1. Le langage Java est-il adapté pour les jeux vidéo ?
    Par Invité dans le forum Développement 2D, 3D et Jeux
    Réponses: 637
    Dernier message: 05/02/2021, 22h38
  2. Réponses: 1
    Dernier message: 27/04/2009, 10h28
  3. Réponses: 44
    Dernier message: 21/01/2009, 10h34
  4. [Joomla!] un CMS est-il adapté pour mon site?
    Par welcominh dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 11/04/2008, 22h33

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