ZephLe 12/07/2012 à 00:24
Simplifier l'écriture. Mais je trouve que c'est une très mauvaise raison : un programme n'étant souvent pas écrit autant de fois qu'il n'est lu (sauf projet strictement perso, et encore), c'est la facilité de *lecture* qu'il vaudrait mieux privilégier. Je ne sais pas combien parmi vous ont déjà travaillé à plusieurs sur un gros projet dans un langage dynamique, mais c'est vraiment la misère. Le seul moyen de ne pas se paumer complètement est de s'imposer des conventions hyper strictes (par exemple détailler les entrées et sorties en commentaire de chaque méthode), ce qui revient grosso modo à ce que force naturellement à faire un langage statiquement typé (sauf que comme le compilateur/interpréteur ne peut rien vérifier, c'est sujet aux inévitables erreurs humaines).
Sinon faire une inférence de type dans un langage comme Python, c'est envisageable très localement (genre identifier que ma variable utilisée sur 3 lignes est toujours un entier, super), mais puisqu'il est dynamique et à cause de sa syntaxe minimaliste il y a beaucoup de méthodes qui une fois l'inférence appliquée resteraient génériques, donc le problème ne serait qu'en (petite) partie résolu.