• # Langage sympa, mais pas fait pour être maintenable

    Posté par . En réponse au message De la conception du langage Python. Évalué à 3. Dernière modification le 08 février 2018 à 13:35.

    J'aime python, mais pour l'utiliser dans le cadre de vrais gros projets, c'est quand même bancal à mon goût.
    Voilà les raisons :

    Pas de constantes

    Ai-je vraiment besoin d'étayer ?

    Gestion des dépendances mal fichue

    Gérer les dépendances avec pip ou easy_install est considérée comme obsolète alors que ce sont les outils fournis d'office. Et pour cause, le méli-mélo de versions de libs est un cauchemar.

    Pas de typage dans les déclarations de méthode, même pas en commentaire

    Ça rend la doc des fonctions, classes et modules juste misérable. Si au moins on pouvait avoir un équivalent de PHPDoc, et qu'il soit accepté par la communauté comme un standard, ça aiderait.

    Self explicite dans les classes

    Je ne comprends toujours pas pourquoi ce mot clé est obligatoire dans les fonctions d'une classe. Et je ne comprend pas non plus qu'on doivent encore alourdir le code en disant qu'on veut accéder à self pour accéder à une propriété d'une classe. Ça rend quasi obligatoire les affectations vers des variables locales pour ne pas rendre le fonctionnel illisible. Alors je sais que c'est pas le seul langage de script où c'est le cas, mais ça n'est pas une raison pour pourrir son code.

    Les modules

    Je sais que ça commence à s'améliorer doucement avec python3 et des brouettes, mais franchement, ça reste moisi. Et tout ça alors que c'est un besoin primaire de programmation de pouvoir facilement diviser son code en plusieurs fichiers. Ça trouve le moyen d'être plus louche que PHP composer et ses PSR.

    Outillage pour les tests unitaires immature

    Heureusement que nose existe, parce que franchement sans cet outil, c'est l'âge obscur pour lancer les tests unitaires et gérer les imports du code testé dans les tests unitaires. Mais ça reste pas franchement folichon par rapport à ce qu'on trouve ailleurs.

    Malgré tout ça, j'aime ce language

    Malgré toutes ces critiques, ça reste un chouette langage pour de petits projets ou pour automatiser de l'administration système. J'ai deux projets en cours avec des scripts d'administrations système assez costauds et python est un bon outil pour faire ça. C'est une alternatives appréciable aux infâmes scripts bash/sh où la gestion des erreurs reste approximative, où c'est difficile de modulariser son code et où faire des tests unitaires reste encore aujourd'hui un défi.
    Par contre, si j'avais une vraie appli à faire, je ne ferai clairement pas ça en python, toujours pas.