Topics

Essayez Jules, l'agent de codage de Google

  • column

« Avec l'IA qui écrit du code, est-ce que nos métiers vont disparaître ? » Cette blague ne fait plus vraiment rire ces temps-ci. GitHub Copilot, CodeX et d'autres outils écrivent déjà du code, mais Jules, le nouvel outil de Google, semble être d'un tout autre niveau.

Jules s'appuie sur Gemini 2.0, la dernière IA de Google, et sa principale caractéristique est son caractère autonome !

Il se pourrait bien que ce soit bientôt l'outil qui fasse tout à notre place. Nous avons donc voulu tester ce qu'il sait faire, et nous sommes très enthousiastes !

Ce que Jules peut faire

Jules est un agent d'IA capable d'exécuter des tâches de codage de manière autonome. Au-delà de la simple génération de code, il permet des automatisations avancées, notamment :

  • Décomposition des tâches complexes et planification : découpe une tâche en étapes plus petites et établit un plan d'implémentation.
  • Génération et modification de code : génère du code à travers plusieurs fichiers sources et modifie le code existant.
  • Correction de bugs et débogage : identifie les bugs du code et les corrige.
  • Création et exécution de tests : exécute les tests existants, en crée de nouveaux et vérifie que les modifications fonctionnent correctement.
  • Récupération du dépôt et clonage : le code est récupéré depuis un dépôt GitHub ou similaire, puis cloné sur une machine virtuelle pour y poursuivre le travail.
  • Création d'une pull request : une fois les modifications du code terminées, celles-ci sont proposées sous la forme d'une pull request.
  • Travail asynchrone : pendant que l'utilisateur effectue d'autres tâches, les travaux de codage peuvent progresser en arrière-plan.
  • Résumé audio (CodeCast) : création d'un résumé audio de l'activité récente sur le code.

Quelles sont les différences avec « Codex », la nouvelle fonctionnalité de ChatGPT ?

Qu'est-ce que Codex ?

Codex repose sur « codex-1 », un grand modèle de langage dédié développé par OpenAI. Il s'agit du modèle le plus récent, « o3 », optimisé pour le développement logiciel : c'est un modèle intelligent qui intègre le style de codage et l'expertise de développeurs seniors expérimentés.

Fonctionnalités

  • Complétion, suggestions et génération de code (en temps réel)
  • Génération de code à partir de commentaires
  • Suggestions de fonctions et de méthodes pour le code existant
  • Points forts dans la modification et l'extension des bases de code existantes

Codex et Copilot sont principalement des outils d'« aide à la saisie » qui vous assistent en temps réel lors de l'écriture ou de la modification du code existant. Ils jouent le rôle d'un assistant de programmation en binôme (un outil d'aide au codage).

En revanche, Jules agit en tant que « développeur délégué » : sa principale différence réside dans sa capacité à exécuter de manière autonome un éventail plus large de tâches, du lancement d'un projet à sa finalisation. Jules pourrait ainsi être capable de participer à la construction initiale d'un nouveau projet à partir de zéro, ce qui signifie qu'il se concentre davantage sur l'automatisation des tâches de développement.

  • Création possible de nouveaux projets : selon les instructions données (par exemple, « crée une application web de base »), Jules est capable de créer les fichiers et la structure de répertoires nécessaires à partir de zéro et de générer le code.
  • Intégration approfondie avec les dépôts GitHub : Jules clone le dépôt GitHub spécifié par l'utilisateur dans un environnement virtuel et y travaille. Il ne se limite donc pas à la modification d'un seul fichier : il peut effectuer des modifications structurelles sur l'ensemble du dépôt, ajouter de nouveaux fichiers ou supprimer des fichiers existants, et ainsi gérer l'ensemble du projet.
  • Travail autonome : de la configuration initiale du projet à la création de fichiers, la génération de code, l'exécution des tests et la création de pull requests, Jules mène l'ensemble du processus de manière autonome.

Jules est plus autonome et peut se voir confier l'ensemble d'une tâche de développement : il joue un rôle comparable à celui d'un « programmeur délégué » !

Essayé en pratique !

Comment utiliser Jules

Jules vous donne ses instructions principalement via une interface de type chat.

1. Accéder à Jules : vous pouvez y accéder depuis jules.google.com.

2. Connecter un dépôt GitHub : sélectionnez le dépôt GitHub et la branche sur lesquels vous souhaitez travailler. Pour ce test, nous avons préparé le dépôt « jules-test ».

3. Instruction via le prompt : le français fonctionne aussi très bien ! Pour cet exemple, nous allons implémenter une horloge en JS.

4. Validation du plan d'implémentation : Jules présente d'abord un plan d'implémentation. L'utilisateur le examine puis le valide. C'est très clair, car Jules établit un processus de travail étape par étape !

5. Exécution du code et suivi de l'avancement : une fois le plan validé, Jules commence automatiquement le codage et rend compte de la progression.
Cela prend un peu de temps, mais les fichiers index.html, script.js et style.css ont bien été générés !

6. Revue et validation des modifications : une fois les modifications terminées, Jules crée une pull request accompagnée des différences (diff). L'utilisateur l'examine et la valide, puis les modifications sont intégrées au dépôt.

Vous trouvez parfois difficile de rédiger les messages de commit ? Jules les rédige pour vous, en les résumant automatiquement !

Un clic sur « publish branch » en bas à droite envoie les modifications vers la branche tokyo-clock.

Une fois la branche récupérée (pull), les fichiers apparaissent dans l'éditeur !

Voici à quoi ressemble l'aperçu dans le navigateur !

Avec les fonctionnalités d'IA précédentes, lorsqu'on saisissait une consigne du type « implémente une horloge en JavaScript », l'outil se contentait en général d'expliquer les étapes d'implémentation ou de donner le code. Celui-ci, en revanche, prend en charge l'ensemble du processus, de la création des fichiers jusqu'à l'intégration avec git !

Pour une implémentation simple comme celle-ci, on peut sans doute tout lui déléguer sans problème. En revanche, je me demande jusqu'à quelle envergure il est vraiment raisonnable de lui confier une implémentation...

Je lui demande maintenant d'ajouter une demande supplémentaire : « rendre la décoration plus élégante ».

Il m'a proposé plusieurs options, mais je m'en remets à lui.

Il a remplacé l'arrière-plan par un dégradé !

Il suffit de créer un dépôt pour qu'il génère les fichiers depuis zéro, code, puis pousse le tout sur git. Un véritable programmeur par procuration !

Cependant, il est actuellement proposé en version bêta et son utilisation est limitée (par exemple à 5 tâches par jour).

Par ailleurs, la création des fichiers et l'implémentation du programme prennent un certain temps, et le champ de saisie a parfois bogué, ce qui a empêché certaines modifications d'être prises en compte.

Enfin, si Jules rencontre une erreur, le travail effectué jusqu'à ce moment-là n'est pas validé (commit). Il arrive donc que les modifications partielles dont on aurait besoin ne soient pas appliquées.

Nous avons demandé à ce que l'horloge JavaScript soit convertie en Next.js. La conversion a été réalisée avec succès et l'environnement de développement a bien été mis en place, mais à cause d'une erreur survenue en cours de route, je n'ai finalement pas pu récupérer les fichiers Next.js en local... Si cet outil est pratique, il comporte aussi quelques inconvénients non négligeables.

Conclusion

Si Jules continue de gagner en intelligence, on pourra peut-être confier les tâches répétitives et fastidieuses à Jules et consacrer largement plus de temps à l'apprentissage de nouvelles technologies, ainsi qu'à nos loisirs !

Jules pourrait bien devenir le partenaire idéal des développeurs et transformer radicalement les pratiques du développement !

Image : site web de Jules

Auteur de cet article

Je travaille sur le développement frontend, principalement en balisage, avec JavaScript, React et Next.js. Je suis ravi lorsque les sites auxquels j'ai contribué sont mis en ligne avec succès ! Passionné de guitare, j'aime aussi les chats et les patates douces grillées 🐱🍠

Hiratchi

Ingénieur frontend / Entré en 2022

Voir les articles de cet auteur

Une équipe fiable et une réactivité rapide, qui font notre fierté

Chez Liberogic, nos collaborateurs expérimentés pilotent activement les projets, ce qui vaut à l'entreprise une grande satisfaction de la part de ses clients.
Nous veillons à désigner des chefs de projet et des directeurs de projet qualifiés afin de faire avancer l'ensemble du projet en douceur. Grâce à un modèle d'allocation des ressources au plus juste, évitant une hausse inutile des coûts liée à un engagement à temps plein, nous sommes également reconnus pour la rapidité avec laquelle nous comprenons les besoins et établissons/soumettons les devis.

Remarque : Liberogic ne propose pas de prestations de type SES (mise à disposition de personnel sur site) et vous remercie de bien vouloir en tenir compte.

Nous prenons en charge pratiquement tous les principaux outils de gestion de projet et de messagerie, notamment Slack, Teams, Redmine, Backlog, Asana, Jira, Notion, Google Workspace, Zoom, Webex, etc.

Contactez-nous pour toute question sur vos problématiques Web.

Études de cas