Le but de cet article est de vous partager mon expérience de ce service, comment en tant que développeur je l’ai perçu et ce qu’il m’apporte. Je ne vais pas m’attarder sur les éléments profondément techniques de l'implémentation du dit service.
Github Copilot est la création de la société du même nom visant à améliorer le quotidien des développeurs. Le but ? Fournir un compagnon de code pour accélérer les développements. Tout comme le ferait un co-programmeur en pair programming, Github Copilot, va suggérer plusieurs manières de coder un segment de code.
Pour être capable de guider les développeurs, Github Copilot se base sur du machine learning, apprenant des répertoires de la plateforme github elle-même. Ainsi il se perfectionne et devient de plus en plus cohérent dans ses suggestions notamment grâce aux feedbacks que nous remontons sur la qualité de la suggestion. Que ce soit du Javascript ou du Python, le service permet de reçevoir des suggestions peu importe le langage de programmation.
Durant mon utilisation, j’ai souvent eu des suggestions pertinentes avant même d’avoir tapé plus de 1 ou 2 caractères.
Github Copilot, durant mon utilisation, m'a fait gagner pas mal de temps sur le prototypage et le boilerplate. Des éléments souvent fastidieux à réécrire pour définir une classe ou importer des services. Il m’a permis de me concentrer sur la partie créative de mon travail et de développer plus rapidement mes idées. Je ne vous cache pas que le confort qu’il apporte quelque soit l’IDE utilisé a eu impact positif sur mon moral de développeur.
Dans mon cas et dans le cadre de cette expérimentation, j’ai développé une petite app de listing en Javascript (utilisant le framework React Native de la société Meta).
La technologie étant assez jeune (encore en bêta à l’heure ou j’écris ces lignes), il en va de soit qu’elle n’est pas parfaite. En effet le service souffre de suggestion parfois maladroite, de manque d’apprentissage basé sur “notre” code et de problèmes de cohérence.
En effet, si il est simple de construire un boilerplate pour accélérer le développement, il en est autre chose de la suggestion pure durant les phases d’écriture de code un peu plus complexe. Le service ne prend en compte que le code du fichier en cours d’édition et non celui de l’application entière pour nous faire ses suggestions. Cela pose les problèmes suivant:
J’aimerais évoquer avec vous également un problème d’une autre nature, la dépendance. Oui Github Copilot peut amener le développeur à se reposer trop (?) sur lui, créant une diminution de la productivité aussitôt le service arrêté. Cela n’ira pas en s’améliorant car Github Copilot avec les futures mise-à-jour sera encore plus performant en prenant en compte désormais notre code à l’échelle de l’application.
Tout ceci peut résulter à une perte de compétence sur le long terme du développeur. Son utilisation n’est pour moi pas un problème tant que l’on garde le contrôle et que ce ne soit pas le service qui nous contrôle.
De mon expérience personnelle suite à ces tests, je dirais que non. Le service est clairement très jeune et pas encore adapté à une utilisation pleine sur des sujets importants destinés aux clients. Le manque de visibilité sur l’avenir de la technologie peut également être inquiétant tant qu'on n'a pas encore posé de contours dessus.
Moins connu, Tabnine ou Kite plus respectueux de la propriété intellectuelle et de la vie privée, sont de bonnes alternatives à Github Copilot. Le serveur de scan et de suggestion du code se lance en local et cela évite de remonter notre code sur les serveurs distants de ces sociétés.
Ces solutions sont néanmoins encore jeunes, il est donc bon de prendre en compte ce fait avant de se lancer corps et âme avec votre partenaire de pair programming virtuel.
Au-delà de ce qu’il apporte, c’est surtout l’avenir et l’espoir qu’offre une telle technologie qui font réfléchir sur la programmation de demain. Nous sommes aujourd’hui aux commandes et programmons nos applications à la main, mais en sera-il toujours le cas dans 10, 20 ans ? C’est tous ces sujets qu’une telle technologie soulève.
Je reste néanmoins fasciné par la prouesse technologique de ce service et son avenir dépendra de ce que nous développeurs en feront !
Github Copilot est la création de la société du même nom visant à améliorer le quotidien des développeurs. Le but ? Fournir un compagnon de code pour accélérer les développements. Tout comme le ferait un co-programmeur en pair programming (def), Github Copilot, va suggérer plusieurs manières de coder un segment de code.
Pour être capable de guider les développeurs, Github Copilot se base sur du machine learning et de l’intelligence artificielle, apprenant des repositories de la plateforme github elle-même. Ainsi il se perfectionne et devient de plus en plus cohérent dans ses suggestions notamment grâce aux feedbacks que nous remontons sur la qualité de la suggestion. Que ce soit du Javascript ou du Python, le service permet de reçevoir des suggestions peu importe le langage de programmation.
Durant mon utilisation, j’ai souvent eu des suggestions pertinentes avant même d’avoir tapé plus de 1 ou 2 caractères.
Github Copilot, durant mon utilisation, m'a fait gagner pas mal de temps sur le prototypage et le boilerplate. Des éléments souvent fastidieux à réécrire pour définir une classe ou importer des services. Il m’a permis de me concentrer sur la partie créative de mon travail et de développer plus rapidement mes idées. Je ne vous cache pas que le confort qu’il apporte quelque soit l’IDE utilisé a eu impact positif sur mon moral de développeur.
Dans mon cas et dans le cadre de cette expérimentation, j’ai développé une petite app de listing en Javascript (utilisant le framework React Native de la société Meta).
Dépendance et techno trop jeune. Usage limité et erreur car ne se base pas sur notre style de programmation.
La technologie étant assez jeune (encore en bêta à l’heure ou j’écris ces lignes), il en va de soit qu’elle n’est pas parfaite. En effet le service souffre de suggestion parfois maladroite, de manque d’apprentissage basé sur “notre” code et de problèmes de cohérence.
En effet, si il est simple de construire un boilerplate pour accélérer le développement, il en est autre chose de la suggestion pure durant les phases d’écriture de code un peu plus complexe. Le service ne prend en compte que le code du fichier en cours d’édition et non celui de l’application entière pour nous faire ses suggestions. Cela pose les problèmes suivant:
J’aimerais évoquer avec vous également un problème d’une autre nature: la dépendance. Oui Github Copilot peut amener le développeur à se reposer trop (?) sur lui, créant une diminution de la productivité aussitôt le service arrêté. Cela n’ira pas en s’améliorant car Github Copilot avec les futures mise-à-jour sera encore plus performant en prenant en compte désormais notre code à l’échelle de l’application.
Tout ceci peut résulter à une perte de compétence sur le long terme du développeur. Son utilisation n’est pour moi pas un problème tant que l’on garde le contrôle et que ce ne soit pas le service qui nous contrôle.
De mon expérience personnelle suite à ces tests, je dirais que non. Le service est clairement très jeune et pas encore adapté à une utilisation pleine sur des sujets importants destinés aux clients. Le manque de visibilité sur l’avenir de la technologie peut également être inquiétant tant qu'on n'a pas encore posé de contours dessus.
Moins connu, Tabnine ou Kite plus respectueux de la propriété intellectuelle et de la vie privée, sont de bonnes alternatives à Github Copilot. Le serveur de scan et de suggestion du code se lance en local et cela évite de remonter notre code sur les serveurs distant de ces sociétés.
Ces solutions sont néanmoins encore jeunes, il est donc bon de prendre en compte ce fait avant de se lancer corps et âme avec votre partenaire de pair programming virtuel.
Au-delà de ce qu’il apporte, c’est surtout l’avenir et l’espoir qu’offre une telle technologie qui font réfléchir sur la programmation de demain. Nous sommes aujourd’hui aux commandes et programmons nos applications à la main, mais en sera-il toujours le cas dans 10, 20 ans ? C’est tous ces sujets qu’une telle technologie soulève.
Je reste néanmoins fasciné par la prouesse technologique de ce service et son avenir dépendra de ce que nous développeurs en feront !