Topics

Probeer Jules, de coderingsagent van Google

  • column

"Gaat AI code schrijven ons werk overnemen?" Die grap is inmiddels geen grap meer. GitHub Copilot en CodeX schrijven al code, maar de Jules die Google nu heeft gelanceerd, lijkt een heel ander niveau te halen.

Gebouwd op Google's nieuwste AI, Gemini 2.0, en het belangrijkste kenmerk van Jules is de autonomie!

Misschien komt de dag dat het werk van ons volledig wordt overgenomen. De verwachtingen zijn hoog! We hebben getest wat het allemaal kan.

Wat Jules kan

Jules is een AI-agent die coderingstaken zelfstandig uitvoert. Het gaat verder dan alleen code genereren en biedt een reeks geavanceerde automatiseringsmogelijkheden, zoals:

  • Complexe taken opsplitsen en plannen: een opgegeven taak wordt opgedeeld in kleine stappen en er wordt een implementatieplan opgesteld.
  • Code genereren en aanpassen: code genereren over meerdere bronbestanden heen en bestaande code aanpassen.
  • Bugs oplossen en debuggen: bugs in code opsporen en verhelpen.
  • Tests maken en uitvoeren: bestaande tests uitvoeren of nieuwe tests maken om te controleren of wijzigingen correct werken.
  • Repository ophalen en klonen: haal code op uit GitHub of andere repositories, kloon deze naar een virtuele machine en ga aan de slag.
  • Pull request aanmaken: zodra de codewijzigingen klaar zijn, dient Codex ze voor als pull request.
  • Asynchroon werken: terwijl jij met andere taken bezig bent, kunnen codeertaken op de achtergrond verder worden uitgevoerd.
  • Audiosamenvatting (CodeCast): maak een audiobestand dat de recente codeeractiviteit samenvat.

Hoe verhoudt zich dit tot de nieuwe ChatGPT-functie "Codex"?

Wat is Codex?

Codex wordt aangedreven door "codex-1", een speciaal groot taalmodel van OpenAI. Dit model is gebaseerd op het nieuwste model "o3" en speciaal geoptimaliseerd voor softwareontwikkeling. Het is een slim model dat de codeerstijl en expertise van ervaren senior engineers heeft overgenomen.

Mogelijkheden

  • Codeaanvulling, suggesties en generatie (realtime)
  • Codegeneratie op basis van opmerkingen
  • Suggesties voor functies en methoden in bestaande code
  • Sterk in het aanpassen en uitbreiden van bestaande codebases

Codex/Copilot fungeert vooral als een "invoerassistent" en helpt in realtime bij het schrijven en aanpassen van bestaande code. Het is in feite een AI-pairprogrammer (een hulpmiddel voor codeerondersteuning).

Jules daarentegen fungeert als een "plaatsvervangende ontwikkelaar" en het grote verschil is dat het zelfstandig een breder scala aan taken kan uitvoeren, van de start tot het einde van een project. Daardoor kan Jules mogelijk ook de initiële opbouw van een nieuw project vanaf nul aan, en ligt de nadruk meer op het "automatiseren van ontwikkeltaken".

  • Ook het aanmaken van nieuwe projecten is mogelijk: afhankelijk van de opdracht van de gebruiker (bijvoorbeeld "maak een eenvoudige webapplicatie") kan Jules de benodigde bestanden en mapstructuur vanaf nul aanmaken en code genereren.
  • Diepe integratie met GitHub-repositories: Jules kloont de GitHub-repository die de gebruiker opgeeft naar een virtuele omgeving en werkt daar. Daardoor blijft het werk niet beperkt tot wijzigingen in een enkel bestand, maar kan Jules het hele project aanpassen, inclusief structurele wijzigingen over de hele repository, het toevoegen van nieuwe bestanden en het verwijderen van bestaande bestanden.
  • Zelfstandig werken: Van het initiële opzetten van het project, het aanmaken van bestanden en het genereren van code tot het uitvoeren van tests en het maken van pull requests, Jules voert het hele proces zelfstandig uit.

Jules is zelfstandiger en kun je de volledige ontwikkeltaak toevertrouwen. Het fungeert als een "plaatsvervangende programmeur"!

Zelf uitgeprobeerd!

Het gebruik van Jules

Je geeft Jules opdrachten voornamelijk via een chatgebaseerde interface.

1. Open Jules: je krijgt toegang via jules.google.com.

2. Verbind een GitHub-repository: selecteer de GitHub-repository en branch waarop je wilt werken. Voor deze proef hebben we de repository "jules-test" klaargezet.

3. Geef je opdracht in de prompt: Nederlands werkt ook prima! Voor deze proef laten we Jules een klok in JS bouwen.

4. Keur het implementatieplan goed: Jules presenteert eerst een implementatieplan. De gebruiker bekijkt dit en keurt het goed. Handig, want zo wordt het werkproces duidelijk opgesteld!

5. Code laten schrijven en voortgang volgen: zodra het plan is goedgekeurd, begint Jules automatisch met coderen en rapporteert de voortgang.
Het duurt wel even, maar de bestanden index.html, script.js en style.css zijn gegenereerd!

6. Wijzigingen controleren en goedkeuren: zodra de wijzigingen klaar zijn, maakt Jules een pull request aan met het verschil (diff) van de wijzigingen. De gebruiker bekijkt dit en keurt het goed, waarna de wijzigingen in de repository worden opgenomen.

Commitberichten schrijven is best lastig, toch? Jules vat het voor je samen!

Klik rechtsonder op "publish branch" om de wijzigingen naar de tokyo-clock-branch te pushen.

Wanneer je de branch pult... zijn de bestanden in de editor gegenereerd!

Zo ziet de browserpreview eruit!

Bij de AI-functies tot nu toe gaf je bij een prompt als "Implementeer een klok in JavaScript" meestal alleen de implementatiestappen of de code uit. Deze tool neemt echter het hele proces over, van het aanmaken van bestanden tot het koppelen met git!

Voor een eenvoudige implementatie zoals deze lijkt het prima om het volledig over te laten, maar hoe groot een implementatie je er echt aan kunt toevertrouwen, dat vraag ik me nog af...

Laten we nu nog een extra verzoek doen: "maak de styling meer opvallend".

Er kwamen een paar suggesties, maar ik laat het aan de tool over.

De achtergrond is veranderd naar een verloop!

Het is ongelooflijk dat het vanaf nul bestanden genereert, code schrijft en zelfs naar git pusht, alleen omdat er een repository is aangemaakt! Het is echt een virtuele programmeur.

Momenteel wordt het echter aangeboden als bètaversie en gelden er gebruiksbeperkingen (bijvoorbeeld 5 taken per dag).

Ook duurt het aanmaken van bestanden en het implementeren van programma's wat langer, en het invoerveld had soms een bug waardoor invoer niet goed werd doorgevoerd.

Daarnaast lijkt het erop dat wanneer Jules op een fout stuit, het werk tot dat moment niet wordt doorgevoerd (committed), waardoor tussentijdse wijzigingen soms niet zichtbaar zijn, ook al zou je ze willen.

We hebben het JavaScript-klokje van dit keer omgezet naar Next.js door hem daarom te vragen, en we hebben het zelfs zover gekregen dat de omgeving was opgezet. Door een fout onderweg konden we de Next.js-bestanden echter niet lokaal ophalen en bleef het hangen... Het is handig, maar er zijn ook zeker nadelen, denk ik.

Conclusie

Als Jules steeds slimmer wordt, kunnen we misschien de vervelende routinematige klussen aan Jules overlaten en veel meer tijd besteden aan het leren van nieuwe technologieën of aan onze hobby's!

Jules zou als teamgenoot van ontwikkelaars de manier van werken in softwareontwikkeling wel eens helemaal kunnen veranderen!

Afbeelding bron: Jules-website

Over de auteur

Ik ben voornamelijk bezig met markup en frontend-ontwikkeling met JavaScript, React en Next.js. Ik ben blij wanneer een site waar ik aan heb meegewerkt succesvol live gaat! Mijn hobby's zijn gitaar spelen. Ik hou van katten en geroosterde zoete aardappel 🐱🍠

ひらっち

Frontend-engineer / in dienst sinds 2022

Bekijk de artikelen van deze medewerker

Ons grootste pluspunt is een betrouwbaar team en een snelle reactie

Bij Liberogic wordt er door onze ervaren medewerkers proactief aan projecten gewerkt, waardoor klanten ons hoog waarderen.
We zorgen ervoor dat er zorgvuldig een projectmanager en een director worden toegewezen, zodat het gehele project soepel verloopt. We voorkomen onnodige kostenstijging door middel van volledige inzet en verdelen de middelen op een manier die past bij de taak. Ook staan we bekend om ons snelle inzicht in de werkzaamheden en het snel opstellen en indienen van offertes.

* Liberogic zet zich niet in voor SES-achtige detacheringsopdrachten op locatie bij klanten. Houd hier alstublieft rekening mee.

U kunt vrijwel alle belangrijke tools voor projectmanagement en chat gebruiken, waaronder Slack, Teams, Redmine, Backlog, Asana, Jira, Notion, Google Workspace, Zoom, Webex en meer.

Neem gerust contact op met uw vragen over het web.

Casestudies