← Alla nyheter

Computer Sweden · 2 tim sedan Vetenskap

När koden inte längre spelar någon roll

Jag tror att vi alla förstår vilket enormt steg det var att bygga den första kompilatorn. Att kunna skriva kod som människor kan läsa och förstå och omvandla den till något som en dator kan köra var ett grundläggande steg inom datavetenskapen. Det möjliggjorde den explosionsartade utvecklingen av programvara som, som Marc Andreessen uttryckte det, ”slukar världen”. Nästa steg var en tolk för språk som JVM:s bytecode och .NET:s Common Intermediate Language (CIL). Dessa tog de mänskliga språken och omvandlade dem till ett språk som kan köras eller exekveras var som helst. Som jag har hävdat tidigare tar abstraktionerna aldrig slut . Men endast ett fåtal utvalda bryr sig om att faktiskt lära sig bytecode eller CIL. Ingen väljer det som utvecklingsspråk. Det är avsett att skrivas av en kompilator och läsas av en tolk. I dag, med AI, kodar vi i Markdown och vanligt mänskligt språk. Det ”mella

Jag tror att vi alla förstår vilket enormt steg det var att bygga den första kompilatorn. Att kunna skriva kod som människor kan läsa och förstå och omvandla den till något som en dator kan köra var ett grundläggande steg inom datavetenskapen. Det möjliggjorde den explosionsartade utvecklingen av programvara som, som Marc Andreessen uttryckte det, ”slukar världen”.

Nästa steg var en tolk för språk som JVM:s bytecode och .NET:s Common Intermediate Language (CIL). Dessa tog de mänskliga språken och omvandlade dem till ett språk som kan köras eller exekveras var som helst. Som jag har hävdat tidigare tar abstraktionerna aldrig slut. Men endast ett fåtal utvalda bryr sig om att faktiskt lära sig bytecode eller CIL. Ingen väljer det som utvecklingsspråk. Det är avsett att skrivas av en kompilator och läsas av en tolk.

I dag, med AI, kodar vi i Markdown och vanligt mänskligt språk. Det ”mellanliggande språket” är nu själva koden – Typescript, Python, Rust och så vidare – och den mänskligt läsbara delen av ekvationen är vår vardagliga konversation med kodningsagenten. Vi har lagt till ett lager som gör det ännu enklare att kommunicera våra krav direkt till våra datorers hårdvara.

Och precis som ingen egentligen skriver IL kommer det inte dröja länge innan ingen av oss skriver Typescript, Python eller Rust. Att koda för hand kommer att tillhöra det förflutna. Och vid den tidpunkten blir det irrelevant om vårt ”mellanspråk” är Typescript eller något annat. Det spelar ingen roll.

Så min fråga blir då: om det inte spelar någon roll, varför skulle vi i så fall ens använda ett språk som är läsbart för människor? Varför skulle inte vi (eller AI-agenterna själva?) skapa ett mellanliggande språk som är mer effektivt än de steg vi har i dag? Just nu säger vi till vår agent vad vi vill, den skriver kod, och den koden omvandlas till något annat (bytecode, assembler, Web Assembly eller binärkod) som maskinen kan köra. Stegen är alltså mänskligt språk → människoläsbar kod → maskinläsbar kod. Jag är inte alls säker på varför det mellersta steget behöver finnas i sin nuvarande form.

Högnivåprogrammeringsspråk finns för att människor ska kunna tänka ut och uttrycka idéer. Objektorienterad kod, typstrukturer, loopar och liknande finns alla för att människor ska kunna tala om för datorn exakt vad den ska göra. Men om vi kan tala om för datorn vad den ska göra på en högre nivå, och AI-agenten kan omvandla den specifikationen till en fungerande applikation, då kan hela processen effektiviseras.

Stora språkmodeller behärskar Python och andra språk tack vare den enorma mängd träningsdata som står till deras förfogande. Så småningom kommer dessa agenter inte att behöva träningsdata längre, eftersom de lär sig och förstår den mer allmänna uppfattningen av vad ett programmeringsspråk är. Det verkar oundvikligt att en agent kommer att kunna ta en fullständig specifikation av ett programmeringsspråk och skriva kod på det språket utan några träningsdata alls. Den abstrakta idén om ett programmeringsspråk kommer att göra det möjligt för agenten att skriva kod på vilket språk som helst som den får.

Vid den tidpunkten kommer det inte att spela någon roll vilket underliggande språk det handlar om, och det verkar som att det logiska nästa steget är att agenterna skapar ett språk som perfekt uppfyller deras behov. Det kommer att vara något som gör agenten mer effektiv, kapabel och flexibel. I slutändan kommer vi att hoppa över mellansteget i paradigmet mänskligt språk → människoläsbar kod → maskinläsbar kod, och paradigmet kommer att bli mänskligt språk → maskinläsbar kod. Och vi människor kommer endast att hantera indata.

Detta kommer att få en genomgripande inverkan på mjukvaruutvecklingen. Just nu förväntar vi oss att utvecklare ska se till att våra agenter producerar kod av hög kvalitet. Oron är att vi inte längre behöver juniorutvecklare, och att vi därmed inte kommer att ha seniorutvecklare i framtiden.

Men när agenterna har sitt eget språk, sin egen utdata, då behöver vi inte längre veta vad ”bra kod” är. Vi kommer att bedöma koden utifrån ”fungerar den eller inte?”. Och om så är fallet, då kommer koden inte att spela någon roll alls längre.

Läs hela artikeln hos Computer Sweden →

Metodai Nyheter är en nyhetsaggregator. Hela artikeln finns hos källan. Upphovsrätten tillhör respektive medium.