• # Refactoring en Python

    Posté par (site web personnel) . En réponse au journal Découvrir Docker, Python, LLVM et Emscripten. Évalué à 0.

    Venant du C++ je n'apprécie guère le duck typing et le côté interprété du langage. Lors du premier jet c'est assez agréable, le script est propre et on a tout en tête, mais lorsqu'il faut y revenir plus tard par exemple pour ajouter un paramètre à une fonction, alors ça devient galère. On se met à la recherche de tous les appelants pour les modifier, puis les appelants des appelants. Et si tu en oublies tu ne le sauras pas tant que le chemin d'exécution ne passera pas par l'appel erroné. Quelle galère.

    Je ne comprends pas trop ce problème, en fait : il suffit d'aller sur la fonction ou méthode à renommer, puis faire Shift-F6 (ou équivalent dans l'IDE) et choisir le nouveau nom de la méthode. L'IDE s'occupera tout seul de modifier les appels de cette méthode.
    Concernant le duck-typing (ou plutôt le typage dynamique), je trouve que c'est, la majeure partie du temps, un mauvais argument.
    Un IDE et un code corrects vont permettre de l'inférence de type et tu te retrouves rapidement avec les mêmes garanties de type que dans un langage typé statiquement (au moins dans l'IDE). Quand il n'est pas possible d'inférer le type, tu peux aider l'IDE avec des annotations.
    Même quand je prototype, je mets les annotations nécessaires pour avoir un typage complet, par exemple.