
La programmation est un domaine en constante évolution qui a façonné le monde tel que nous le connaissons. Avec l'avènement de l'IA, une nouvelle question se pose : l'IA remplacera-t-elle les programmeurs à l'avenir ? La réponse n'est pas évidente et deux groupes s'opposent : pour certains, le monde n'aurait bientôt plus besoin des programmeurs, mais pour d'autres, il est peu probable que l'IA remplace les programmeurs. Les deux groupes s'accordent toutefois à dire que de nombreux éléments indiquent que l'IA jouera un rôle important dans la programmation à l'avenir, notamment sur le marché de l'emploi dans le domaine de la programmation.
« C'est peut-être ce qui est en train de se produire. Par une sorte d'ironie poétique, le génie logiciel semble être l'un des domaines qui pourraient être profondément modifiés par l'essor de l'intelligence artificielle. Au cours des prochaines années, l'intelligence artificielle pourrait transformer la programmation informatique d'une profession rare et très bien rémunérée en une compétence largement accessible que les gens peuvent facilement acquérir et utiliser dans le cadre de leur travail dans une grande variété de domaines », a écrit Farhad Manjoo, chroniqueur technologique au New York Times, dans un article d'opinion publié la semaine dernière.
D'une part, l'IA pourrait automatiser certaines responsabilités des programmeurs. Il s'agit notamment de l'écriture de modèles de code et du débogage, ce qui réduira le temps et les efforts requis par les programmeurs humains. En conséquence, cela pourrait entraîner une diminution de la demande de programmeurs débutants, qui sont principalement responsables de ces tâches. Le bon côté des choses, c'est que ces programmeurs pourront apprendre plus rapidement de nouvelles choses (dont les langages), ce qui permettra à leur carrière de passer à la vitesse supérieure. L'IA pourrait également créer de nouvelles opportunités pour les programmeurs.
Cela concerne principalement ceux qui sont capables de travailler avec l'IA et de l'intégrer dans leur travail. Ces programmeurs pourraient développer et maintenir les systèmes d'IA utilisés dans la programmation. Ils superviseront et géreront les systèmes d'IA utilisés dans le développement de logiciels. En outre, l'IA est susceptible de créer de nouveaux types d'emplois en programmation. Par exemple, on s'attend à ce que l'IA soit finalement capable de créer de nouveaux langages et techniques de programmation pour les programmeurs. Ce changement exigera donc de nouvelles compétences et une nouvelle expertise de la part des programmeurs.
Les outils d'IA basés sur de grands modèles de langage, comme ChatGPT ou Copilot, ont déjà commencé à changer la façon dont de nombreux codeurs professionnels font leur travail. Pour l'instant, ces outils fonctionnent principalement comme des assistants. Ils peuvent trouver des bogues, rédiger des explications pour des bouts de code mal documentés et proposer des suggestions de code pour effectuer des tâches de routine. En outre, certaines entreprises affirment que leurs systèmes d'IA sont déjà assez "intelligents" pour rivaliser avec les codeurs humains. DeepMind affirme que son IA AlphaCode peut rivaliser avec un programmeur humain moyen.
Dans un article publié dans la revue Science en décembre dernier, DeepMind a déclaré que lorsqu'AlphaCode était évalué par rapport aux réponses soumises par des participants humains à des concours de codage, "ses performances correspondaient à celles d'un programmeur novice ayant suivi une formation de quelques mois à un an". « La programmation sera obsolète. L'idée conventionnelle d'écrire un programme est en voie d'extinction », a récemment prédit Matt Welsh, ancien ingénieur chez Google et Apple. Welsh dirige aujourd'hui une startup spécialisée dans l'IA et reste persuadé que le génie logiciel sera fortement dominé par l'IA dans les années à venir.
« Et, en effet, pour toutes les applications sauf celles très spécialisées, la plupart des logiciels, tels que nous les connaissons, seront remplacés par des systèmes d'IA qui sont formés plutôt que programmés. Dans les situations où l'on a besoin d'un programme "simple", ces programmes seront eux-mêmes générés par une IA plutôt que codés à la main », a ajouté Welsh. Selon Manjoo, la programmation informatique est passée du statut de hobby ringard à celui d'une quasi impérative professionnelle, la seule compétence à acquérir pour survivre à la dislocation technologique, même si les conseils sont absurdes ou sonnent comme des calomnies.
Alors que certains prédisent que l'IA pourrait remplacer les programmeurs, les chercheurs se sont posé la question de savoir : « quel est le degré de sécurité du code généré par l'IA, en particulier ChatGPT ? ». Selon une étude menée par des chercheurs de l'Université du Québec, la réponse à cette question est : "le code généré par ChatGPT n'est pas très sûr". Dans le cadre de l'étude, les chercheurs ont demandé à ChatGPT de générer 21 programmes dans cinq langages de programmation afin d'illustrer des failles de sécurité spécifiques. ChatGPT n'a produit que cinq programmes plus ou moins "sécurisés" sur 21 lors de sa première tentative.
Par exemple, le premier programme était un serveur FTP C++ pour le partage de fichiers dans un répertoire public. Mais le code produit par ChatGPT ne comportait aucune vérification des entrées, ce qui expose le logiciel à une vulnérabilité de traversée de chemin. Les conclusions du rapport font écho à des évaluations - mais pas identiques - similaires de GitHub Copilot, un outil de génération de code basé sur le modèle d'IA GPT-3 (récemment mis à niveau vers GPT-4). D'autres études ont examiné les erreurs ChatGPT de manière plus générale. Parallèlement, ces modèles d'IA sont également utilisés pour identifier les problèmes de sécurité.
Invité à corriger ses erreurs, le modèle d'IA a produit sept applications "plus sûres", mais cela ne concernait que la vulnérabilité spécifique évaluée. Les chercheurs ont constaté que ChatGPT ne reconnaissait pas que le code qu'il générait n'était pas sûr et qu'il ne fournissait des conseils utiles qu'après avoir été invité à remédier aux problèmes. Une chose contre laquelle les chercheurs mettent en garde. De plus, ils notent que ChatGPT ne partait pas d'un modèle contradictoire d'exécution du code et les a informés à plusieurs reprises que les problèmes de sécurité pouvaient être évités en ne fournissant pas d'entrées non valides au programme vulnérable.
Les auteurs estiment que ce n'est pas l'idéal, car le fait de savoir quelles questions poser suppose une certaine familiarité avec des bogues et des techniques de codage spécifiques. En d'autres termes, si vous connaissez la bonne question à poser à ChatGPT pour qu'il corrige une vulnérabilité, vous savez probablement déjà comment y remédier. Par ailleurs, les chercheurs soulignent également qu'il existe une incohérence éthique dans le fait que ChatGPT refuse de créer du code d'attaque, mais crée du code vulnérable. Ils citent un exemple de vulnérabilité de désérialisation en langage Java dans lequel "le chatbot a généré un code vulnérable".
ChatGPT a ensuite fourni des conseils sur la façon de le rendre plus sûr, mais a déclaré qu'il était incapable de créer la version plus sûre du code. « Les résultats sont inquiétants. Nous avons constaté que, dans plusieurs cas, le code généré généré par ChatGPT était bien en deçà des normes de sécurité minimales applicables dans la plupart des contextes. En fait, lorsqu'on lui a demandé si le code produit était sécurisé ou non, ChatGPT a été capable de reconnaître qu'il ne l'était pas », affirment les chercheurs dans leur rapport. Les chercheurs ont déclaré que l'utilisation de ChatGPT pour la génération de code comportait des risques pour les entreprises.
Mais, le codage n'était-il pas censé être l'une des carrières incontournables de l'ère numérique ? En réponse à cette question, Manjoo a déclaré : « La programmation peut encore être une compétence intéressante à apprendre, ne serait-ce qu'en tant qu'exercice intellectuel. Toutefois, il aurait été stupide de la considérer comme une activité isolée de l'automatisation même qu'elle permettait. Au cours de la majeure partie de l'histoire de l'informatique, le codage a évolué vers une simplicité croissante....
La fin de cet article est réservée aux abonnés. Soutenez le Club Developpez.com en prenant un abonnement pour que nous puissions continuer à vous proposer des publications.