Introduction
L'idée de générer du code à partir de spécifications n'est pas nouvelle, mais les défenseurs de la programmation agente prétendent avoir trouvé un moyen de le faire de manière efficace. Cependant, leurs affirmations sont souvent basées sur des malentendus.
Contexte Technique
Les spécifications sont souvent considérées comme plus simples que le code correspondant, mais en réalité, pour être précises, elles doivent être aussi détaillées que le code. Le projet Symphony d'OpenAI est un exemple de cela, où la spécification ressemble plus à du pseudocode qu'à une véritable spécification.
Les spécifications contiennent souvent des éléments tels que des schémas de base de données, des dumps de code et des sections ajoutées pour aider la génération de code. Cela montre que les spécifications ne sont pas nécessairement plus simples que le code.
Analyse et Implications
Les défenseurs de la programmation agente commettent deux erreurs courantes : ils pensent que les spécifications sont plus simples que le code et que le travail de spécification est plus réfléchi que le travail de codage. Cependant, en pratique, les spécifications doivent être aussi détaillées que le code pour être efficaces.
Cela signifie que les spécifications ne sont pas une alternative au code, mais plutôt une autre forme de code. Les spécifications doivent être considérées comme une partie intégrante du processus de développement, et non comme une étape distincte.
Perspective
Il est important de surveiller les limites de la programmation agente et de la génération de code à partir de spécifications. Les spécifications doivent être considérées comme une partie intégrante du processus de développement, et non comme une étape distincte.
Il est également important de noter que les spécifications ne sont pas nécessairement plus simples que le code, et que le travail de spécification peut être tout aussi complexe que le travail de codage. En fin de compte, la clé pour réussir dans la programmation agente est de comprendre que les spécifications et le code sont étroitement liés et doivent être considérés comme une partie intégrante du processus de développement.