Python, première impressions…

Python Logo

Or donc, j’ai suivi au boulot un cours de Python. Cela faisait quelques temps que je procrastinait sur le fait d’apprendre ce langage, et j’ai fini par décider qu’un cours m’aiderait à faire le pas. Ma première impression est que c’est une langage de script sympa, mais qui ne vaut à mon avis pas le foin qui est fait à son sujet – si Python est certainement mieux structuré et plus rapide à utiliser que C/C++ et plus agile que Java, le langage n’est pas si moderne que ça, dans le sens qu’il semble souffrir des problèmes classiques: des opérations pas très uniformes sur les types collections de base (+ existe pour certaines opérations, pas d’autres), le nom des méthodes semble varier de type à type, certaines fonctionalités existent en méthode et en fonction (len pour la longueur des chaînes), et le traitement des chaînes de caractère souffre de l’habituel problème d’encodage (i.e. on n’y a simplement pas pensé au début). Les co-routines ont l’air sympa, mais le support du threading n’a pas l’air exceptionnel. Est-ce que j’utiliserais Python pour programmer? très certainement, cela semble être un bon remplaçant pour le shell-script ou perl. Est-ce que cela remplace mon langage fétiche (Objective-C)? pas pour l’instant…

5 thoughts on “Python, première impressions…”

  1. Je suis d’accord dans le sens où effectivement il reste pas mal de scories et de vieilleries dans Python, et les bibliothèques dans leur ensemble mériteraient un coup de balai ou deux, mais je pense par contre que tu regarde dans la mauvaise direction quand tu dis que ça ne mérite pas tout ce foin. Ok, il y a l’effet fanboy avec la prétention que ce langage est “idéal”, on n’y coupe pas.

    Là où les choses se passent, c’est que pour la première fois depuis longtemps, on a un langage assez performant dont la syntaxe n’est pas un cauchemar à appréhender et dont les idées et “paradigmes” directeurs ne sont pas trop éloignés de la compréhension d’un public somme toute assez conservateur.

    En gros, “Python is the new VB” n’est peut être pas si faux, après tout… Dans le même registre mais plus moderne sur les points qui t’ennuient, tu as aussi Ruby, Scala et quelques outils sur la plateforme .NET.

  2. c’est de nouveau moi…

    par curiosité, et bien qu’on en a déjà parlé, quels sont les éléments qui montrent que ce n’est pas une nouveauté ?

  3. Difficile à mettre le doigt dessus un feeling général. Un exemple simple, les collections. Un dictionnaire a une méthode items, mais un vecteur ne l’a pas d’un autre côté le vecteur a une méthode count alors que le dictionaire non. Cela fait que ton code à l’air très lié à la nature de tes collections. Si tu as un vecteur de paires, comment tu peux le convertir en un dictionnaire?

  4. Vais me lancer aussi là-dedans si le temps le permet. Après un mois, tes impressions se sont-elles confirmées ?

    Ça m’intéresse, parce que j’aime bien l’Objective C aussi (du moins le peu que j’ai pratiqué…)

  5. En général oui. Python est un langage de script sympa, le modèle des objets est sympa, notamment le fait qu’on puisse modifier des méthodes d’un objet donné à tout moment pour les faire pointer sur autre chose, ce qui est très pratique pour faire des tests par injection. Il n’en reste pas moins que le langage a beaucoup d’idiosyncrasies, et que le fait de pouvoir spécifier des contraintes (comme le fait qu’une variable est constante) me manque.
    L’autre point noir à mon sens, c’est les performances qui ne sont réellement pas stellaires…

Leave a Reply to ThiasCancel reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.