ChatGPT krijgt Codex Upgrade: Eerste Indrukken

OpenAI’s nieuwste innovatie, de Codex AI agent, introduceert een nieuwe benadering van programmeren - een “vibe-coding” omgeving aangedreven door een ChatGPT-achtige interface. Hoewel het concept aanvankelijk gimmicky lijkt, zijn de mogelijkheden van de nieuwe Codex agent opmerkelijk indrukwekkend.

OpenAI heeft Codex bestempeld als een research preview, wat aangeeft dat het nog in actieve ontwikkeling is. Momenteel is het toegankelijk voor ChatGPT Pro, Enterprise en Team-tier abonnees, met plannen om de beschikbaarheid in de nabije toekomst uit te breiden naar Plus en Edu-gebruikers.

Volgens OpenAI’s aankondiging is de naam Codex geassocieerd met een evoluerend programmeerhulpmiddel sinds 2021. In deze discussie verwijst “Codex” naar de nieuw aangekondigde versie.

Codex bevindt zich op de servers van OpenAI en integreert met GitHub repositories. De demonstraties suggereren dat Codex functioneert als een extra programmeur binnen een team.

Het kan worden geïnstrueerd om een reeks bugs op te lossen en de taak dienovereenkomstig uit te voeren. Het vraagt ook om goedkeuring voor codewijzigingen, hoewel het in staat lijkt om autonoom code te wijzigen.

Codex kan code analyseren en wijzigen, specifieke problemen identificeren, gebieden voor verbetering aanwijzen en andere code- en onderhoudstaken uitvoeren. Elke taak initieert een nieuwe virtuele omgeving, waardoor de AI alles aankan, van concept en ontwerp tot unit testing.

Een Paradigmaverschuiving in Coderen

Dit betekent een echte verschuiving in het programmeerparadigma. Eerdere AI-programmeerassistentie omvatte voornamelijk autocomplete-functies, waarbij automatisch regels of blokken code werden gegenereerd op basis van bestaande code.

De technologie is zo ver gevorderd dat AI kleine segmenten code kan schrijven of debuggen. Dit is het aspect dat mij bijzonder interesseert met betrekking tot de programmeertests van ZDNET.

Een andere rol voor AI is de analyse van het totale systeem. Onlangs heb ik een nieuwe Deep Research tool onderzocht die complete codebases kan deconstrueren en code reviews en aanbevelingen kan geven.

Codex bereikt nu een punt waarop complete programmeertaken kunnen worden toevertrouwd aan AI in de cloud, vergelijkbaar met het delegeren van taken aan andere programmeurs in een team of junior programmeurs die codeonderhoud leren.

OpenAI beschrijft dit als “Agent-native software development, waarbij AI je niet alleen helpt tijdens het werk, maar ook zelfstandig taken op zich neemt.”

De lanceervideo demonstreerde Codex’s vermogen om meerdere taken tegelijkertijd te beheren, die elk in een afzonderlijke, geïsoleerde virtuele omgeving werken.

Programmeurs wezen taken toe aan de agent, die het werk vervolgens zelfstandig uitvoerde. Na voltooiing gaf de agent testresultaten en stelde codewijzigingen voor.

De demo bevatte Codex die bugfixes uitvoerde, scannen op typefouten, taaksuggesties gaf en projectbrede refactoring uitvoerde (code wijzigen om de structuur te verbeteren zonder het gedrag te veranderen).

Senior developers en ontwerpers zijn vertrouwd met het formuleren van eisen en het beoordelen van het werk van anderen. Het gebruik van Codex zal geen significante veranderingen voor hen met zich meebrengen. Echter, developers die geen sterke vaardigheden hebben in het formuleren van eisen en het beoordelen, kunnen het beheren van Codex een beetje uitdagend vinden.

Desondanks, als de tool presteert zoals gedemonstreerd, zal Codex kleinere teams en individuele developers in staat stellen om meer te bereiken, repetitieve taken te verminderen en effectiever te reageren op probleemrapporten.

Potentiële Valkuilen en Mitigatiestrategieën

Vroege ervaringen met ChatGPT’s codeermogelijkheden onthulden een neiging om de focus te verliezen of af te wijken van de beoogde richting. Hoewel dit niet catastrofaal is voor individuele codeblokken, kan het leiden tot onbedoelde en problematische gevolgen als een coding agent mag opereren met beperkt toezicht.

Om dit aan te pakken, heeft OpenAI Codex getraind om zich te houden aan instructies die zijn beschreven in een AGENTS.md bestand. Dit bestand, dat zich in de repository bevindt, stelt programmeurs en teams in staat om het gedrag van Codex te begeleiden. Het kan instructies bevatten over naamgevingsconventies, formatteringregels en andere consistente richtlijnen die gewenst zijn gedurende het programmeerproces. Het breidt in wezen ChatGPT’s personalisatie-instellingen uit naar een repository-centrische teamomgeving.

Bovendien heeft OpenAI een versie van Codex geïntroduceerd, genaamd Codex CLI, die lokaal op de machine van een developer draait. In tegenstelling tot de cloud-based Codex, die asynchroon werkt en rapporten geeft na voltooiing, werkt de lokale versie via de commandoregel van de programmeur en functioneert synchroon.

In essentie voert de programmeur een instructie in en wacht tot het Codex CLI proces een resultaat retourneert. Dit stelt programmeurs in staat om offline te werken, waarbij ze de lokale context van hun actieve ontwikkelmachine benutten.

Research Prototype met Veelbelovend Potentieel

De demo was indrukwekkend, maar de developers benadrukten dat wat ze lieten zien en vrijgeven een research prototype is. Hoewel het biedt wat ze “magische momenten” noemden, vereist het nog steeds significante ontwikkeling.

Ik heb geprobeerd de specifieke implicaties van deze technologie voor de toekomst van ontwikkeling en mijn eigen ontwikkelingsproces te begrijpen. Mijn primaire product is een open-source WordPress plugin, met proprietary add-on plugins. Codex zou mogelijk de public repository kunnen analyseren voor de open-source core plugin.

Echter, kan Codex de relatie beheren tussen een public repository en meerdere private repositories als onderdeel van een enkel overkoepelend project? En hoe zou het presteren wanneer het testen niet alleen mijn code omvat, maar ook het opzetten van een heel extra ecosysteem – WordPress – om de prestaties te evalueren?

Als solo programmeur erken ik de potentiële voordelen van een tool als Codex. Zelfs het $200-per-maand Pro abonnement zou de moeite waard kunnen zijn. Het inhuren van een menselijke programmeur zou aanzienlijk meer kosten, ervan uitgaande dat ik er tastbare, monetariseerbare waarde uit zou kunnen halen.

Als ervaren team manager en communicator voel ik me comfortabel bij het delegeren van taken aan iets als Codex. Het is niet significant anders dan communiceren met een teamlid via Slack.

Het feit dat Codex aanbevelingen geeft, versies ontwerpt en wacht op mijn goedkeuring geeft een gevoel van security in vergelijking met het simpelweg toestaan dat het vrijelijk opereert binnen mijn code. Dit opent intrigerende mogelijkheden voor een nieuwe ontwikkelingslevenscyclus, waarbij mensen doelen definiëren, AI potentiële implementaties ontwerpt en mensen vervolgens de AI goedkeuren of omleiden voor een andere iteratie.

Onbeantwoorde Vragen en Toekomstige Implicaties

Op basis van mijn eerdere ervaringen met het gebruik van AI’s voor coderen, zou Codex mogelijk de onderhoudstijd kunnen verkorten en de levering van fixes aan gebruikers kunnen versnellen. De effectiviteit ervan bij het toevoegen van nieuwe features op basis van een specificatiedocument blijft echter onduidelijk. Evenzo moet de moeilijkheidsgraad van het wijzigen van functionaliteit en prestaties na de Codex-implementatie nog worden bepaald.

Het is opmerkelijk dat AI-coderen bij meerdere bedrijven in een vergelijkbaar tempo evolueert. Ik zal binnenkort een ander artikel publiceren over GitHub Copilot’s Coding Agent, die enkele functionaliteiten deelt met Codex.

In dat artikel heb ik mijn bezorgdheid geuit dat deze coding agents junior en entry-level programmeurs zouden kunnen verdringen. Naast de implicaties voor menselijke banen is er ook de vraag naar de cruciale trainingsmogelijkheden die verloren zouden kunnen gaan als we een middenfase van de carrière van een developer delegeren aan AI.

De Software-industrie’s “Into the Unknown”

Er is een lied in Disney’s Frozen II genaamd “Into the Unknown,” uitgevoerd door Idina Menzel. Het lied weerspiegelt het interne conflict van het hoofdpersonage tussen het handhaven van de status quo en het wagen in “the unknown.”

Met agentic software development, verder dan alleen AI coderen, begint de hele software-industrie aan een reis “into the unknown.” Naarmate we steeds meer vertrouwen op AI-gebaseerde systemen om onze software te ontwikkelen, zal het aantal bekwame onderhouders waarschijnlijk afnemen. Dit is acceptabel zolang de AI’s effectief blijven functioneren en toegankelijk blijven. Echter, laten we essentiële vaardigheden atrofieren en offeren we goed betaalde banen op voor het gemak van het delegeren aan een nog niet-bewuste, cloud-based infrastructuur?

De tijd zal de antwoorden onthullen, en hopelijk zal deze onthulling niet plaatsvinden als we geen tijd meer hebben.

Zou je overwegen om echte ontwikkelingstaken te delegeren aan een tool als deze? Wat denk je dat de impact op lange termijn zal zijn op softwareteams of individuele developers? En ben je bezorgd over het verliezen van cruciale vaardigheden of rollen naarmate meer van de code levenscyclus wordt toevertrouwd aan AI?