• [^] # Re: Critique

    Posté par (site web personnel) . En réponse au journal Explorez les richesses du langage Python. Évalué à 3.

    « Je code en ligne, puis, transforme en fonction ce qui peut l'être, en faisant un copié collé du code à mettre en fonction. Dans un cas, j'ai renommé mes paramètres afin d'avoir un nom plus général dans ma fonction ... hors je n'ai modifié que le nom dans l'intitulé de la fonction et pas dans son corps .... Et bien je m'en suis rendu compte deux jours plus tard ... quand j'ai mis ma fonction dans un module autre ... et qu'il n'arrivait pas à trouver ma variable.
    La portabilité de celle-ci faisait qu'il prenait sans problème, une variable déclarée dans le corps du programme et non pas celle passée en paramètre (prise de tête garantie)
    N'importe quelle compilateur m'aurait insulté copieusement dès le début :D »

    Ce probleme est veridique, cependant :

    1) Il existe des outils (pylint par exemple) qui font le genre de verifications qu'un compilateur pourrait faire, mais il est vrai, pas forcement avec l'efficacité d'un compilo du fait du coté dynamique.
    2) Une fois les problemes de compilation passés, tu te rend compte qu'avec une bonne methodologie de test, tu evites beaucoup plus de problemes graves. Et la python est tres fort (c'est presque marrant d'ecrire des tests avec ;) (Je ne nie pas que les framework de tests existent dans d'autres langages, c'est juste plus lourd, je DETESTE tester du C, generalement je prefere le wrapper dans du python et tester le python...)

    « L'indentation est aussi affreuse, je n'aime pas du tout devoir remplacer les { } par des tabulations .. le copié collé de code est souvent affreux si l'on doit changer le niveau de tabulation »

    Ca c'est le boulot de ton editeur de texte. Personellement, (sachant que je Dev principalement avec le couple python/C et des fois en C++), je fais toujours beaucoup d'oublis de parentheses ou points virgules, par contre je n'ai JAMAIS eu de probleme d'indentation en python.

    « Et je plussois puissance beaucoup le système aide en ligne en ayant simplement à faire help(ma_fonction) dans un interpreteur »

    C'est marrant, c'est vraiment pour moi une des faiblesse de python et des langages dynamique, ton IDE a beaucoup de mal a t'afficher la doc d'une fonction ;) Pour cela je prefere vraiment le C/C++/Java/C# qui me permettent d'avoir sans soucis la doc et l'autocompletion de mes fonctions tres rapidement.

    « Et je n'ose imaginé des débutants avec les problèmes des variables non typées et du code basé sur son indentation ... »

    Et les debutants avec des SegFault ? Et pas les gentils segfault, je parles des mechantes qui n'arrivent qu'une fois sur deux ;) Quand tu vois que 90% des etudiants d'une celebre ecole d'ingenieur en informatique que je ne citerais pas ne savent pas ce qu'est un debuggeur, un debutant le sait encore moins, alors il ira chercher son segfault a coup de printf et il va ramer longtemps, quand il ne vas pas juste rester totalement bloqué (Je ne nie pas que certains traceback de python son flous, mais pas autant qu'(un/une) (beau/belle) Segfault ;)