The Humble Programmer

✒ Enzo SandrĂ© · 📆 09/03/2023 · #ïžâƒŁ Façonnage de code · 👔 Avis d'expert

👮 Dijkstra est une personnalitĂ© du dĂ©veloppement. Il est notre Confucius, largement citĂ©, rarement lu. Un de ses plus cĂ©lĂšbres papiers, The Humble Programmer raconte son histoire avec la programmation. Dans sa seconde partie, il disserte sur l’avenir de notre profession et sa condition de survie : atteindre la performance. Cela signifie que les dĂ©veloppeurs ne doivent pas passer la majoritĂ© de leur temps Ă  dĂ©bugger, donc que les dĂ©veloppeurs ne doivent plus mettre de bugs dans leurs programmes, tout simplement.

🐛 Comment atteint-on cette performance ? En crĂ©ant des programmes intellectuellement maniables. Comment fait-on cela ? En remettant la cĂ©lĂšbre citation de Dijkstra dans son contexte : “Tester peut ĂȘtre une maniĂšre efficace de trouver des bugs, mais jamais de prouver leur absence”.

đŸ§Ș Dijkstra parle ici des tests manuels aprĂšs le dĂ©veloppement. Il recommande plutĂŽt de dĂ©velopper la preuve de validitĂ© et le programme main dans la main, car il s’agit de la seule maniĂšre de ne pas avoir de bugs. Un programme dont les tests sont l’ultime spĂ©cification n’a pas de bugs, seulement des tests manquants. Il suffit d’écrire ces tests pour ne jamais voir revenir ce “bug”.

♻ Mieux, lorsque l’on a Ă©crit une preuve de validitĂ©, il est possible d’itĂ©rer afin de trouver le programme valide le plus intellectuellement maniable. Le mot “refactoring” n’existe pas encore, mais le concept est posĂ©. Alors, Dijkstra, un prĂ©curseur de TDD ?

SOURCE

Edsger W. Dijkstra, The Humble Programmer, ACM Turing Lecture 1972, EWD340

Enzo Sandré


📄 Lien public