• [^] # Re: Critique

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

    « Et bien, dans le cas d'un code classique, si je perds mon indentation à la suite d'une mauvaise manip (Copie-Colle, deplacement, factorisation de code) ...
    Je reprend mon bloc et je fais une ré-indentation automatique du tout ...
    Et bien en python, c'est pas cà, il faut tout se relire, revérifier que les indentations soient les bonnes (splendide quand on enchaîne les boucles imbriquées ... ) »

    En etant de mauvaise foi, je dirais "Le HTML c'est vraiment mieux que le XHTML. Imagine, quand tu fais un copier-coller de code et que celui-ci ne marche pas et que des balises disparaissent pendant le traitement, le HTML peut encore entre analysé alors que le XHTML va forcement planter."

    Pour rire, j'invite tous les gens qui font du python a ajouter un marqueur de fin d'indentation :

    if toto:
    while titi:
    blo
    #endwhile
    #endif

    Et comme cela, plus de probleme.

    La je suis de mauvaise foi, mais c'est vrai qu'en pratique, je passe plus de temps a chercher des oublis d'accolades ou de points-virgules qu'a reindenter du code python. J'ai un tres bon editeur qui prend en compte l'indentation lorsque je copie colle du texte, et hop c'est bon. Il suffit d'un peu de rigeur lorsque l'on copie-colle et le probleme est reglé.

    Reste tout de meme le probleme des tabs ou des espaces pour l'indentation, et CA c'est vraiment un probleme et je regrete que le langage ne soit pas plus strict a ce sujet.

    « Apres, pour les SEGFAULT des débutants avec les langages classiques, ils peuvent être très facilement éviter par l'utilisation de bibliothèques pour la gestion des tableaux dans un premier temps par exemple ...
    Il restera toujours le pointage en dehors du tableau lors de la recherche d'un élément ...
    Mais là, Python a le même problème. »

    Python te crache une exception avec le numero de ligne, une explication et des informations utiles.

    C te fais un "Segfault". Si tu sais utiliser un debugger, tu peut trouver la ligne qui ne vas pas. Mais ce n'est PAS forcement elle qui pose probleme, des fois c'est quelque chose qui n'a totalement rien a voir. D'autres fois, le code marchait tres bien car l'on pointait en dehors du tableau dans une zone "sans danger" et du jour au lendemain cela ne marche plus (changement de compilateur, changement des indices ce qui fait que tu tapes maintenant bien en dehors de la memoire allouée. Bref c'est complexe.

    C++ a le meme probleme, c'est moins le cas pour Java et C#, j'avoue.

    Si on revient sur les erreurs que peuvent te donner le compilateur, je deteste C++ pour deux raisons, la premiere etant les erreurs que te crache GCC lorsque sur des fonctions templatées, c'est illisibles ;) La seconde raison c'est que pour GCC "Explicite is better...".

    « Après j'ai déjà encadré des étudiants en info ... comment dire ... L'indentation c'est pas leur fort dans une majorité des cas ... Mais bon, d'un autre coté, puisque là c'est obligatoire ... cela coincerait au début seulement :D à force ils seraient obliger de s'y mettre »

    J'ai aussi encadré des etudiants en info, et je t'avoue que pour la pluspart l'utilisation de python (apres avoir fait du C/Java/Pascal) etait un bonheur. J'ai meme eu une remarque "Avec python, c'est cool, il n'y a plus besoin d'indenter" d'un eleve qui voyait l'indentation comme le truc inutile que les profs demandent. Pour python, il n'indentait pas, il creent des sous-blocs logique.

    Je me rappel aussi des heures de debogage dues a un ';' en trop sur la ligne du while ou du for. La personne qui s'est deja faite avoir connait le truc, et encore, mais je te garantie qu'il y a en chaque année qui pleurent a cause de ca ;(