Kodningsagenter och mjukvaruutveckling
Jag hade två lärare som gav mig råd om mjukvaruutveckling som har fastnat för mig än i dag.
Planeraren
Den första var min datorlärare på gymnasiet, som lärde mig vikten av att sitta ner och skriva anteckningar, göra en plan, innan jag bara började skriva kod.
Jag tycker att det är roligt att tänka på detta när jag läser artiklar som ger råd om hur man använder kodningsagenter som Claude Code och Codex, och vikten av att få den att göra en plan först för att få den att skriva kod framgångsrikt.
Lågnivåprogrammeraren
Den andra läraren var föreläsaren som undervisade i Low Level Programming-klassen på universitetet, som gjorde klart att mjukvara bara är data som flyttas från en plats till en annan, som möjligen ändras på vägen.
Jag tycker att det är roligt att tänka på hans klass nu. Uppgiften jag minns mest var att ta assembly-utdata från någon C-kod, och visa vad det högre C-språket gjorde i den lägre nivån assembly.
Kan du föreställa dig en universitetslektor om några år som lär studenter att studera JavaScript-koden på lägre nivå som genererades av den engelska prompten på högre nivå?
På vilken abstraktionsnivå finns agenter
Jag började skriva kod 2002, med REALBasic på Mac OS 9. Jag började skriva kod mer seriöst 2006, med Java på Windows XP.
Jag har alltid använt det jag introducerades för som “abstraktioner på högre nivå”. Aldrig hålkort, eller montering, eller ens C, egentligen. Men jag kan inte låta bli att känna att agenter är ytterligare en nivå upp igen.
Istället för att skriva på ett programmeringsspråk kan jag beskriva för en agent, på vanlig engelska, vad jag vill ska hända. Det var otänkbart för några år sedan. Men det är möjligt med kodningsagenter. Designa din mjukvarufunktion på naturligt språk (med din agents hjälp förstås), och ge det kravet till din agent, och något händer under huven på en lägre abstraktionsnivå. Liksom utvecklarna som skrev assembly-kod på 1980-talet, råkar den lägre abstraktionsnivån bara vara där jag har gjort min karriär hittills.
En gåta
Jag hatar det faktum att alla dessa LLM är utbildade på stulen data.
Jag hatar hur mycket energi som går åt till att träna dessa modeller.
Jag hatar att datorhårdvara som RAM-minne blir så mycket dyrare eftersom den köps i bulk för datacenter för att driva LLM:er.
Rent moraliskt tycker jag att det här är fruktansvärd teknik, och jag vill inte att det ska vara en del av min karriär, eller ens världen i allmänhet, ärligt talat.
Och det finns andra skäl att vara skeptisk till LLM. Affärsmodellen är en stor fråga för alla dessa företag. De gör ingen vinst, inte ens när de tar ut 200 pund i månaden. Men jag kan inte se att det är något annat än ett kortsiktigt problem eftersom stordriftsfördelar och tidens framsteg drar ner kostnaderna.
Ett annat problem som ofta tas upp är: vad händer med nästa generation mjukvaruutvecklare? Om att ha en agent är som att ha en junior utvecklare och du är senior utvecklare, var kommer de nya seniora utvecklarna ifrån? Jag misstänker att svaret på det är: var kom de nya monteringsutvecklarna ifrån?
Sedan är det frågan om hur mycket tid som sparas med hjälp av LLM. För ett år sedan försökte jag be Claude och ChatGPT (Claude Code och Codex existerade inte ens än) att skriva kod åt mig och jag fick det absoluta skräpet tillbaka. Om jag förlitade mig på de där äldre modellerna, i chatbots, så skulle jag spendera mycket mer tid på att fixa deras misstag än jag skulle spara på att låta dem generera kod. Men versionen av Codex jag använde förra veckan kan skriva arbetskod snabbare än jag kan. Claude Code är inte Claude. Codex är inte ChatGPT. Om du baserar dina antaganden på experiment med chatboten, som inte kan se din kodbas, inte kan köra och felsöka och fixa koden den skriver, så har du inte en fullständig förståelse för vad dessa verktyg kan göra. Dessa är nu mycket kraftfulla verktyg. Inte intelligenser, och jag har undvikit att använda termen “artificiell intelligens” med flit. Men verktyg för mjukvaruutveckling, ja. Och jag misstänker att de snabbt kommer att bli väldigt viktiga verktyg.
Vad nu?
Jag är enormt tveksam när det gäller att använda LLM. Jag har flera problem som jag inte kan förena. Jag vill bara inte vara beroende av ett annat amerikanskt Big Tech-företag.
Men jag är inte längre säker på vart min valda karriärväg är på väg.
Om du gillade den här artikeln, överväg att köpa en kaffe till mig för att stödja mitt skrivande.
