Dot.Blog

C#, XAML, WinUI, WPF, Android, MAUI, IoT, IA, ChatGPT, Prompt Engineering

ChatGPT et les développeurs C# : Amis ou ennemis ?

Il est là, ou plutôt elle est là, l'intelligence dite artificielle.. Nous menace-t-elle dans l'exercice de notre métier ?

Aujourd'hui je souhaite aborder un sujet qui fait débat dans la communauté des développeurs C# : ChatGPT, l'IA développée par OpenAI. La façon d'utiliser l'IA en général dans le développement est un sujet que j'aborderai certainement souvent dans le futur. Mais pour l'instant restons centrés sur le questionnement du jour :

ChatGPT peut-il aider les développeurs C# à travailler plus efficacement ou doivent-ils craindre cette technologie

Analysons ensemble les avantages et les inquiétudes suscités par cette innovation.

A noter : ChatGPT s'utilise de plusieurs façons : en mode conversationnel comme un Chat, d'où son nom, et c'est souvent sous cette forme qu'il pourra être utilisée par le développeur. Mais ce dernier pourra aussi utiliser les services de GitHub Copilot dans Visual Studio ou VS Code ce qui est très pratique pour générer du code directement dans l'environnement de développement. Bien entendu ChatGPT peut aussi être utilisé via son API qu'on appelle dans ses applications, comme les Cognitives Services Microsoft. L'option "Copilot" existe aussi dans Office 365 ce qui ouvre la voie à l'écriture de documentation de code, de résultats de tests etc, dans Word, de calculs dans Excel, le tout transformé en slide show dans PowerPoint... Les idées ne manquent pas et je reviendrai sur toutes ces utilisations !

Avantages vs Craintes

Avantages

D'un côté, ChatGPT peut être un formidable allié pour les développeurs C#. Voici quelques raisons pour lesquelles cette IA peut améliorer leur travail :

  • Génération de code : ChatGPT peut fournir des morceaux de code pour des tâches courantes, ce qui peut accélérer le processus de développement. C'est indéniable, il est plus rapide de relire et corriger que d'écrire tout un code. Quoi que...
  • Assistance à la rédaction : L'IA peut aider à rédiger des commentaires de code, des spécifications techniques ou des documents de conception. Si on utilise Office 365 et Copilot (qui utilise ChatGPT) on peut encore aller beaucoup plus loin et créer des documents, les mettre en forme à l'aide de l'IA, on peut dériver un PowerPoint depuis ce document Word etc. A ce niveau tout va bien et comme la grande majorité même des cadres ne disposaient plus de secrétariat à leur service depuis longtemps, c'est en fait le retour d'une sorte de secrétaire personnel. Pas de risque de mettre l'emploi des développeurs en péril.
  • Résolution de problèmes : ChatGPT peut fournir des suggestions pour résoudre des erreurs ou des problèmes de performance, en puisant dans sa vaste base de connaissances. Là encore, cela peut s'avérer plus efficace qu'un simple moteur de recherche et l'on pourra augmenter sa productivité sans pour autant que le besoin d'un professionnel du code ne soit remis en question.

Jusque là tout va bien ...

Les IA ne vous remplaceront pas !
Mais ceux qui sauront s'en servir oui !

Inconvénients potentiels et réels

Cependant, il est également important de considérer les points qui alimentent les craintes des développeurs :

  • Remplacement des emplois : Certains craignent que ChatGPT ou d'autres IA puissent remplacer les développeurs en automatisant leur travail. Toutefois, il est important de noter que l'IA ne fait que faciliter et accélérer certaines tâches, sans remplacer l'expertise humaine. Dans cette affirmation rassurante se cache un piège, le mot "expertise" mais j'y reviendrai plus bas.
  • Fiabilité du code généré : Le code généré par ChatGPT doit être vérifié par les développeurs, car il peut contenir des erreurs ou ne pas respecter les meilleures pratiques. Toujours en filigrane la fameuse "expertise"...
  • Dépendance à l'IA : Une utilisation excessive de ChatGPT pourrait entraîner une dépendance et un appauvrissement des compétences des développeurs. C'est la peur dont j'entends le moins parler mais c'est pourtant celle qui me semble la plus grave... A force d'automatisation mécanique les ouvriers sont moins forts et moins musclés que ceux du siècle précédent c'est une évidence. Il en va de même de nos capacités intellectuelles et de notre expertise (encore elle !). A force d'utiliser des béquilles ne risque-t-on pas de ne plus savoir marcher ?

L'expertise

J'ai dit que j'y reviendrai. C'est le moment ! On comprend facilement les avantages listés plus haut. On n'a que peu de mal à comprendre aussi que derrière les affirmations rassurantes sur les inconvénients réels ou potentiels se cachent quelques questions qu'on ne peut balayer d'un simple revers de main. Mais il n'est pas encore temps d'entrer dans des débats philosophiques ou éthiques, laissons cela pour d'autres articles.

Revenons plutôt sur ce point essentiel sur lequel j'ai insisté plusieurs fois : l'expertise.

En effet, le code généré par ChatGPT (ou GirHub Copilot) peut contenir des erreurs, ou utiliser des constructions au contraire assez élaborées, voire ne pas être optimal ou adapté au code de l'entreprise ou au niveau moyen de l'équipe de développement (avec risque sur la maintenance ensuite). Comment utiliser ce code par simple copier / coller ? C'est impossible ! Il faut le vérifier avant tout !

Mais... pour contrôler un code qui peut s'avérer bogué ou utiliser des constructions complexes ne faut-il pas en toute logique avoir un niveau d'expertise supérieur à celui qui a écrit le code ? C'est le problème des revues de code, elles ne peuvent pas être supervisées par le petit nouveau sans expérience...

Donc, pour utiliser un code généré par ChatGPT il faut en réalité avoir un niveau d'expertise supérieur à ChatGPT. Un développeur senior avec son expérience est parfaitement taillé pour ce genre de tâche. Mais, qui gâcherait le salaire d'un tel cadre pour "juste" réviser du code produit par ChatGPT ? Pas un seul dirigeant d'entreprise je le crains...

Ainsi, pour tirer parti de ChatGPT il faut des experts. Eux seuls pourront utiliser le code généré en évitant les bogues et les pièges et en sachant l'intégrer dans l'édifice du code de l'entreprise. 

Quel gain alors ?

Le gain est énorme, il s'appelle la productivité... Tout simplement. 

Mais engager un senior coûte plus cher qu'un débutant, et sans donner de noms on connait tous des tas de sociétés qui préfèrent mettre 5 débutants plutôt qu'un ou deux seniors... Oui mais : en gagnant en productivité, le Dev senior pourra remplacer les "petites mains", ChatGPT jouera ce rôle sans se fatiguer. L'économie faite sur ces postes permettra largement de financer le Dev senior tout en augmentant de façon substantielle la qualité du code et du conseil dans l'entreprise.

Les débutants seront donc peut-être les perdants de cette avancée majeure. Et juste retour des choses, les Dev seniors redeviendront hautement rentables (ils l'ont toujours été par la qualité de leur prestation mais la qualité ne se voit pas sur un bilan...) car ils produiront du meilleur code pour moins cher !

La question sera donc de savoir comment former la prochaine génération d'experts si les débutants ne trouvent plus d'emploi ? ... Je laisse le temps répondre à cette interrogation, on ne peut pas avoir réponse à tout immédiatement. C'est ça aussi l'expertise, c'est connaître les limites de son savoir à un instant donné !

Conclusion

ChatGPT peut être un outil précieux pour les développeurs C# s'il est utilisé avec discernement. Il ne faut pas craindre cette technologie, mais plutôt l'adopter comme un complément à l'expertise humaine, en gardant à l'esprit ses limites et en restant vigilant sur les aspects éthiques et les implications pour notre métier.

Je reviendrai plus tard sur la façon de bien utiliser ChatGPT pour développer, ce n'était pas le sujet du jour. Allons-y pas à pas !

Stay Tuned !

Faites des heureux, partagez l'article !
blog comments powered by Disqus