Malgré tout le respect que j'ai pour Knuth, je pense qu'il fait fausse route avec la programmation lettrée. Le langage des ordinateurs, c'est celui des mathématiques, et non pas celui de la langue humaine naturelle.
Je suis d'accord avec Knuth sur le fait que l'un des points essentiels de la conception d'un programme, c'est qu'il soit compréhensible par les autres humains, et donc que les commentaires et les noms de variables sont importants, mais un programme n'est pas la simple transcription dans le langage des ordinateurs de quelque chose de préexistant dans la langue humaine. C'est quelque chose de différent.
Pour donner une analogie de ce que je veux dire, quand je vais voir un architecte pour qu'il conçoive une maison, je ne veux pas qu'il me rédige un pavé de 20 pages en langue naturelle du style "à droite, on va mettre un escalier, qui débouchera sur les deux chambres". C'est bien plus simple qu'il me dessine un plan de la maison. D'ailleurs, dans sa tête, un architecte pense directement avec le plan de la maison, pas en langue naturelle.
Et ce n'est pas un hasard si on parle de "l'architecture" d'un programme. Ce que je fais le plus souvent dans mon activité de programmation - et j'imagine que je ne suis pas le seul - c'est l'inverse de la programmation lettrée, à savoir de la programmation "graphique". Je prends un bout de papier, et je dessine avec des blocs et des flèches la structure d'ensemble du programme. Si on pouvait laisser facilement ces petits schémas en commentaire dans le source, ce serait génial.
[^] # Re: Programmation lettrée, des retours d'expérience ?
Posté par Yukito . En réponse à la dépêche De tout, de rien, des bookmarks, du bla bla #10. Évalué à 2.
Malgré tout le respect que j'ai pour Knuth, je pense qu'il fait fausse route avec la programmation lettrée. Le langage des ordinateurs, c'est celui des mathématiques, et non pas celui de la langue humaine naturelle.
Je suis d'accord avec Knuth sur le fait que l'un des points essentiels de la conception d'un programme, c'est qu'il soit compréhensible par les autres humains, et donc que les commentaires et les noms de variables sont importants, mais un programme n'est pas la simple transcription dans le langage des ordinateurs de quelque chose de préexistant dans la langue humaine. C'est quelque chose de différent.
Pour donner une analogie de ce que je veux dire, quand je vais voir un architecte pour qu'il conçoive une maison, je ne veux pas qu'il me rédige un pavé de 20 pages en langue naturelle du style "à droite, on va mettre un escalier, qui débouchera sur les deux chambres". C'est bien plus simple qu'il me dessine un plan de la maison. D'ailleurs, dans sa tête, un architecte pense directement avec le plan de la maison, pas en langue naturelle.
Et ce n'est pas un hasard si on parle de "l'architecture" d'un programme. Ce que je fais le plus souvent dans mon activité de programmation - et j'imagine que je ne suis pas le seul - c'est l'inverse de la programmation lettrée, à savoir de la programmation "graphique". Je prends un bout de papier, et je dessine avec des blocs et des flèches la structure d'ensemble du programme. Si on pouvait laisser facilement ces petits schémas en commentaire dans le source, ce serait génial.