Pourquoi les programmeurs devraient craindre GitHub Copilot

Feb 19 2023
Et d'autres outils de codage pilotés par transformateur
Pour ceux qui ne le savent pas, GitHub Copilot est un outil d'auto-complétion de code alimenté par l'IA développé par OpenAI en collaboration avec GitHub et Microsoft. Il est construit sur GPT.

Pour ceux qui ne le savent pas, GitHub Copilot est un outil d'auto-complétion de code alimenté par l'IA développé par OpenAI en collaboration avec GitHub et Microsoft . Il est construit sur GPT. Il prend en charge une large gamme de langages de programmation, notamment Python et JavaScript.

Cet article n'est pas basé sur une vaste enquête auprès de milliers de programmeurs. Il est basé précisément sur l'expérience d'un programmeur, c'est-à-dire moi. Alors, considérez mes conclusions non pas comme des prédictions confiantes et quantitatives, mais plutôt comme des avertissements manuels et qualitatifs. J'espère qu'une grande partie de ce que je vais dire ne se produira pas.

Deux types de programmation

Quand j'écris du code, je fais deux types de choses : que j'appellerai des choses « artistiques », et des choses « ennuyeuses ». Ou Type-A et Type-B.

  • Le codage de type A implique la création de nouvelles choses ou de nouvelles façons de faire d'anciennes choses. J'utilise le mot « artistique » parce qu'ils impliquent naturellement la créativité.
  • Les choses de type B impliquent des tâches mécaniques, qui ne sont pas très intéressantes, mais doivent être faites. Par exemple, écrire des tests unitaires peut être un peu mécanique. Vous connaissez les entrées et les sorties et vous devez vous assurer que chaque chemin de traitement est couvert.

Comment je travaille avec Copilot

Mon expérience de travail avec Copilot jusqu'à présent, a suivi le schéma suivant :

While Programming Tasks is not complete:
    Nuwan codes some Type-A stuff.
    Copilot “completes” the related Type-B stuff.
    Nuwan checks what Copilot completed.

Avant Copilot, je passais environ 80 % de mon temps de codage sur des tâches de type B, les 20 % restants étant de type A. Le 100 % décrit ici correspond strictement au « temps de codage » ; pas de « temps de conception » ou de « temps de réflexion ». Donc, techniquement, le temps total pour le Type-A est beaucoup plus.

Maintenant, cela signifie que le temps nécessaire pour coder a été réduit de 80 %. Ou alternativement, en même temps, je fais 5 fois plus de choses.

Pourquoi les programmeurs doivent craindre

Presque tous les programmeurs peuvent effectuer des tâches de type A et de type B. Mais il y a beaucoup de variance ou combien et comment bien.

Par exemple, considérons une organisation extrême qui compte cinq programmeurs. L'un effectue uniquement des travaux de type A, tandis que les quatre autres effectuent uniquement des travaux de type B. Maintenant, comment Copilot affecterait-il une telle organisation ? Le premier programmeur serait capable de faire ce qu'il faisait comme avant, car Copilot ne peut pas faire ce qu'il fait. Mais les quatre autres seraient remplacés par Copilot.

Comme je l'ai dit, c'est un cas extrême, mais toutes les organisations auront une version de ce qui précède.

Conclusions et avancées

  1. La plupart du travail de codage est maintenant de type B. En conséquence, la plupart des programmeurs passent la majeure partie de leur temps sur des travaux de type B ; peut-être de manière disproportionnée plus, car les programmeurs de type B sont moins chers et plus abondants. Ce travail va passer à Copilot. Donc, si nous sommes un programmeur de type B , nous devons vraiment nous assurer que nous passons plus de temps à faire du travail de type A, et si nous ne savons pas comment, nous devons essayer d'apprendre.
  2. Alors que la productivité globale augmentera de manière significative, les gains se feront sentir de manière extrêmement inégale. Les entreprises produisant une propriété intellectuelle (PI) de grande valeur verront les gains les plus importants. Les entreprises faisant du développement de type BPO (déjà en déclin) seront complètement anéanties. Si nous tombons dans cette dernière catégorie , nous devons changer de vitesse très rapidement.
  3. Si nous sommes une organisation , nous devrions essayer d'embaucher plus de personnes de type A. Il y en a déjà une pénurie, et bientôt, la pénurie ne fera que s'aggraver.
  4. Nous devons trouver des moyens de créer plus de programmeurs de type A. Les programmes diplômants produisant des informaticiens et d'autres filières d'approvisionnement nécessiteront des réformes importantes. Malheureusement, cela ne peut pas se faire du jour au lendemain, et toute réforme prendra au moins 2 à 4 ans pour commencer à porter ses fruits, et beaucoup plus longtemps pour atteindre son plein potentiel.
  5. À court terme, il va y avoir un jeu à somme nulle , où une demande croissante chassera une offre limitée de programmeurs de type A. Le pire des cas est une sorte de course à l'embauche.
  6. Une peinture à l'huile de Salvador Dali intitulée "Pourquoi les programmeurs devraient craindre l'IA" - par DALL.E 2