AI-chatbotarnas förmåga växer snabbt. Men kan de koda ännu, och vilken är bäst på uppgiften?
När Google lanserade Bard, dess svar på OpenAIs ChatGPT, saknade den en funktion som var ganska populär bland ChatGPT-användare: möjligheten att skriva kod. Men efter populär efterfrågan gav Google Bard ett skott i armen, vilket gjorde det möjligt för den att skriva kod på dussintals programmeringsspråk.
Google har sedan dess varit högljudd om hur bra Bard kan skriva och felsöka kod, men hur står det sig jämfört med den fenomenala ChatGPT? Låt oss ta reda på.
ChatGPT vs. Bard: Språkstöd
Officiellt kan Googles Bard arbeta med ett 20-tal programmeringsspråk. Dessa består mestadels av populära som Typescript, Python, C++, Go, Java, JavaScript och PHP. Den kan fortfarande hantera mindre populära alternativ som Perl och Scala men är inte nödvändigtvis lika effektiv.
ChatGPT å andra sidan har ingen officiell lista över språk som stöds. Chatboten kan hantera det mesta som Bard kan hantera och dussintals till. ChatGPT kan skriva, felsöka och förklara kod i både nyare, populära programmeringsspråk och
mindre populära, äldre språk som Fortran, Pascal, BASIC och COBOL.Men stöd betyder inte nödvändigtvis kompetens. Vi testade några enkla uppgifter på utvalda språk som PHP, JavaScript, BASIC och C++. Både Bard och ChatGPT kunde leverera på de populära programmeringsspråken, men bara ChatGPT kunde på ett övertygande sätt sätta ihop program på äldre språk. Så när det gäller språkstöd ger vi vinsten till ChatGPT.
ChatGPT vs. Bard: Noggrannhet och kodkvalitet
Låt oss säga att du ber ChatGPT eller Bard att generera en bit kod som gör något, och den spottar ut dussintals rader kod på några sekunder. Lätt, eller hur? Men hur ofta kommer den koden att fungera? Låt oss säga att koden fungerar; hur bra är den koden?
För att jämföra noggrannheten och kvaliteten på koden som genereras av de två AI-chatbotarna gav vi båda några kodningsuppgifter att slutföra. Vi bad Bard och ChatGPT att skapa en enkel att-göra-lista-app med HTML, CSS och JavaScript. Efter att ha kopierat in och tittat på den genererade koden i en webbläsare såg ChatGPTs app ut så här:
Med ChatGPTs version kan du lägga till en ny uppgift, ta bort en uppgift eller markera en uppgift som slutförd. Googles Bard kunde också skapa en funktionell att-göra-lista-app. Du kan dock bara lägga till en uppgift, utan möjlighet att ta bort eller markera den som slutförd. Bards gränssnitt verkade också mindre tilltalande; så här såg det ut:
Vi upprepade testet och bad den här gången båda chatbotarna att återskapa Twitter-tidslinjekort. Här är ChatGPTs resultat:
Och här är vad Googles Bard producerade:
Båda resultaten har sina för- och nackdelar. Vi skulle ha gått med Bards resultat om den hade gilla-, retweet- och kommentarsknappar. Men det utelämnade de konstigt nog, så vi låter dig bestämma vilken som är bättre. Naturligtvis handlar kvaliteten på koden inte bara om det estetiska i vad den producerar.
När man analyserade koden som genererades av båda chatbotarna verkade Bards vara mer objektorienterad medan ChatGPTs var mer procedurmässig. Vårt val av programmeringsspråk kan påverka detta, men ChatGPT verkade skriva renare kod när det var nödvändigt. Det tenderar också att generera mer kompletta lösningar, vilket vanligtvis leder till fler rader kod.
När det gäller kvaliteten på genererad kod tilldelar vi denna omgång ChatGPT.
ChatGPT vs. Bard: Felsökning och feldetektering
Fel och buggar är som pussel som programmerare älskar att hata. De kommer att göra dig galen, men att fixa dem är ganska tillfredsställande. Så när du stöter på buggar i din kod, ska du ringa Bard eller ChatGPT för hjälp? För att bestämma oss gav vi båda AI-chatbotarna två felsökningsproblem att lösa.
För det första uppmanade vi båda chatbotarna att lösa ett logiskt fel i en PHP-kod. Logiska fel är notoriskt svårare att upptäcka eftersom koden som innehåller dem inte ser fel ut, den gör bara inte vad programmeraren tänkt sig.
Koden i den här skärmdumpen körs, men den fungerar inte. Kan du se det logiska felet? Vi bad Googles Bard om hjälp och tyvärr kunde chatboten inte plocka ut det logiska felet i koden. Intressant nog har Googles Bard vanligtvis tre utkastförsök att lösa ett problem, vi kontrollerade alla tre utkasten och alla var fel.
Vi bad sedan ChatGPT om hjälp, och det plockade omedelbart ut det logiska felet.
PHP-skriptet hade inga syntaxfel, men logiken i ärOdd() funktionen var bakåtvänd. För att se om ett tal är udda, kontrollerar du vanligtvis om det har en rest efter att ha dividerat med 2. Om det gör det är det en udda siffra.
Medan Bard inte var i närheten av att identifiera denna bugg, plockade ChatGPT upp den vid första försöket. Vi försökte ytterligare fyra logiska fel och Bard kunde bara plocka ut felet i en instans medan ChatGPT konsekvent levererade. Efter att ha bytt till kod med syntaxfel kunde Googles Bard hänga med och identifierade dem i nästan alla exempel som presenterades.
Googles Bard är relativt bra på att felsöka, men vi kommer att ge denna vinst till ChatGPT igen.
ChatGPT vs. Bard: Kontextmedvetenhet
En av de största utmaningarna med användningen av AI-chatbotar för kodning är deras relativt begränsade sammanhangsmedvetenhet. Du ber chatboten att skriva lite kod, sedan lite mer... längs linjen glömmer den helt bort att nästa sak som den bygger är en del av samma projekt.
Säg till exempel att du bygger en webbapp med en AI-chatbot. Du säger åt den att skriva kod för din HTML-sida för registrering och inloggning, och den gör det perfekt. Och sedan, medan du fortsätter att bygga, ber du chatboten att generera ett skript på serversidan för att hantera inloggningslogiken. Detta är en enkel uppgift, men på grund av begränsad sammanhangsmedvetenhet kan det sluta med att det genererar ett inloggningsskript med nya variabler och namnkonventioner som inte matchar resten av koden.
Så vilken chatbot är bättre på att behålla sammanhangsmedvetenhet? Vi gav båda verktygen samma programmeringsuppgift: en chattapp som vi vet att ChatGPT redan kan bygga.
Tyvärr kunde Bard helt enkelt inte slutföra appen eftersom den tappade koll på projektets sammanhang efter att den legat inaktiv en tid. Trots samma villkor har ChatGPT slutfört appen. Återigen, när det gäller sammanhangsmedvetenhet, ger vi det till ChatGPT.
ChatGPT vs. Bard: Problemlösning
Vid det här laget saknas Googles Bard på många sätt. Men kan det äntligen vinna? Låt oss testa dess problemlösningsförmåga. Ibland har du bara ett problem, men du är inte säker på hur du ska representera det programmatiskt, än mindre hur du ska lösa det.
Situationer som denna är när AI-chatbotar som Bard och ChatGPT kan komma väl till pass. Men vilken chatbot har bättre problemlösningsförmåga? Vi bad dem båda att "skriv en JavaScript-kod som räknar hur många gånger ett visst ord förekommer i en text."
Bard svarade med fungerande kod, även om den misslyckas när skiljetecken är nära ett ord eller ordet förekommer i olika fall.
Vi kastade samma problem på ChatGPT och här är resultatet:
ChatGPT: s kod tar ett mer robust och korrekt tillvägagångssätt för att räkna ordförekomster i en text. Den tar hänsyn till ordgränser och skiftlägeskänslighet, hanterar skiljetecken korrekt och ger mer tillförlitliga resultat. Återigen, när det gäller problemlösning, ger vi det till ChatGPT.
Eftersom Google Bard i stort sett har förlorat i varje mätvärde vi använde för jämförelse, bestämde vi oss för att ge det en chans till inlösen. Vi frågade chatboten "Vilket är bättre på att koda? ChatGPT eller Google Bard?"
Även om det var överens om att ChatGPT var mer kreativt, sa Bard att dess konkurrent var mer benägna att göra misstag och att ChatGPT producerade kod som var mindre effektiv, inte välstrukturerad och generellt sett var mindre pålitlig. Vi måste vara oense!
ChatGPT är i en egen liga
Googles Bard har haft mycket hype, så det kan komma som en överraskning att se hur mycket den saknar i jämförelse med ChatGPT. Även om ChatGPT helt klart hade ett försprång, kanske du tror att Googles enorma resurser skulle hjälpa det att urholka den fördelen.
Trots dessa resultat skulle det vara oklokt att avskriva Bard som ett programmeringshjälpmedel. Även om det inte är lika kraftfullt som ChatGPT, har Bard fortfarande en betydande kraft och utvecklas i snabb takt. Med tanke på Googles resurser är uppkomsten av Bard som en värdig rival en fråga om tid.