ChatGPT är läskigt bra på att skriva kod.
Alla har hört talas om ChatGPT i detta skede. Det är en AI-driven chatbot som använder sig av naturliga språkbehandlingsmodeller för att ge svar på komplicerade frågor. Dessa svar kanske inte nödvändigtvis alltid är korrekta, men de tenderar att vara tillräckligt detaljerade för att du kan faktakontrollera de svar som det ger dig ganska enkelt. Tänk om du skulle ta ChatGPT och försöka skriva kod med den?
Som det visar sig är det något du kan göra med olika grader av framgång, beroende på vilka språk du vill använda och vad du vill uppnå med dem. Jag testade det för att se hur bra det skulle klara sig i olika programmeringsspråk för att utföra olika uppgifter. Jag kommer inte heller att göra några ändringar i koden som ChatGPT producerar, jag kommer bara att vägleda den för att skapa fungerande kod om koden som den skapar inte fungerar.
Jag använde tre språk som jag redan är bekant med för att testa ChatGPT: Python, C och Java. Resultaten var särskilt överraskande eftersom det kämpade lite med Python på grund av den abstrakta karaktären hos det jag bad det att göra, men det hanterade C och grundläggande Java med lätthet. jag har också
skapade ett GitHub-förråd med all kod tillgänglig här så att du kan prova den själv.Automatisk sidkontroll i Python
Python är mitt favoritprogrammeringsspråk att arbeta i, och det är tack vare kraften som den har och dess enkelhet att använda. Jag har skrivit många verktyg i Python tidigare för att automatisera delar av mitt arbetsflöde, och min kandidatuppsats i datavetenskap gjordes till och med helt genom Python. Jag bad ChatGPT att skriva ett program som kunde skanna en webbsida efter ändringar med jämna mellanrum, och det gjorde mest susen.
Problemet med ovanstående kod som den ger mig är att den inte simulerar en riktig webbläsare. Webbplatser letar efter en parameter i din webbläsare som kallas en "användaragent", och den definierar vilken typ av webbläsare du använder eller om du är en bot. Många webbplatser accepterar inte anslutningar som inte definierar en användaragent, och jag stötte på detta när jag pekade på XDA. Jag bad den att lägga till anpassade rubriker till begäran om att simulera en riktig webbläsare, och det uppfyllde.
Koden ovan fungerar för statiska webbplatser, men problemet är att mycket av innehållet som du läser online är dynamiskt. Om en sida returnerar den aktuella tiden, till exempel någonstans på sidan, kommer koden ovan alltid att säga att sidan har ändrats varje gång den uppdateras. När jag påpekade detta för ChatGPT blev det förvirrat och gav mig en helt felaktig lösning på problemet.
Ovanstående är en felaktig förklaring av hur hash fungerar. Poängen med en hash är att en mindre förändring av inmatningen kommer att resultera i en stor skillnad i hash, genom att två hash är i princip ojämförliga. När jag sa att det var ett felaktigt påstående att antyda att hash var det bästa sättet att jämföra och söka efter ändringar, svarade den med en ursäkt och gav mig något som gjorde arbete.
Det enda problemet som jag har upptäckt med ovanstående kod är att för större webbplatser är det beräkningsmässigt dyr eftersom den använder naturlig språkbehandling för att jämföra och beräkna skillnaden mellan dem. Ändå är en tröskel på 5 % i ändrat innehåll tillräckligt bra för de flesta webbplatser om du letar efter uppdateringar, och du kan justera tröskeln om det behövs. Det tog ett tag, men det kom dit till slut.
Det finns många anledningar till att du kanske vill ha en webbskrapa som en av dessa, och även om det finns verktyg där ute som kan göra det, är det coolt att bygga din egen. Du kan använda dem för paketspårning eller, i mitt fall, skanna efter nya fastigheter som hyrs ut på lokala fastighetssajter.
Lösenordsgenerator i C
Eftersom säkerhet har varit på topp den senaste tiden är det viktigt att du använder säkra lösenord och även använder tvåfaktorsautentisering. Om du kämpar med den säkra lösenordsdelen är det ganska enkelt att skriva upp en lösenordsgenerator i C. ChatGPT hanterade det ganska enkelt, och det enda problemet jag upptäckte var att när jag bad den att skapa en lösenordsgenerator importerade den inte String C-biblioteket. Jag sa det till det och det lades till importen i början.
Jag ökade den globala variabeln MAX_LENGTH till 32 tecken istället för 16, och den genererade följande lösenord för mig: aW3H0E(&FPQvG8B@4*()+4yRKTKB#U0O. Säkert att det fungerar!
Kalkylator i Java
Ett ganska grundläggande program som många har erfarenhet av i Java är skapandet av en miniräknare. Det är en av de tidigaste utmaningarna som datavetare kommer att möta i sin programmeringskarriär, oavsett vilket språk de tar upp först. Jag bad ChatGPT att skriva en kalkylator i Java som använde sig av minst två klasser, och den fungerade perfekt vid första försöket.
Det här är kalkylatorklassen:
Detta är huvudklassen:
Att skapa båda dessa klasser i min IDE, IntelliJ och köra huvudklassen resulterar i en perfekt fungerande kalkylatorprogram som tar in två tal och en operator för addition, subtraktion, multiplikation eller division.
ChatGPT är bra på programmering
Även om jag inte skulle lita på att ChatGPT gör allt åt dig, är det klart att det kan göra ett ganska bra jobb med att skapa program och ta hänsyn till kritik när det finns problem. Jag blev förvånad över att se det föreslå en hashalgoritm som ett sätt att skilja mellan mindre ändringar på en webbsida, men bortsett från det kämpade den inte med de mer grundläggande uppgifterna överhuvudtaget. Även i fallet med Python-programmet hade det rätt idé redan från början och skulle på mer statiska sidor ha fungerat perfekt.
Naturligtvis kommer ChatGPT inte precis att ersätta programmerare någon gång snart, men det är på väg att bli ett mycket bra verktyg i arbetsstyrkan. GitHubs Copilott.ex. använder sig av GPT teknik för att hjälpa människor att skriva kod, och den kommer bara att bli mer avancerad med tiden. Även om du är en nybörjarprogrammerare kan den här typen av verktyg potentiellt hjälpa dig att lära dig om du kunde lita på det fullt ut, men ibland gör det konstiga misstag, som vi har sett.
Naturligtvis är exemplen som ges här väldigt grundläggande, och de flesta programmerare skulle kunna skriva dem ganska enkelt, men det är inte meningen. Den är skrämmande bra på att bygga lösningar på enkla uppgifter och verkar klara mer komplexa uppgifter hyfsat bra också. Vi är glada över att se vart verktyg som dessa tar vägen i framtiden och hjälpa människor att förbättra sina färdigheter.