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

  1. #41
    Candidat au Club
    Homme Profil pro
    imprimeur salarié
    Inscrit en
    Août 2010
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Aisne (Picardie)

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

    Informations forums :
    Inscription : Août 2010
    Messages : 1
    Points : 3
    Points
    3
    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 !

  2. #42
    Membre éprouvé

    Homme Profil pro
    Ingénieur
    Inscrit en
    Août 2010
    Messages
    654
    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 : 654
    Points : 1 150
    Points
    1 150
    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

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

    Informations professionnelles :
    Activité : avancé

    Informations forums :
    Inscription : Avril 2005
    Messages : 2 524
    Points : 5 184
    Points
    5 184
    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.

  4. #44
    Futur Membre du Club
    Inscrit en
    Novembre 2012
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Novembre 2012
    Messages : 5
    Points : 6
    Points
    6
    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.

  5. #45
    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 ).

  6. #46
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 456
    Points : 6 789
    Points
    6 789
    Billets dans le blog
    15
    Par défaut
    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

  7. #47
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    17 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 17 453
    Points : 43 106
    Points
    43 106
    Par défaut mon avis sur python
    Python est simple à appréhender. Il est dense en possibilités. Il est portable. Et je dis ça s'en avoir creusé le sujet à fond mais du peu que j'en ai vu ...

    Il a sa place au niveau scripting. Des projets d'envergure pourquoi pas. Ce n'est pas le langage qui fait le code.

    Au niveau commercial, je pense que les vendeurs de produits utiliseront plutôt des solutions permettant de mieux protéger leur code.

    Personnellement, je préférerais utiliser python à Java mais c'est plus subjectif qu'autre chose.
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur le P2V, mon article sur le cloud
    Consultez nos FAQ : Windows, Linux, Virtualisation

  8. #48
    Candidat au Club
    Profil pro
    Consultant informatique
    Inscrit en
    Juin 2013
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

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

    Informations forums :
    Inscription : Juin 2013
    Messages : 2
    Points : 4
    Points
    4
    Par défaut
    Python pour moi le meilleur langage par excellence. Et pour répondre à ta question, il faut poser cette question à google, la nasa, les editeurs de blender, instagramm et j'en passe.

  9. #49
    Membre actif
    Avatar de Aiigl59
    Homme Profil pro
    Freelance
    Inscrit en
    Janvier 2008
    Messages
    90
    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 : 90
    Points : 264
    Points
    264
    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 +

  10. #50
    En attente de confirmation mail

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

    Informations forums :
    Inscription : Septembre 2013
    Messages : 639
    Points : 2 347
    Points
    2 347
    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.

  11. #51
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 456
    Points : 6 789
    Points
    6 789
    Billets dans le blog
    15
    Par défaut
    @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

  12. #52
    Expert éminent

    Avatar de deusyss
    Homme Profil pro
    Expert Python
    Inscrit en
    Mars 2010
    Messages
    1 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    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
    Points : 8 442
    Points
    8 442
    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.
    "La connaissance appartient à tout le monde" (Film Antitrust)

    Tout le nécessaire pour Python:
    *News/Accueil *Cours/tutoriels *FAQ
    *Forums *Outils dédiés *Mon espace personnel avec mes Articles, Cours et Tutoriels

  13. #53
    Membre éclairé

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

    Informations forums :
    Inscription : Mai 2005
    Messages : 264
    Points : 725
    Points
    725
    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.
    "By and large I'm trying to minimize mentions of D in C++ contexts because it's as unfair as bringing a machine gun to a knife fight." - Andrei Alexandrescu

  14. #54
    En attente de confirmation mail

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

    Informations forums :
    Inscription : Septembre 2013
    Messages : 639
    Points : 2 347
    Points
    2 347
    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.

  15. #55
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 456
    Points : 6 789
    Points
    6 789
    Billets dans le blog
    15
    Par défaut
    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

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

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

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 823
    Points : 7 119
    Points
    7 119
    Par défaut
    Un début de bloc se reconnait par la syntaxe :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    with open(...) as f: # début de bloc
         # blabla
         # suite blabla
    # Sortie de bloc en dehors de l'indentation
    Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
    La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)

  17. #57
    Expert éminent
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 462
    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 462
    Points : 9 249
    Points
    9 249
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    Concernant les blocs d'instructions. Curieusement, j'ai beaucoup codé en Pascal, et, bien que les blocs soient délimités par begin et end et que l'indentation soit totalement libre entre les 2, je me donnais beaucoup de mal à ce que cette indentation fasse apparaître les blocs et donc rende plus visible la logique du programme. Avec une indentation qui augmentait avec la "profondeur" du bloc. Et ça marchait bien: non seulement c'était plus facile à déboguer, mais un code examiné 6 mois plus tard était plus facile à comprendre en faisant comme ça. En codant en C/C++ je faisais pareil, et ça donnait le même résultat. En lisp aussi, parce qu'à partir d'un certain nombre de parenthèses, si on ne fait pas ça, on n'y comprend plus rien.

    Ce qui fait que le passage à Python m'a paru facile: je faisais la même chose qu'avant avec les blocs (indentation), à part que je n'avais plus besoin des délimiteurs...
    Un expert est une personne qui a fait toutes les erreurs qui peuvent être faites, dans un domaine étroit... (Niels Bohr)
    Mes recettes python: http://www.jpvweb.com

  18. #58
    Membre régulier
    Profil pro
    Inscrit en
    Février 2012
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2012
    Messages : 48
    Points : 105
    Points
    105
    Par défaut
    Je suis désolé pour mon message de la dernière fois. Il est un peu brouillon, j'étais claqué. Bref.

    Pour les histoires de performances, si vraiment il y en a besoin, on peut directement compiler le code tel quel, sans rien changer. On gagnera quelque chose de non marginale (me semble de l'ordre de 25%, voir plus suivant la manière de coder, en utilisant les idiomatiques du langage).
    Ensuite, on peut utiliser le mélange bâtard Cython, qui propose même la possibilité de typer à la compilation ses variables. C'est chouette, on a le meilleur des deux mondes C et Python. Évidemment, il restera toujours une surcouche d'abstraction qui rendra le code plus lent que son équivalent en C pur, mais ça peut parfaitement faire l'affaire si on a besoin d'un boost à un endroit précis. En tout cas, dans mon cas, j'avais un goulot de perf sur la transformation de tableau représentant des images, et en passant par Cython, j'ai atteins des perfs plus qu'honorable.
    Et puis, il y a aussi le "prototype" pypy. Jamais utilisé, mais j'en ai entendu beaucoup de bien niveau perf, tout en gardant le coté script de python. Je doute que l'on puisse balancer ça en prod, mais ça peut être intéressant de s'y pencher pour des projets interne. En plus, il me semble qu'un truc en rapport avec l'UE y a balancé un bon paquet de pognon pour faire progresser le truc.
    Bien évidemment, il y aura toujours un million de cas où le C sera bien plus adéquat, et indispensable. Mais celui qui apprendra Python, et qui s'y perfectionnera aura un énorme avantage de mon point de vue : la porosité entre Python et C. Se plonger dans les arcanes de python, si on est intéressé, on passera forcément par aller voir le cœur et apprendre petit à petit le C (en tout cas, c'est comme ça que ça s'est passé pour moi).

    En passant, la doc de l'implémentation standard en C de python est assez complète et bien documenté. Et le code n'est pas imbuvable. Pas comme chez PHP (oups... désolé, ça m'a échappé).

    En passant, Python n'est pas récent. En tout cas, il est plus ancien que Java, php, ruby, etc...

    Et un dernier petit truc pour la route : from __future__ import braces. Enjoy !

  19. #59
    Invité
    Invité(e)
    Par défaut
    Python est un langage de script interprété : si le vendeur ne veut pas dévoiler ses codes sources, c'est raté, pour les performances extrêmes également. Rien que ça explique sans doute la faible diffusion de programmes commerciaux. Mais pour un usage en interne, oui, c'est un régal. Et disponible un peu sur toutes les systèmes.

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

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

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 823
    Points : 7 119
    Points
    7 119
    Par défaut
    si le vendeur ne veut pas dévoiler ses codes sources, c'est raté, pour les performances extrêmes également.
    Connais-tu un langage sortant du code évitant la rétroingénierie ?
    Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
    La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)

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