Faute de solution d’Apple, une app intègre GitHub CoPilot et ChatGPT dans Xcode

Nicolas Furno |

Copilot for Xcode intègre les intelligences que l’on dit artificielles directement dans Xcode, l’environnement de développement fourni par Apple. Cet utilitaire gratuit et open-source permet d’utiliser ChatGPT et surtout GitHub CoPilot, une IA développée par le service destiné aux développeurs de Microsoft et qui se spécialise dans l’écriture de code source. Ce qui tombe bien, c’est l’essentiel de ce que l’on fait dans Xcode.

Discuter avec ChatGPT, demander des lignes de code toutes prêtes ou des suggestions pour améliorer l’existant, les trois grandes fonctions de Copilot for Xcode.

Concrètement, l’app propose trois fonctionnalités principales, dont un système de discussion avec ChatGPT. C’est la moins originale, alors commençons par cela : Copilot for Xcode peut afficher à tout moment une fenêtre qui permet de poser une question ou de formuler une demande, en matière de développement ou pas, et ChatGPT répondra. L’utilisateur peut ensuite discuter, comme il le ferait directement sur le site d’OpenAI, ou via l’une des multiples intégrations de l’IA, dont le nouveau Bing de Microsoft.

Les deux autres sont plus directement intégrées à Xcode. Les suggestions de code sont fournies par GitHub Copilot : dès que vous ouvrez un fichier dans l’environnement de développement d’Apple, l’app analyse le code source et fait des suggestions qui sont présentées sous la forme d’un commentaire, sous la ligne en cours. Ces commentaires s’afficheront après quelques millisecondes d’inactivité et ils tiennent compte de ce que vous saisissez, si bien que les idées de l’IA peuvent vous permettre d’avancer plus rapidement en ne tapant que quelques caractères pour obtenir des blocs de code entiers.

Les suggestions fournies par GitHub Copilot en action.

Enfin, Copilot for Xcode peut servir à créer des blocs de code entier à partir d’une demande exprimée en langage naturel. Cette troisième fonctionnalité est associée à ChatGPT à nouveau qui, parmi ses nombreuses capacités, peut en effet coder, les langages de développement n’étant de son point de vue pas différents des langages humains.

Copilot for Xcode est un utilitaire gratuit, mais il dépend de services payants. C’est pourquoi, vous ne pourrez pas l’utiliser sans saisir une clé d’API fournie par OpenAI pour utiliser ChatGPT et sans vous connecter avec votre compte GitHub pour accéder à son copilote. Les instructions pour l’installation détaillent ce qu’il faut faire, sachant qu’il faut également accorder plusieurs autorisations au niveau du système pour que l’app fonctionne correctement. Il faut souligner que Xcode n’est pas pensé pour permettre à des tiers d’injecter des fonctionnalités de la sorte, si bien que cet utilitaire repose sur des méthodes pas toujours très propres, de l’aveu de son concepteur, pour accéder aux fichiers gérés par l’outil d’Apple.

Cela étant, c’est sans doute une bonne preuve de l’intérêt d’intégrer au cœur de Xcode ces nouveaux outils. GitHub Copilot a trouvé sa place au quotidien dans les bureaux des développeurs chez MacGeneration, alors même que la fonctionnalité n’est pas optimisée pour les créateurs d’apps iOS. Est-ce qu’Apple ira sur ce terrain cette année en présentant sa propre version, mais que l’on pourrait imaginer intégrée au cœur de Xcode et fonctionnant en local pour un meilleur respect de la vie privée ? Le blogueur John Gruber considère que ce serait une erreur de ne pas proposer une fonction similaire dès cette année, car de plus en plus de développeurs comptent dessus et n’envisagent plus de faire sans.

En attendant mieux, Copilot for Xcode offre une solution qui semble bien intégrée. Notez que le développement de l’utilitaire avance rapidement, mais qu’on n’est pas encore sur une version stable. Vous pouvez suivre les nouveautés de chaque version sur cette page.

avatar flux_capacitor | 

« Les intelligences que l'on dit artificielles »
Ah bon, parce qu'elles seraient naturelles et organiques ?
J'aurais plutôt écrit "les algorithmes artificiels que l'ont qualifie d'intelligences"…

avatar R-APPLE-R | 

@flux_capacitor

Pour moi c’est des intelligences tout court, car comme un enfant qui va l’école pour apprendre les bases, pour après apprendre de lui même, l’intelligence artificielle fait de même

Donc ceux qui dise que comme le papa de Siri qui a écrit un livre la dessus est dépassé et il à tort selon moi.

Il n’y à qu’à voir les IA dédié à la sécurité qui apprennent toutes seules pour se défendre et riposte même toutes seules ! 😈

avatar marc_os | 

@ flux_capacitor

> « Les intelligences que l'on dit artificielles »
> Ah bon

Perso, je dirais plutôt : « ces algorithmes que l'on dit intelligents » car en vérité ils ne sont absolument pas intelligents.

avatar Deckard | 

@flux_capacitor C'est juste dans la culture de de MacG d'écrire des convolutions inutiles.

avatar Cactaceae | 

Va se poser un jour prochain la question de ce qu’est l’intelligence. Pleins d’écrivains et de philosophes certes y ont déjà répondu. Mais jamais comme sujet brûlant de l’actualité.

avatar fleeBubl | 

@Cactaceae

C’est déjà le cas … sans doute de la même façon qu’avec le dérèglement climatique … 😌

avatar Crunch Crunch | 

Un jour va arriver où: ChatGPT (ou une autre IA), va créer un code tellement excellent efficace, que nous serons obligé de passer par ces systèmes. Plus rien ne pourrait être créé "à la main".

Le problème est que nous ne comprenons pas, non plus, pourquoi cela fonctionne si bien et comment débugger le code. Simplement, cela sera hyper efficace dans notre société capitaliste et qui impose toujours d'être meilleurs que son voisin !

Un jour arrivera, ou une IA créera son propre environnement de développement, pour elle-seule. Nous humain, n'y comprendrons rien, mais… encore fois. Cela sera hyper efficace et nous ne pourrons pas aller contre.

Cela sera dans ~5 à 10 ans. Et là… nous aurons perdu…

avatar Baptiste_nv18 | 

@Crunch Crunch

Vivement que ça arrive alors 👀👀

avatar David Finder | 

@Baptiste_nv18

Si ta vision du futur est un mix entre Terminator et Matrix, alors tu vas certainement prendre ton pied !

Sans moi !

avatar David Finder | 

@Crunch Crunch

Ce jour sera alors la fin de l’Humanité (si on ne légifère pas très très vite) et le début de Skynet.

J’espère ne plus être là pour voir ça.

avatar YosraF | 

@Crunch Crunch

Tu vas être étonné 😦 c’est déjà possible.

avatar v1nce29 | 

"Un jour" c'est hier.
Les IA sont déjà capables d'extraire des informations dont on ne sait pas trop bien d'où elles proviennent.
https://news.mit.edu/2022/artificial-intelligence-predicts-patients-race-from-medical-images-0520

avatar marc_os | 

> Faute de solution d’Apple

Pourquoi écrire cela dans le titre, comme si c'était un grave problème ?
En vérité, au contraire, je ne suis pas sûr du tout que laisser un truc coder à la place des gens soit gage de qualité et donc souhaitable. Car ces futurs pseudo développeurs ne feront que vérifier à la louche que le code généré et qu'ils ne comprennent pas est vraiment correct.

avatar kiddsoso | 

@marc_os

Parce qu’Xcode et les plugins c’est pas vraiment ça …..

avatar v1nce29 | 

Vu le manque de devs, les critères d'embauche sont revus à la baisse. Si l'IA remplace le copier/coller depuis stackoverflow au moins on n'aura pas régressé.

avatar joneskind | 

Pour mes confrères développeurs qui utilisent CoPilot, je teste en ce moment CodeWhisper d’Amazon qui est gratuit et plus performant. Il fonctionne de la même manière, en écrivant la fonction à partir de son commentaire, mais avec une codebase beaucoup plus moderne, là où Copilot va encore proposer du code ES5.

Pour ceux qui ne sont pas familiers, ces outils ne servent pas à créer des applications de toute pièce. Ils vont aider le développeur à créer les fonctions de l’application. Ce n’est pas différent que de reposer sur une bibliothèque externe. Simplement on récupère le bout de code dont on a besoin au lieu d’un package complet.

Une app c’est des centaines de fonctions, un système d’information, des algorigrammes complexes, une architecture globale aux ramifications multiples.

Pour le dire plus simplement, l’IA est actuellement à la production informatique ce que la grue est à l’architecte. Ça accélère et simplifie le travail mais en soi ça ne résout rien.

avatar YosraF | 

@joneskind

Toi aussi tu vas être étonné 😮

avatar joneskind | 

@YosraF

Je serai étonné le jour où une IA me sortira une infra complète avec le matériel, le système d’information, les bases de données, la technologie pour les manipuler, les technologies pour les maintenir, pour les analyser, pour les lire, pour les afficher, pour gérer les droits, pour gérer l’administration, pour mettre en place les processus de déploiement, les batchs…

En attendant GPT 4 ne sait pas faire une simple application Horloge en Swit...

Tu peux lui demander un truc, il va te répondre. Mais rien ne marchera ou presque. Et ce qui marchera ne sera pas pensé pour l’ensemble.

Aujourd’hui ChatGPT est capable de te sortir du code Vue et du React dans le même prompt… donc on est très très loin de pouvoir remplacer les développeurs.

Tu me fais penser à moi il y a quelques années, persuadé qu’en 2020 plus personne ne passerait le permis parce que je croyais dur comme fer au pipeau de Musk Google et consorts… ça fait 10 ans qu’on l’attend la conduite autonome et toujours rien à l’horizon à part les mêmes promesses chaque année.

Pour l’instant on a que la conduite assistée. Un Copilot quoi…

avatar YosraF | 

@joneskind

Marrant. Tu penses que j’ai quel âge ?
Le vrai souci des voitures c’est que tu risques la vie des gens. Personne ne va mourrir en créant une app et ça change vraiment tout…
Tu manques de prises de recul car tu t’es limité à chatGPT et au prompt d’un bot… tu sous estimes vraiment les possibilités

avatar joneskind | 

@YosraF

J’en n’ai rien à faire de ton âge, et je voudrais bien savoir ce qui te fait croire que je me suis limité à ChatGPT.

J’ai parlé de CoPilot et CodeWhisper. Dans d’autres post j’ai parlé de Dolly et Stability AI.

Ce que je dis c’est que ces IA ne sont pas prêtes de remplacer l’humain. C’est de bons assistants, mais bien incapables de produire un projet complet.

Et si j’ai parlé de la conduite autonome c’est simplement parce que c’est historiquement un excellent exemple de ce qu’on croyait possible compte tenu des capacités malgré tout époustouflantes des assistants VS la complexité réelle d’une conduite totalement autonome.

Aujourd’hui on peut avoir l’impression qu’il va suffire de quelques ajustements par ci par là pour corriger les erreurs de LLMA alors qu’en réalité c’est maintenant que les réelles difficultés commencent.

Même avec un corpus de vérités absolues les LLMA se trompent, parce qu’elles assemblent les mots sans les comprendre.

Je comprends bien ton enthousiasme, mais d’expérience je demande à voir.

avatar YosraF | 

@joneskind

Pourquoi tu réagis de la sorte ? Tu te sens vexé ?

Tu me parles des limites de ChatGPT pas de copilot… même si t’en parles ailleurs je ne te Stalk pas.

Enfin, tout ce que tu crois impossible, c’est déjà or et bien possible.

avatar Robin | 

@joneskind

Pas encore testé CodeWhisper, mais c'est vrai que CoPilot a des comportements assez aléatoires. Des fois ce sont des vieilleries dignes d'ES4, et d'autres fois il va sortir un truc ultra pertinent auquel on aurait pas forcément pensé.

avatar YosraF | 

@Robin

Copilot est basé sur gpt ou codex d’openAI et le modèle est entraîné jusque 2021.

avatar joneskind | 

@YosraF

Il est peut-être entraîné jusque 2021 mais il continue de sortir des vieilleries des années 2000.

ES6 c’est 2015. Plus personne ne devrait utiliser de var ou de ; sauf peut-être dans le cadre précis d’une codebase très vieille. Mais même dans ce cas là il vaut mieux partir sur du code moderne et passer par Babel + Polyfill pour éviter la dette technique.

avatar YosraF | 

@joneskind

Car il est entraîné également sur ces données et personne ne lui a dit que ces données étaient meilleurs qu’un autre. Il suffit de reentrainer le modèle afin qu’il soit meilleur dans ce domaine. OpenAI ou d’autres via Llama s’en chargeront

avatar joneskind | 

@YosraF

Je parle de CoPilot

CodeWhisper est déjà entraîné sur des données plus récentes.

CONNEXION UTILISATEUR