Bien qu’initialement destinée à traiter le sujet de la qualité du code en général, cette session s’est attardée sur Code Contracts for .Net.

Le concept de programmation par contrat a été introduit dans le langage Eiffel par Bertrand Meyer à la fin des années 80. Plus de vingt ans après, les laboratoires de Microsoft Research livrent un framework pour Visual Studio et C#, Code Contracts, qui permet de vérifier de manière statique (et dynamique) si le code et son exécution respectent les pré/post-conditions et les invariants posés par le développeur sur les classes.

Ayant moi-même écrit pas mal de code Eiffel dans le passé, je ne pense pas que le principe de programmation par contrat fera beaucoup d’émules dans la communauté Microsoft. Il a en effet l’inconvénient de multiplier le nombre de lignes de code à écrire, et de l’encombrer d’assertions souvent évidentes. En revanche, utilisé correctement, ce principe permet de détecter dès la compilation un certain nombre de bugs ou de mauvaise utilisation d’une API ; bugs qui n’apparaitraient qu’à l’exécution dans le cas d’un code « classique ».

Ainsi, Code Contracts permettra peut-être à C# de faire un pas dans le monde des applications critiques.