L'un des principaux avantages du typage statique est que c'est une sorte de documentation dont on sait qu'elle est à jour. Cela permet à un nouvel arrivant de comprendre plus facilement le code qui a été pondu par ses prédécesseurs. Qu'est-ce que cette fichue fonction prend en entrée et quelles opérations peut-on faire sur ce paramètre ? Avec le typage statique, on voit tout de suite le type et, avec un simple raccourcis clavier dans l'IDE, on peut sauter directement à la définition du type en question. Par contre, avec du code qui abuse du duck typing et qui n'ajoute pas non plus de contrôles de type au runtime, il faut chercher récursivement dans le code appelant. L'abus du duck typing est une manière parmi d'autres de concevoir des programmes qui sont de gros blobs que seul l'auteur comprend vite au lieu d'avoir un code bien découpé proprement en sous-parties qu'on peut analyser de manière relativement indépendante les unes des autres.
Même dans des environnements avec des langages dynamiquement typés, de plus en plus de développeurs finissent par comprendre que le typage statique peut être utilisé comme un atout pour la maintenabilité du code. C'est pour ça que le typage statique optionnel est apparu en Python et que le langage TypeScript est apparu pour ajouter du typage statique par dessus JavaScript.
Cela me rappelle que tu étais dubitatif sur l'intérêt de la concision apportée par Lombok en Java. Je cite un de tes messages de février :
Pour moi, si on peut générer tout ça avec des raccourcis dans Eclipse, c'est un signe qu'il s'agit de gros pâtés de textes qui ajoutent très peu d'informations, malgré la verbosité du code. Quand je lis du code, au lieu de faire défiler la barre verticale pour sauter la lecture du bruit, je préfère lire du code plus concis.
Partager