Python, meilleur nulle part, excellent partout


Je ne sais pas si vous l’aviez compris, mais j’aime bien Python. J’ai essayé de vous le cacher jusqu’ici, mais je sais que mon secret ne tiendra pas longtemps, alors j’avoues tout.

Je n’aime pas Python parce que c’est le meilleur langage pour X. Je ne pense pas que Python soit le meilleur langage pour quoi que ce soit. Regex ? Perl est meilleur ? IA ? Lisp est meilleur. Embarqué ? C est meilleur. Asynchrone ? Javascript est meilleur.

Non. J’aime Python parce qu’il est très bon à X. Presque tous les X. En fait, il existe très peu de X pour lequel Python n’est pas bon.

Python est excellent pour analyser du texte, pour faire un site Web (même asynchrone), de l’administration système, des interfaces graphiques, du calcul scientifique, de la 3D, des crawlers, etc. Pas le meilleur. Mais très bon.

Et ceci est fantastique. Cela veut dire que si je commence un projet, n’importe quel projet, je sais que je peux le commencer en Python. Je ne serai pas bloqué plus tard par tel ou tel besoin. Je sais que je pourrai m’en sortir agréablement avec Python.

Vous faites un site en JS ? Pour le sysadmin, il va falloir un autre langage.

Des scripts de maintenance en Perl ? J’espère que vous n’aurez pas besoin d’une UI.

Un crawler en PHP ? Pour l’analyse des données récupérées, vous aller vous amuser…

De l’extraction de data en Ruby ? Pourvu qu’il ne faille pas traiter plusieurs To.

Ce n’est pas que vous ne pourrez pas. Ils sont tous Turing complet après tout. Mais vous allez vraiment galérer.

Aucun langage n’est parfait, et Python n’est pas une exception.

Mais ce qui est génial, c’est que dans 90% des cas, vous pouvez avoir une solution propre et efficace en Python à la problématique que vous ne savez même pas encore que vous aurez. Et le jour où vous atteindrez la limite, alors oui, vous pourrez utiliser une autre techno pour le faire. Mais juste pour cette partie. La plupart du temps ce sera une partie très réduite. En en plus, Python pourra probablement s’interfacer nativement avec le code de l’autre langage.

Il y a des tas de raisons de ne pas choisir Python bien entendu, mais probablement la meilleure raison de le choisir, c’est qu’il y a peu de chance de se planter.

Bon, évidement si vous voulez écrire un driver de carte graphique…

26 thoughts on “Python, meilleur nulle part, excellent partout

  • Sam Post author

    Et j’ai réussi a réparer le formulaire d’upload des photos.

  • Eliot

    Entièrement d’accord. J’avais entendu il y-a quelques temps que Python était avec Java et C++ l’un des trois langages employés par Google en prod.

    Après quelques recherches, j’ai vu également que Youtube est en grande partie écrit en Python.

    Quand je vois des gens qui me disent que c’est juste un langage de script…

  • Zanguu

    Le point le plus intéressant de cet article est quand même le premier commentaire de Sam =D

  • Mageti

    un peu HS, mais ça devrait vous faire plaisir : lolix est codé en python, et la raison que donne son auteur, c’est “pourquoi Python ? parce que Django.” ()

  • Erik

    C’est vrai que Python semble être le décathlonien des langages.

    Et la remarque d’Eliot sur YouTube qui utilise aussi du Python, ça me fait penser que EvE Online aussi est basé sur ce langage. Pour ceux qui ne sont pas familiers de EvE, ce jeu de vaisseau/stratégie/capitalisme spatial a pour particularité de faire s’affronter tout le monde à 40,000 personnes sur un seul et même serveur. Niveau concurrence, ils sont forts.

    Il va falloir que je m’y mette moi aussi un de ces 4.

  • topper

    Et je me souviens quand je faisais du Python 1.5, quand je discutais, les gars me disaient que Python n’allait jamais sortir du lot…tu sais le genre de trou du cul en costard qui fait du Java chez GFI ;)…

    Sinon, pour enlarger votre culture, le Go n’est pas mal non plus…mais je préfère coder en Python, j’ai plus l’habitude. Par contre, le Javascript me sort pas les trous de nez, pas le langage en lui-même, mais généralement la programmation par callback ça me saoule rapidos car c’est vite le bordel et c’est casse-couille à debug…

  • bilbo

    @Mageti

    lolix c’est pas le site dédié à l’emploi encore plus triste que celui du Pôle Emploi, celui au design de 1998 où 4 offres annuelles se battent en duel ?

  • Paul Ricard

    Ce que j’aurais aimé avec Python, c’est pouvoir faire de l’embarqué mais c’est difficilement possible vu la taille des fichiers en autres…Le M2M ce sera pourtant la mode de dans pas longtemps…

  • kontre

    Je confirme ! Au boulot je suis pythonman et on se fout de ma gueule parce que je propose du python pour tous les trucs qu’on veut faire (ou presque, j’ai pas osé pour le FPGA).

    Par contre un truc qui m’a bien fait chier pendant ces 2 derniers jours c’est le multithreading/multiproceessing. Même si y’a de quoi faire en python, y’a quand même des limitations bien chiantes qui complexifient un max le processus. M’enfin j’y suis arrivé et j’en suis fier !

  • maitrerenard

    @kontre

    Tu pourrais essayer le Go pour ce genre de travail. tu seras agréablement surpris des performances et de la facilité de déploiement. Pour quelqu’un qui vient de Python, on s’y fait vite au Go…

  • kontre

    @maitrerenard Oui, j’ai vu que le Go c’était bien pour ça. J’ai aussi lu un article aujourd’hui comme quoi Go était super génial sauf la gestion des erreurs qui se fait en vérifiant les codes d’erreur en sortie des fonctions, comme en C.
    Mais surtout, tout le reste de l’appli est en python : gestion des formats de fichier, de données, interfaces, algorithmes, etc…

  • tester

    Pas le meilleur. Mais très bon.

    Autrement dit il est médiocre en tout…pour moi l’excellence passe par la polyvalence.

  • kontre

    @tester: Uh ? L’article dit justement que python est polyvalent. Et il dit aussi justement que python est très bon (donc loin de médiocre) dans un paquet de domaines. Je ne comprends pas du tout ta remarque.

  • tester

    @kontre: je parlais d’une polyvalence des langages, pas de la polyvalence du langage :) Ou si tu préfères mieux vaut prendre dès le départ ce qu’il y a de meilleur…

  • Mik

    Bonjour,

    Merci pour cet article qui vient à point nommé dans mon parcours. Je m’explique, après avoir été introduit aux langages les plus connus (Java, C, C++, Scheme), je dois choisir à présent un langage à approfondir. Python a été le premier langage que j’ai appris. Je pense que je garderai toujours un oeuil (je vais essayer de ne pas trop oublier au moins…) sur le C. Mon dilemme présent est de choisir entre Java, C++ et Python je pense que je suis obligé de choisir car je ne crois pas pouvoir me spécialiser dans les trois langages.
    Les trois langages ont leurs qualités, C++ à l’avantage d’être le plus proche de la “machine” celui dans lequel, je pense, on a le plus de capacité d’optimisation, mais aussi celui qui permet de faire le plus de grosse connerie au niveau de la gestion de la mémoire. Le vrai dilemme c’est entre Python et Java, maintenant que je connais Jave je pourrai me dire “laisse tomber Python, tu as plus de chance de trouver un job avec Java” mais je suis attaché à mon premier langage de programmation… En terme de polyvalence puis que c’est de cela dont il est question, je pense (mais je ne l’affirmerais pas cependant) que les deux langages sont équivalents. Il me semble que Java utilise plus de ressource machine, mais peut-être que je me trompe sur ce jugement, n’hésitez pas à me corriger.

  • Eliot

    @Kontre Je crois que Tester est un genre de troll (je l’ai découvert il y a quelques jours sur cet article.

    Si c’est bien le même, je sais pas si ça vaut trop la peine de discuter avec lui du coup.

  • tester

    @mik: tu veux un conseil désintéressé ? Vas sur python les concurrencer sur leur terrain et laisses-moi tout le reste :p

    @Kontre: je crois que Eliot un genre de con. Tu fais bien de ne rien lui répondre.

  • bilbo

    @Mik

    Bonjour, choisis autre chose que le Python, il n’y a presque pas d’emploi en Python, quelques postes de dev web django ou de l’ERP, mais c’est au compte-goutte et souvent toujours sur Paris.

    Si tu veux travailler, il faut choisir des langages corporate (C#, Java, C++). L’informatique en France est tenue par les SSII…ça brasse, ça ne paye pas sauf si tes parents t’ont acheté un diplôme d’ingénieur et qu’ils ont eu les moyens de d’envoyer faire des voyages à l’international pour parfaire la langue du capitalisme : l’anglais.

    Si tu n’as pas eu cette chance, que tu habites en Province, tu vas finir hotliner ou à travailler dans le support…

    Bref, si tu es intelligent, fais du commerce ou du marketing, dans la société de fumiste dans laquelle on évolue, du gagneras plus et tu passeras pour un héros…

    Bon courage.

  • Sam Post author

    Personnellement je n’ai jamais connu le chaumage. Je refuse du boulot, en fait. Donc le nombre d’emploies est pas vraiment un critère de choix. Le vrai critère, c’est sur quel type de projet tu veux travailler. Généralement un certain langage attire un certain type de projet, et un certain type de gens.

    L’anglais est de toute façon indispensable si on veut un bon job en informatique. Mes parents n’étaient pas riches, j’ai fais un IUT en alternance (donc en bossant), puis je suis parti en erasmus en Angleterre et j’ai payé mes études en travaillant. C’est à la portée de tout le monde.

    J’aurais plutôt tendance à me dire que si on ne trouve pas de boulot en tant que dev ici, il y a d’autres raisons. Manque de compétence, de motivation, ou alors une grosse boule de négativité, ce qu’on voit beaucoup en France. Je comprend qu’on embauche pas quelqu’un de frustré, agressif, ou défaitiste.

    Après, les salaires et conditions de travail sont vraiment pas à la hauteur des compétences demandées, mais parallèlement, les profiles compétents sont aussi assez rare, avec pas mal de boulots qui se présentent aux entretiens.

  • bilbo

    @Sam

    Bon, je ne vais pas épiloguer des heures, car c’est votre blog et vous voudrez certainement avoir le dernier mot…

    Je suis sincèrement content que tu aies du travail, que tu en refuses même. Mais il ne faut pas prendre ton cas pour une généralité (syndrome du chez moi ça marche), je ne sais pas dans quel coin tu résides, car oui cela a une influence. Nier le fait qu’il y a une crise de l’emploi dans le secteur informatique est une malhonnêteté intellectuelle, il suffit de regarder.

    Ton discours sur l’attitude positive est pour moi un poncif. Demande à la moitié des Français si leur malheur est une réalité ou un sentiment. Les défenseurs du politiquement correct tiennent généralement ce genre de discours…on le voit encore avec la théorie du genre où on nous explique qu’on n’a rien compris…

    Si tu trouves un gars à l’attitude positive qui fait de la hotline sur un plateau à 1100 euros, tu es très fort. C’est vrai en France on préfère embaucher des fumistes entreteneurs de réseaux largement pistonnés qui cultivent leur ego sur twitter, Facebook ou sur leur blog nombriliste.

    Enfin, je te rejoins sur le fait que les salaires ne sont pas du tout à la hauteur des exigences demandées. L’informaticien aujourd’hui est considéré au mieux, comme un ouvrier spécialisé. Même les ingénieurs, on ne les reconnaît plus pour leur maîtrise de la technique, mais leur capacité à manager et à vendre, d’ailleurs en informatique on est vite ingénieur (mais on ne sait pas écrire un email sans faire 12 fautes d’orthographe)…c’est un autre débat.

  • dineptus

    L’attitude n’est pas qu’un poncif. Un ami voulait être pilote. En France tout le monde lui disait “c’est galère, tu devrais changer” ou “c’est bien un rêve mais la tu vas faire quoi ?”. Il est parti aux Etats Unis et quand il dit la même chose on lui dit “super, fonce !” (go for it). Il sera pilote dans 5 mois.

    De même je trouve qu’en France beaucoup de salariés sont complètement passifs et négatifs. Je ne parle pas de centres d’appel, la c’est toujours comme ça, mais d’entreprises normales (genre Orange, Renault, EDF etc.). On a l’impression que certains se considèrent comme des esclaves et que le moins ils font le mieux ils se portent. De même le patron est diabolisés, tandis que du côté du patron on voit les salariés presque comme des ennemis, en tout cas un danger bien souvent. J’ai bossé en Suède et rien à voir, c’est plutôt bosser tous ensemble pour l’entreprise et dans la bonne humeur (enfin, une bonne humeur toute nordique quoi … pas très chaleureuse mais ils sont quand meme sympa :p).

    C’est fou mine de rien ce que change l’attitude, une attitude positive peut tout changer dans un projet. Alors oui quand tu es en centre d’appel ça ne changera pas le monde, mais en recherche d’emploi ça change tout. Un bon patron, si le candidat est motivé, positif et fait preuve d’initiative, peut l’engager même quand ce n’était pas prévu de prendre quelqu’un. Alors que si c’est qun gros blasé qui veut juste son chèque de fin de mois, ben tu le prends que si t’as vraiment besoin de quelqu’un et personne d’autre sous la main.

    Voila c’était mes petites remarques sur l’attitude. Sur l’état du marché et les jobs j’en ai aucune idée :p

Comments are closed.

Des questions Python sans rapport avec l'article ? Posez-les sur IndexError.