Partage
  • Partager sur Facebook
  • Partager sur Twitter

Honte de choisir Python !

    30 septembre 2011 à 21:13:29

    Bonsoir,

    voilà cela fait quelques temps que je programme en c++ et python, à chaque fois j'ai envi de changer un peu d'air entre ces deux langages. Alors voilà, le but de ce topic n'est pas d'en faire un troll, cependant j'hésite à choisir python... J'ai peur qu'on me prenne pour un débutant : "Python pour les nuls","c'est un langage de script ça pue !", "les hackeurs et créateurs de logiciels et jeux videos evitent ce langage" , "aucun mérite à l'apprendre : trop facile !" etc.

    Donc voilà je cherche une réponse qui me fasse envi de choisir Python étant donné que je le trouve plus sympa que le c++ mais que c'est un bazard total au niveau des versions et des compatibilités, de même pour créer un exécuteur.
    • Partager sur Facebook
    • Partager sur Twitter
    Anonyme
      30 septembre 2011 à 21:17:28

      Python est un langage reconnu, certes parfait pour débuter mais également employé dans des programmes aussi sérieux et complexe que Portage, le gestionnaire de paquets de Gentoo, ou Blender qui est essentiellement en Python.
      • Partager sur Facebook
      • Partager sur Twitter
        30 septembre 2011 à 21:19:42

        quels genres d'entreprises utilisent Python à part Google? dans quels domaines sont elles spécialisées?
        Et peut-on utiliser Python pour tout ce qui est gestion du systeme, mémoire, etc...?
        • Partager sur Facebook
        • Partager sur Twitter
        Anonyme
          30 septembre 2011 à 21:23:41

          Principalement des organismes de recherche et des logiciels libres je dirais.

          L'industrie n'aime pas trop les langages de script parce que souvent mal connus de leurs employés. Si 3 langages se partagent l'essentiel du marché du langage de programmation, c'est pas pour rien et c'est pas faute de meilleur remplaçant.

          Mais y'a quand même la NASA, le CERN, le labo de Los Alamos, et aussi Nokia, IBM, dSpace, des grands noms du logiciel quoi.
          • Partager sur Facebook
          • Partager sur Twitter
            30 septembre 2011 à 21:26:49

            ok, donc python est plutôt tourné pour la programmation scientifique et mathématique ...?
            • Partager sur Facebook
            • Partager sur Twitter
            Anonyme
              30 septembre 2011 à 21:34:13

              Ca fait partie de ses usages. Mais si tu regarde Nokia/Blender/Battlefield (oui oui) ou les distros Linux, c'est du logiciel classique et pas du tout axé maths/sciences.

              Python est un langage générique, y'a pas vraiment d'usage type.
              • Partager sur Facebook
              • Partager sur Twitter
              Anonyme
                30 septembre 2011 à 21:59:08

                Tu peux trouver ici une liste de quelques organisations qui utilisent Python.

                Son champ d'action est assez large je dirais : on l'utilise en recherche oui; il est aussi pratiqué dans l'administration système où l'on est souvent amené à automatiser certaines tâches, et là des langages de script comme Python ou Perl sont bons à prendre; en développement web aussi, bien qu'il ne soit pas aussi utilisé que PHP (et c'est dommage), il y a quelques frameworks intéressants (comme Django ou Zope).
                • Partager sur Facebook
                • Partager sur Twitter
                  30 septembre 2011 à 22:04:51

                  Juste 3 points, j'ai la flemme de détailler plus :

                  * La "difficulté" d'un langage n'a jamais été proportionnelle à son intérêt. Ça sert à quoi d'utiliser un langage considéré comme un truc de roxxor, si tu mets 3 heures à faire ce que tu peux torcher proprement en 10 minutes en Python ? Le but de la programmation, c'est se la péter devant les copains ou bien produire un programme qui marche et qui marche bien, de préférence sans trop avoir à se fatiguer ?

                  * Python, c'est pas juste "un langage pour débutants" : jette un oeil du côté des coroutines, des métaclasses, des décorateurs, et de manière générale à tout ce que tu peux bidouiller grâce au système d'introspection de Python, et tu me diras si c'est aussi facile et "débutantesque" que ça.

                  * D'une manière générale, il est toujours bénéfique de connaître au moins un langage dit "de script" (Python, Perl, Bash, Ruby, Lua...) à côté de langages plus "solides" (style C++), et ça n'a jamais rien eu de dégradant, au contraire, puisque leurs usages sont bien souvent complémentaires.
                  • Partager sur Facebook
                  • Partager sur Twitter
                  Zeste de Savoir, le site qui en a dans le citron !
                    30 septembre 2011 à 22:31:06

                    Entièrement d'accord avec ce que dit Nohar.


                    On va quand même pas se plaindre que Python soit accessible et permette de réaliser de petits et de grands programmes assez rapidement, à croire qu'il faut souffrir pour être programmeur. Sans compter que Python a son côté obscur (ce dont parlait Nohar dans son 2ème point) qui à mon avis le rend conceptuellement plus complexe et plus riche que le C (par exemple).


                    Ce que je reprocherais à Python c'est juste qu'il n'est pas assez visible, pas très développé (dans l'enseignement supérieur, dans l'industrie), qu'il ne vend pas assez bien ses qualités, voire qu'il n'est pas assez «agressif», j'aimerais que Python remplace PHP et Javascript, j'aimerais qu'il soit présent sur l'environnement mobile, j'aurais aimé que Python soit le langage embarqué dans une extension de PdfTeX (c'est Lua qui s'est placé). J'espère juste que l'heure de Python viendra.
                    • Partager sur Facebook
                    • Partager sur Twitter
                      30 septembre 2011 à 22:55:11

                      Oh et puis tiens, puisque tu programmes en C++ et Python, autant développer un peu puisque j'ai travaillé pendant un bon moment dans mon ancienne boîte avec ces deux langages. C'est l'occasion d'aborder les différents poins qui m'ont fait adopter Python :

                      Il est arrivé que je veuille développer un petit environnement de test et de prototypage pour des algos de vision par ordinateur, à peu près au moment où je me suis intéressé à Python. Il s'avérait que la bibliothèque que j'utilisais pour faire de la vision (OpenCV) avait déjà un binding pour Python, j'ai donc développé mon petit framework à la fois en Python et en C++. Ce qui m'a convaincu de continuer à explorer Python que je connaissais mal à l'époque, c'était que là où j'avais mis environ une semaine à développer un truc à peu près fonctionnel et simple à utiliser en C++, j'ai mis, montre en main et sans exagérer, une après-midi à obtenir le même résultat en Python.

                      Ensuite, par rapport au C++, tu as aussi l'avantage de la bibliothèque standard de Python qui contient pratiquement tout ce dont on peut avoir besoin pour la plupart des scripts que l'on veut faire, que ce soit des modules pour récupérer des documents sur le web (urllib) ou taper sur des serveurs ftp (ftplib), pour gérer une bases de données simple (sqlite3), pour parser des fichiers xmls (xmllib.ElementTree) et j'en passe, la bibliothèque standard de Python est vraiment _très_ garnie, et tous ces modules sont décrits en détails dans la documentation de Python. Il m'est même arrivé de vouloir implémenter un toy-language en Python : le module AST de la bibliothèque standard a fait en sorte qu'une fois construit l'arbre syntaxique, un simple appel à une fonction built-in permet de compiler cet arbre en bytecode Python, et donc de bénéficier de l'interpréteur de Python (qui est vraiment performant au regard des autres langages de scripts genre Perl ou Ruby, à l'exception de Lua) pour un autre langage que Python lui-même…

                      Lorsque dans mon ancienne entreprise, on a recruté un stagiaire pour qu'il nous développe des outils internes (avec une GUI), celui-ci est arrivé sans jamais avoir pratiqué Python (il connaissait pas trop mal Java, en revanche) : une semaine après son arrivée, il nous montrait déjà un prototype fonctionnel de l'outil que l'on lui avait demandé (et qui n'était pas, mais alors pas du tout trivial), en Python avec une interface Qt. Le temps gagné sur le développement (qui aurait été estimé facilement au triple en C++) nous a permis de lui faire développer d'autres outils, un peu moins prioritaires, mais tout aussi pratiques.

                      Aujourd'hui, bien que je développe principalement en Perl (pour des raisons historiques sur le projet avant tout) et un peu en C, il m'arrive encore de scripter quelques utilitaires ou batteries de test en Python plutôt qu'en Perl : je trouve que Python est plus agréable à utiliser, et plus facile à déboguer.
                      • Partager sur Facebook
                      • Partager sur Twitter
                      Zeste de Savoir, le site qui en a dans le citron !
                        1 octobre 2011 à 10:19:30

                        hum...pensez vous que Python a de l'avenir en entreprise ?
                        • Partager sur Facebook
                        • Partager sur Twitter
                        Anonyme
                          1 octobre 2011 à 10:59:07

                          Python n'est pas du tout fait pour les mathématiques et le scientifique. Bien trop lent comparé à du C ou du FORTRAN ne serait-ce que parce que le Python est interprété.
                          • Partager sur Facebook
                          • Partager sur Twitter
                            1 octobre 2011 à 11:03:39

                            Tu ne devrais pas avoir honte de prendre Python comme langage.
                            C'est un langage portable, extensible, dynamique qui permet d'avoir une autre approche de la POO (Programmation orienté objet)...
                            De plus il est libre vu qu'il a une licence proche de la licence BSD.
                            Si tu veux en savoir plus, tu peux lire ceci : Phyton
                            • Partager sur Facebook
                            • Partager sur Twitter
                              1 octobre 2011 à 12:05:07

                              Citation : Gow3

                              hum...pensez vous que Python a de l'avenir en entreprise ?



                              Cette question n'a pas vraiment de sens. Ne serait-ce qu'en tant que sidekick pour faire des scripts, oui, Python a de l'avenir pour faciliter le développement, donc ça s'applique en entreprise comme partout ailleurs.

                              Après, ce n'est probablement pas un langage qui sera souvent choisi comme "langage principal" pour des gros produits industriels, mais ça ne signifie pas qu'il n'a aucun intérêt en entreprise. Ne serait-ce que pour développer des outils et des applis internes, c'est un langage vraiment pratique (voir mon post plus haut).

                              Tout ça pour dire que le "en entreprise" n'est pas nécessairement une notion intéressante, a fortiori si tu n'es pas aujourd'hui un professionnel. En bref, Python a de l'avenir tout court.

                              Citation : Hod

                              Python n'est pas du tout fait pour les mathématiques et le scientifique. Bien trop lent comparé à du C ou du FORTRAN ne serait-ce que parce que le Python est interprété.



                              Je sais pas si ce qui m'a le plus fait rire était la conclusion, ou le "Python est interprété", ou bien la comparaison avec le C dans un contexte de programmation scientifique, mais cette intervention est aussi trollesque que mal renseignée.

                              Python, grâce notamment à SciPy, est dores et déjà une alternative intéressante à MatLab pour la programmation scientifique (eh oui, tu crois peut-être que la majorité des chercheurs s'emmerdent à coder en C ? Non, aujourd'hui c'est un marché dominé par MatLab, pourtant MatLab "c'est un langage interprété").

                              Question "performances", tu dis encore une fois une grosse bêtise en énonçant l'argument "c'est interprété lol". Si pour toi "interprété = lent, compilé = plus rapide", intéresse-toi un peu de près à LLVM (pour laquelle Google travaillait sur une implémentation de Python nommée "Unladen Swallow" il fut un temps), cela tordra probablement le cou à une idée reçue. Du reste, beaucoup de modules de Python sont des bindings pour des codes écrits et compilés en natif, qui offrent donc des performances comparables avec des programmes eux-mêmes écrits entièrement en un langage natif sur les parties pour lesquelles les performances brutes sont un pré-requis (ce qui n'est pas tout le temps le cas en programmation scientifique).
                              • Partager sur Facebook
                              • Partager sur Twitter
                              Zeste de Savoir, le site qui en a dans le citron !
                                1 octobre 2011 à 12:12:04

                                Citation : Hod

                                Python n'est pas du tout fait pour les mathématiques et le scientifique. Bien trop lent comparé à du C ou du FORTRAN ne serait-ce que parce que le Python est interprété.



                                Affirmation sans nuance, voire à l'emporte-pièce.

                                Vu la grande simplicité de sa syntaxe, Python est tout à fait adapté à l'écriture d'algorithmes. Essaye d'écrire une petite bibliothèque d'algos de graphes (DFS, Dijkstra, fermeture transitive, etc) en C versus Python et tu verras que pour arriver à faire tourner rapidement quelque chose, Python est idéal. Bien souvent le mathématicien ne cherche pas la performance à tout prix mais d'abord la réalisation d'un prototype.


                                D'autre part, Python est parfaitement adapté au calcul numérique efficace (Numpy, Scipy) et même au calcul formel (Sage). Certes, en tant que langage interprété, Python est lent mais les outils ci-dessus sont basés sur des bibliothèques compilées C et Fortran. Python dispose d'outils de visualisation scientifique comme Matplotlib. Il existe une littérature substantielle décrivant les possibilités de calcul scientifique en Python.

                                Citation : Straw Berry

                                Tu ne devrais pas avoir honte de prendre Python comme langage.



                                Non seulement, il ne faut pas avoir honte d'utiliser Python, mais il faut en être fier ;)
                                • Partager sur Facebook
                                • Partager sur Twitter
                                  1 octobre 2011 à 12:18:27

                                  Evidemment, c'est un excellent langage pour débuter.
                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                    1 octobre 2011 à 12:25:16

                                    Citation : Straw Berry

                                    Evidemment, c'est un excellent langage pour débuter.



                                    Tout l'intérêt de ce topic est de montrer que ce n'est pas seulement un excellent langage pour débuter.

                                    C'est bien simple : aujourd'hui, si je veux créer un programme et que je n'ai pas de contrainte sur le choix du langage, je me tourne instinctivement soit vers Python si c'est un code à vocation utilitaire, soit vers Haskell si c'est un petit défi que je me lance pour le plaisir d'être curieux et de programmer des trucs différents d'à mon habitude.

                                    Les langages de type C ou C++, je ne les utilise plus que dans un cadre professionnel, là où ils me sont imposés.
                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                    Zeste de Savoir, le site qui en a dans le citron !
                                      1 octobre 2011 à 12:41:12

                                      python est facile a déboguer ceci est bien vrais

                                      beaucoup de bibliothèque on était adapté pour python en voici :

                                      opengl : Pyopengl

                                      ogre : Pyogre

                                      SDL : Pygame

                                      La communauté compte 100 000 membres
                                      sur pygame il y a plein de bibliotheque

                                      Conclusion

                                      python c'est vaste ...
                                      • Partager sur Facebook
                                      • Partager sur Twitter
                                        1 octobre 2011 à 14:34:25

                                        JE vais m'y mettre vous m'avez convaincu :D
                                        • Partager sur Facebook
                                        • Partager sur Twitter
                                          1 octobre 2011 à 14:40:01

                                          @sérègon si jamais ta bession d'aide dis le moi ;)
                                          • Partager sur Facebook
                                          • Partager sur Twitter
                                          Anonyme
                                            1 octobre 2011 à 14:44:58

                                            Citation : nohar


                                            Je sais pas si ce qui m'a le plus fait rire était la conclusion, ou le "Python est interprété", ou bien la comparaison avec le C dans un contexte de programmation scientifique, mais cette intervention est aussi trollesque que mal renseignée.

                                            Python, grâce notamment à SciPy, est dores et déjà une alternative intéressante à MatLab pour la programmation scientifique (eh oui, tu crois peut-être que la majorité des chercheurs s'emmerdent à coder en C ? Non, aujourd'hui c'est un marché dominé par MatLab, pourtant MatLab "c'est un langage interprété").

                                            Question "performances", tu dis encore une fois une grosse bêtise en énonçant l'argument "c'est interprété lol". Si pour toi "interprété = lent, compilé = plus rapide", intéresse-toi un peu de près à LLVM (pour laquelle Google travaillait sur une implémentation de Python nommée "Unladen Swallow" il fut un temps), cela tordra probablement le cou à une idée reçue. Du reste, beaucoup de modules de Python sont des bindings pour des codes écrits et compilés en natif, qui offrent donc des performances comparables avec des programmes eux-mêmes écrits entièrement en un langage natif sur les parties pour lesquelles les performances brutes sont un pré-requis (ce qui n'est pas tout le temps le cas en programmation scientifique).


                                            Bon alors, puisque tu prends de haut, je vais quand même t'expliquer que c'est mon job.
                                            Je ne connais aucun scientifique qui utilise Python pour faire du calcul scientifique. Matlab est la référence du calcul matricielle et SciPy ne tient absolument pas la route.
                                            Si aujourd'hui Matlab tronche n'importe quel logiciel de calcul matriciel c'est en partie parce qu'il repose sur une accélaration GPGPU qui est l'avenir en terme de puissance de calculs par rapport au prix. Et ce n'était pas le cas il y a ans où les scientifiques trouvaient au contraire matlab lent et atrophié. Comme quoi...

                                            Si je veux écrire implémenter un algorithme pour la performence, je le fais en FORTRAN. Quand au bibliothèque de graphes, ça fait bien longtemps que j'en ai écrite.
                                            Contrairement à Candide, je ne suis pas mathématicien mais ingénieur-mathématicien. Ce qui m'importe pour le moment c'est la performence, l'optimisation et notamment le temps réel pour les applications financières.
                                            Aujourd'hui tu parles de Python au labo d'informatique à côté duquel je bosse, ils vont adorés, tu parles au labo de maths, ils rigolent. C'est pas du tout les même objectifs.
                                            • Partager sur Facebook
                                            • Partager sur Twitter
                                              1 octobre 2011 à 14:54:41

                                              Et ton labo est le seul existant, et c'est suffisant pour affirmer de façon péremptoire que "Python ne tiendra jamais la route en tant qu'outil de recherche" ? Je peux moi aussi te raconter que dans mon ancien boulot je travaillais sur une thèse de doctorat, et justement Python convenait très bien à mes besoins !

                                              En parlant de GPGPU, jette donc un oeil à PyOpenCL et PyCUDA : ces deux bibliothèques permettent non seulement d'obtenir les mêmes performances que leurs pendants natifs (C et C++) mais le fait qu'il s'agisse d'implémentations en Python leur donne aussi cet avantage non-négligeable de pouvoir templatiser les kernels en 2 coups de cuiller à pot pour les générer à la volée avant de les balancer au GPU, ce qu'il est beaucoup moins pratique de faire en C++ (sauf, à la rigueur, depuis que CUDA 3 est sorti et donne accès aux templates C++, même si leur usage dans ce sens reste limité), et ce qui n'est pas non plus un luxe puisque ça permet de rechercher dynamiquement LE paramétrage qui maximisera les performances sur un GPU donné (plutôt que de perdre du temps à tester un kernel sur plusieurs GPU de façon à générer des configurations types).

                                              Mais même en sortant des considérations sur l'utilisation de ces deux bibliothèques, je ne vois pas en quoi, si justement le GPGPU est l'avenir en termes de recherche de performances (point sur lequel je suis tout à fait d'accord avec toi), cela excluerait Python : le principe du GPGPU est justement de déléguer à la carte graphique les traitements les plus lourds en termes de puissance, sachant que le gain en temps doit à la base valoir assez largement le coup pour se permettre de prendre dans la tronche le temps de latence induit par le transfert des données vers, et depuis le GPU. Or justement, dans le cas d'un programme bien conçu, on limite ce genre de transferts entre les deux cartes, et on se contente de réaliser des appels au driver du GPU... que ces appels proviennent d'un programme en C ou en Python, cela n'a pratiquement aucune incidence sur les perfs. Par contre, si le programme qui lui-même réalise ces appels a pris 2 ou 3 fois moins de temps à coder parce qu'il est en Python plutôt qu'en C, alors il y a effectivement un gros avantage à utiliser Python pour cela.
                                              • Partager sur Facebook
                                              • Partager sur Twitter
                                              Zeste de Savoir, le site qui en a dans le citron !
                                                1 octobre 2011 à 16:44:59

                                                S'ils vous plaît ne partez pas dans un débat hors sujet, comme je l'ai dis précédemment je ne veux pas créer un troll, le but initial de ce topic étant de me prouver et de me motiver à apprendre Python sérieusement, déclencher une guerre sur la science / math avec Python ne m'avancera surement pas :p
                                                • Partager sur Facebook
                                                • Partager sur Twitter
                                                  1 octobre 2011 à 17:15:47

                                                  On s'efforce au contraire de garder le débat dans le sujet, le sens de mon dernier post étant "on peut même faire du GPGPU en Python, et il y a même plusieurs avantages à choisir Python pour ça" (ce qui n'a à voir ni avec les sciences, ni avec les maths).
                                                  • Partager sur Facebook
                                                  • Partager sur Twitter
                                                  Zeste de Savoir, le site qui en a dans le citron !
                                                    1 octobre 2011 à 21:02:07

                                                    Citation : Gow3

                                                    S'ils vous plaît ne partez pas dans un débat hors sujet, comme je l'ai dis précédemment je ne veux pas créer un troll, le but initial de ce topic étant de me prouver et de me motiver à apprendre Python sérieusement, déclencher une guerre sur la science / math avec Python ne m'avancera surement pas :p



                                                    Tient, cadeau : http://www.biologeek.com/python/pourqu [...] er-en-python/
                                                    • Partager sur Facebook
                                                    • Partager sur Twitter
                                                      1 octobre 2011 à 21:24:44

                                                      Aller je suis passé a python , j'adopte !
                                                      • Partager sur Facebook
                                                      • Partager sur Twitter
                                                        2 octobre 2011 à 18:53:49

                                                        http://xkcd.com/353/
                                                        It's a whole new world upon there
                                                        \o/
                                                        Ce mec à bossé à la NASA, est l'idole de pas mal de geeks/programmeurs et tu as son avis. Concluant d'après moi.
                                                        • Partager sur Facebook
                                                        • Partager sur Twitter
                                                          2 octobre 2011 à 19:02:34

                                                          je rapelle que python permet aussi de faire des sites web ;)
                                                          • Partager sur Facebook
                                                          • Partager sur Twitter
                                                            2 octobre 2011 à 19:48:02

                                                            Citation : JEE

                                                            http://xkcd.com/353/
                                                            It's a whole new world upon there
                                                            \o/
                                                            Ce mec à bossé à la NASA, est l'idole de pas mal de geeks/programmeurs et tu as son avis. Concluant d'après moi.



                                                            Je l'avais oublié celui-là :D
                                                            • Partager sur Facebook
                                                            • Partager sur Twitter
                                                            Zeste de Savoir, le site qui en a dans le citron !
                                                              13 octobre 2011 à 10:03:46

                                                              Citation : candide

                                                              qu'il n'est pas assez «agressif», j'aimerais que Python remplace PHP et Javascript,



                                                              Loupé, Google vient de créer Dart.
                                                              • Partager sur Facebook
                                                              • Partager sur Twitter

                                                              Honte de choisir Python !

                                                              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                                                              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                                                              • Editeur
                                                              • Markdown