> For the complete documentation index, see [llms.txt](https://weekly-essay.mikey.wang/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://weekly-essay.mikey.wang/fr/2023/w11-pragmatism-what-gpt-can-and-cannot-do-on-its-impact-on-software-development.md).

# W11-Pragmatisme : ce que GPT peut et ne peut pas faire pour le logiciel

### Une position pragmatique <a href="#a1fb1ea1-fa48-44d0-bb65-5ec80413109a" id="a1fb1ea1-fa48-44d0-bb65-5ec80413109a"></a>

**Je préfère soutenir les pragmatiques qui privilégient l'action.**

Regardons la réalité et réfléchissons à l'évolution de l'effet de GPT sur le développement, plutôt qu'à son éventuel remplacement de l'humanité. Tourner autour des questions ultimes reste souvent creux. Le pessimisme qui conduit à abandonner et l'optimisme qui permet d'ignorer sont deux formes de paresse. L'apparition et la diffusion de l'ordinateur ont fait époque ; elles ont créé bien plus qu'elles n'ont remplacé. Regardons surtout les effets concrets des changements structurels des facteurs de production. Le calcul mental et la calligraphie appris dans l'enfance par les générations des années 1980 et 1990 ne sont plus des priorités d'entraînement imposées par les parents d'aujourd'hui.

### Ce que Copilot permet d'observer <a href="#ce593370-e50e-4f6b-b33f-14d7e22a2eac" id="ce593370-e50e-4f6b-b33f-14d7e22a2eac"></a>

Les extensions IDE comme GitHub Copilot et Tabnine donnent une idée des forces et limites de GPT.

**Ses points forts**

* Libérer du travail répétitif et ennuyeux : scripts ponctuels, CRUD, tests unitaires.
* Apprendre et explorer de nouveaux domaines : démarrer vite avec un langage, un framework ou une bibliothèque.
* Exploiter les avantages de la machine : expressions régulières, SQL, CronJob.

**Ses limites**

* La sécurité. L'entreprise l'a déjà interdit en interne.
* Le droit d'auteur. Les extraits inférés par Copilot provenant de projets open source de GitHub, les licences et la propriété intellectuelle entrent en jeu.
* L'exactitude. Les mauvaises réponses de GPT paraissent plus crédibles que celles d'un moteur de recherche. GPT tend à produire des réponses plausibles plutôt que correctes.

### Les effets sur le développement logiciel <a href="#fe7a1851-1071-4294-9dd3-9490d96308a6" id="fe7a1851-1071-4294-9dd3-9490d96308a6"></a>

**Programmation**

* Les compétences et les modes d'apprentissage doivent progresser. Il faut approfondir les bases informatiques, comme la compilation. Les structures de données, les algorithmes et l'appel des API de frameworks ou de bibliothèques sont devenus faciles d'accès. Les répéter jusqu'à les maîtriser ne constitue plus nécessairement un avantage.
* Il faut accumuler davantage de connaissances métier, mieux comprendre l'activité et développer sa créativité technique. L'essentiel du développement applicatif pourrait ne plus être d'écrire le code, mais d'entraîner, avec l'IA, des modèles qui reflètent les particularités du domaine.

**Architecture**

* L'architecte relie le métier et la technique. Son rôle central est de comprendre les besoins, juger la complexité qu'ils imposent au système, concevoir des options pour la traiter ou la réduire, puis arbitrer selon la situation.
* Les différences entre besoins métier ne peuvent pas être entraînées. Des départements ou des équipes qui construisent le même produit font émerger des besoins différents.
* Les jugements de conception ne se standardisent pas. L'architecte arbitre selon les attentes des parties prenantes, la trajectoire technique de l'équipe et l'évolution de l'activité. Ces choix ne peuvent être ni standardisés ni entraînés.
* La technologie évolue continuellement ; l'architecture exige de l'innovation. ChatGPT peut-il créer la génération suivante qui le révolutionnera ? Pour l'instant, je pense que non.
