GitHub propose un Copilot alimenté par le machine learning

GitHub propose un Copilot alimenté par le machine learning

GitHub propose un Copilot alimenté par le machine learning

La fonction est exactement ce qu’elle laisse supposer : une aide à l’écriture de code. 

C’est le résultat d’un partenariat avec OpenAI et sa technologie Codex, pour aboutir à un modèle jugé bien meilleur que GPT-3, car basé sur un échantillon beaucoup plus important de code (des milliards de lignes venant des dépôts publics). Copilot est présenté comme ayant une idée précise de la manière dont les développeurs travaillent.

Il se présente donc comme un assistant. Il suggère du code pendant l’écriture, le développeur pouvant passer en revue les propositions. Elles peuvent être librement acceptées ou refusées, la fonction étant de toute façon désactivable.

Le potentiel est important. Copilot n’a pas pour but de remplacer les développeurs, mais de les aider en proposant du code après analyse du projet, de la fonction en cours d’écriture et des quelques dernières lignes pour obtenir un contexte. 

Dans le cas d’un travail avec un framework non encore maîtrisé, Copilot en connaît déjà les spécificités et fera des suggestions adaptées. Même quand on commence à travailler avec un nouveau langage. La technologie s’adapte avec le temps, selon les propositions acceptées. Elle fonctionne pour l’instant avec Python, JavaScript, TypeScript, Ruby et Go.

Copilot est pour l’instant disponible en préversion, avec un nombre de place limité. Il s’installe au travers d’une extension dans Visual Studio Code ou s’utilise depuis GitHub Codespace. Le billet de présentation fournit de bons exemples du potentiel via plusieurs gif animés.

Commentaires (10)



Le potentiel est important. Copilot n’a pas pour but de remplacer les développeurs, mais de les aider en proposant du code après analyse du projet.




Tous les trucs de ce genre finissent par servir de métrique qualité, avec obligation pour le dev d’expliquer pourquoi il n’a pas suivi les recommandations. Avec donc l’effet pervers pour le dev de toujours suivre les recommandations pour ne pas avoir à se justifier.



Bref c’est du codage par consensus…


C’est pas nouveau, hein, ESLINT fait ça très bien aussi quand ta boîte a choisi un rule-set à la con parce que c’est le premier qui apparaît dans Google… Perso, celle qui m’horripile le plus:



if (valeur < limiteBasse || limiteHaute < valeur)



Ah non, quand on compare une variable (valeur) avec une constante (limiteHaute) alors la constante doit toujours être en deuxième position dans une comparaison… Il faut absolument mixer une comparaison < et une comparaison >


Le taf de OpenAI est impressionnant mais on est pour l’instant loin d’avoir eu des produits aboutis au point d’être utilisable IRL.
A voir si Copilot fait mieux que les produits “géniaux” qu’on nous a présenté jusqu’alors ou si c’était uniquement des paillettes pour StartupNation ;)



(reply:1883270:33A20158-2813-4F0D-9D4A-FD05E2C42E48)




Et pendant ce temps là en python, on peut écrire “if limiteBasse < valeur < limiteHaute : …”


Je crois qu’on peut écrire ça en C aussi. Mais évidemment ça ne fait absolument pas la même chose :D


L’idéal c’est pouvoir écrire valeur in [ bas ... haut ] ou valeur not in [ bas ... haut [ comme en notation mathématique. Voire même remplacer in par le symbole mathématique ∊ d’appartenance. Je crois que Eiffel permet une telle notation (je sais qu’on peut en tout cas utiliser les symboles math ∃ et ∀ pour écrire des conditions sur des collections).


Et dire qu’il y a 30 ans, on avait besoin que de connaître le shell, un langage et une base de données pour être un bon développeur, plus VB, Nsdk ou Developper 2000 pour l’IHM :phiphi: Maintenant, ce sont des dizaines de framework, des découpages en plein de couches, tenus plus ou moins bien ensemble.


Hmmmm.. déjà VB il y a 30 ans ? Perso c’était en mode texte 25x80, C pour le code et Vermont Views pour le fenêtrage (en mode texte, avec les caractères semi-graphiques pour les bords). La base de donnée c’était un “ISAM” intégré (le SQLite de l’époque, mais sans le SQL, plutôt des requêtes genre DBASE) Moi aussi :phibee: :phibee: :phibee:



Microsoft/Github: releases an AI that can parse your code and suggest functions for you.
Python/JS devs: Oh no! AI’s are going to replace us!
Me: laughs in Perl




Vu sur Fosotodon.



(reply:1883485:33A20158-2813-4F0D-9D4A-FD05E2C42E48)




Personnellement, l’utilisation de norme mathématique dans un langage de programmation, je ne suis pas fan. Julia le fait pas mal, du coup, on se retrouve avec des caractère non ASCII (genre ÷, ⊻, ≠, ≤, ≥, √, ∛…) et des commande qui frôlent l’ambigüité en se mélangeant à des syntaxes plus informatique.



(j’ai essayé de me mettre à Julia, déjà qu’un tableau commence à l’index 1, ça m’a rebuté, nop.)


Fermer