Dans quelle mesure sommes-nous techniquement proches du développement de logiciels capables d’écrire des logiciels, remplaçant essentiellement la plupart des tâches de programmation et de développement de logiciels effectuées par des humains ?


Je me souviens avoir lu des prédictions au milieu des années 90's selon lesquelles les outils CASE (voir : Computer-aided software engineering) se développeraient bientôt au point que les programmeurs ne seraient plus nécessaires pour de nombreuses tâches de développement de logiciels. Il suffirait que des experts d'un domaine d'activité particulier créent des diagrammes et que l'outil génère le code nécessaire. Au cas où vous'vous demandez, les outils n'étaient que modérément utiles et sont largement tombés en désuétude.


Au moment de la prédiction, j'ai un peu gloussé - quelques mois plus tôt, j'avais lu que la même prédiction avait été faite pour une autre technologie. Celle-ci datait de 1959 et permettait à un non-programmeur d'exprimer un problème commercial dans une syntaxe simple, proche de l'anglais. Le langage était le COBOL - celui-là n'a pas tout à fait éliminé les programmeurs non plus.

Je pense que le problème est que les gens ne saisissent pas bien ce que fait un programmeur. La connaissance d'un langage de programmation est en fait facile à acquérir. La partie difficile est d'apprendre à conceptualiser un problème d'entreprise d'une manière structurée, de sorte qu'il puisse être traduit en structures de données, en algorithmes et, finalement, en logiciels fonctionnels. Beaucoup de programmeurs en herbe se retrouvent dans une situation où ils ont étudié un langage et appris la syntaxe, mais ne savent pas comment commencer à construire une véritable solution. Ils viennent de foncer tête baissée dans la partie difficile du métier de programmeur. Je ne vois pas cette partie difficile être surmontée par les machines de sitôt.