D’après Simon Willison, le fondateur de Datasette (éditeur de solutions open source pour explorer et publier des données), « il n'y a jamais eu de moment plus propice pour apprendre à programmer ». Et ce n'est pas parce que l'IA va coder à la place des programmeurs. En fait, c'est exactement le contraire. « Les grands modèles de langage aplatissent la courbe d'apprentissage », affirme le dirigeant, et permet donc aux jeunes développeurs de se mettre plus facilement à niveau. Pour autant, on ne peut et on ne doit absolument pas oublier comment coder. Par contre, il est possible d’utiliser l'IA générative pour améliorer la tâche des développeurs, quel que soit leur année d'expérience.
On peut beaucoup apprécier ce que dit Simon Willison sur l'IA générative. De mon point de vue, c’est l'un des développeurs les plus réfléchis sur le sujet. Mike Loukides, d'O'Reilly Media, est également très intéressant à lire, car il ramène toujours les grands sujets à leurs aspects les plus essentiels. Concernant l'IA générative et le développement, celui-ci rappelle qu'il est plus difficile qu'il n'y paraît de « rédiger de très bonnes invites ». Celui-ci affirme que « pour être vraiment bon en prompts, il faut développer une expertise sur le sujet ». En d'autres termes, il faut être un bon programmeur. « Si on se laisse séduire par l'idée que l'IA est un réservoir d'expertise et de sagesse inatteignable par un humain, on ne pourra jamais utiliser l'IA de manière productive », suggère aussi Mike Loukides.
Une aide pour apprendre à coder...
Pour utiliser efficacement des outils de codage comme AWS CodeWhisperer ou Google Codey, il faut vraiment les guider sur les résultats attendus. Et pour expliquer à l'IA, étape par étape, comment résoudre les problèmes de développement, il faut d'abord bien le comprendre et savoir comment amener l'IA à y répondre. Il faudra aussi que le développeur soit capable d’évaluer si l'IA se trompe. Là encore, il faut un certain niveau d'expertise. Oui, les assistants de codage doivent nous aider à être plus ambitieux dans les projets que l’on entreprend, comme y encourage par ailleurs Simon Willison, mais non, ils ne vont tout simplement pas éviter aux développeurs d’avoir à comprendre le code. Chose que l’on ne devrait d'ailleurs pas souhaiter. Ce qui me ramène au premier point soulevé par Simon Willison.
Pour de nombreux développeurs débutants ou expérimentés qui découvrent un langage, un framework, une base de données, etc. la courbe d'apprentissage peut être abrupte. Par exemple, « ils pourraient louper un point-virgule, et voir apparaitre un message d'erreur bizarre, et il leur faudra deux heures pour retrouver leur chemin », a expliqué Simon Willison. Certains pourraient renoncer, pensant qu'ils ne sont tout simplement pas assez intelligents pour apprendre à programmer. C'est là que les assistants d'IA ont un rôle à jouer. Selon le dirigeant , « on ne devrait avoir besoin d’être diplômé en informatique pour faire exécuter une tâche fastidieuse à un ordinateur ».
... mais pas pour faire tout le travail
ChatGPT et d'autres assistants alimentés par un grand modèle de langage peuvent tout à fait automatiser ces tâches. Jaana Dogan, ingénieur chez GitHub, fait remarquer que « les gens se concentrent trop sur la génération de code et n’ont pas du tout conscience que les LLM sont utiles pour l'analyse de code », entre autres choses. Nous n'avons pas besoin de l'IA pour faire tout le travail. Pour reprendre l'argument de Simon Willison, nous avons juste besoin qu'elle automatise des tâches discrètes et ennuyeuses qui ne vont pas faire ou défaire une application, mais qui pourraient décourager le développeur forcé d'apprendre et de prendre en charge tous les aspects de la programmation alors qu'un assistant de codage peut se charger de cette corvée.
Comme toujours, la meilleure façon d'aborder l'IA générative et le développement de logiciels est de commencer ! Débuter modestement, en automatisant des tâches simples que l’on comprend, mais que l’on ne veut pas nécessairement avoir à écrire encore et encore. Grâce au temps gagné, le développeur pourra se concentrer sur des défis de codage plus difficiles à relever, ce qui le mettra également en meilleure position pour les automatiser, au fur et à mesure qu’il gagnera en expertise.
Article rédigé par le contributeur Matt Asay pour IDG NS