nraynaud
Habitué
Il semblerait que la mode du test-first et des tests unitaires soit le signe du renoncement dans la quête de la qualité ultime.
En effet, depuis Turing, la logique avance à grand pas et au cours de l'histoire de l'informatique, on a toujours crû que seule la preuve formelle de la correction des programmes était la seule voie vers la fiabilité ultime.
On a commencé avec Lisp qui avait un comportement mémoire par nature correct (pas de pointeurs qui se barrent en vrille), on a enchainé avec des langages comme ML, tout en faisant parallèlement avancer les prouveurs automatiques et les frameworks logiques qui les sous-tendent.
Hors aujourd'hui la mode est à java (qui ne fait même pas d'analyse globale), à JUnit, et au code dynamique (intrinsèquement improuvable).
En effet, depuis Meyer et la programmation par contrat, la preuve est restée marginale dans le domaine du développement. L'existence d'outils tels que coq, ou de langages "corrects" tels que haskell est complètement méconnue.
Les développeurs auraient-ils renoncé à la qualité qu'il testent vaguement leur produit au lieu de tenter d'en prouver la correction ?
On se souvient pourtant de la célèbre citation de Knuth : "Attention, le code précédent n'a pas été testé, il a juste été prouvé comme correct !".
Qu'en pensez-vous ?
En effet, depuis Turing, la logique avance à grand pas et au cours de l'histoire de l'informatique, on a toujours crû que seule la preuve formelle de la correction des programmes était la seule voie vers la fiabilité ultime.
On a commencé avec Lisp qui avait un comportement mémoire par nature correct (pas de pointeurs qui se barrent en vrille), on a enchainé avec des langages comme ML, tout en faisant parallèlement avancer les prouveurs automatiques et les frameworks logiques qui les sous-tendent.
Hors aujourd'hui la mode est à java (qui ne fait même pas d'analyse globale), à JUnit, et au code dynamique (intrinsèquement improuvable).
En effet, depuis Meyer et la programmation par contrat, la preuve est restée marginale dans le domaine du développement. L'existence d'outils tels que coq, ou de langages "corrects" tels que haskell est complètement méconnue.
Les développeurs auraient-ils renoncé à la qualité qu'il testent vaguement leur produit au lieu de tenter d'en prouver la correction ?
On se souvient pourtant de la célèbre citation de Knuth : "Attention, le code précédent n'a pas été testé, il a juste été prouvé comme correct !".
Qu'en pensez-vous ?