Brug af ChatGPT til at programmere i Python, C og Java

ChatGPT er skræmmende god til at skrive kode.

Alle har hørt om ChatGPT på dette tidspunkt. Det er en AI-drevet chatbot, der gør brug af naturlige sprogbehandlingsmodeller til at producere svar på komplicerede spørgsmål. Disse svar er ikke nødvendigvis altid nøjagtige, men de har en tendens til at være detaljerede nok til, at du kan faktatjekke de svar, det giver dig ret nemt. Hvad hvis du skulle tage ChatGPT og prøve at skrive kode med det?

Som det viser sig, er det noget, du kan gøre med varierende grad af succes, afhængigt af de sprog, du vil bruge, og hvad du vil opnå med dem. Jeg testede det for at se, hvor godt det ville klare sig på forskellige programmeringssprog at udføre forskellige opgaver. Jeg vil heller ikke lave nogen ændringer i den kode, som ChatGPT producerer, jeg vil kun guide den til at oprette en arbejdskode, hvis den kode, den opretter, ikke virker.

Jeg brugte tre sprog, som jeg allerede er bekendt med til at prøve ChatGPT: Python, C og Java. Resultaterne var særligt overraskende, da det kæmpede lidt med Python på grund af den abstrakte karakter af det, jeg bad det om at gøre, men det håndterede C og grundlæggende Java med lethed. Det har jeg også

oprettet et GitHub-lager med al koden her tilgængelig, så du selv kan prøve den.

Automatisk sidetjek i Python

Python er mit foretrukne programmeringssprog at arbejde i, og det er takket være den kraft, den har og dens enkelhed i brug. Jeg har tidligere skrevet mange værktøjer i Python til at automatisere dele af min arbejdsgang, og min bacheloropgave i datalogi blev endda lavet helt gennem Python. Jeg bad ChatGPT om at skrive et program, der kunne scanne en webside for ændringer med jævne mellemrum, og det gjorde for det meste tricket.

Problemet med ovenstående kode, som det giver mig, er, at det ikke simulerer en rigtig browser. Websites søger efter en parameter i din browser kaldet en "brugeragent", og dette definerer, hvilken type browser du bruger, eller om du er en bot. Mange websteder accepterer ikke forbindelser, der ikke definerer en brugeragent, og jeg stødte på dette, da jeg pegede på det på XDA. Jeg bad den om at tilføje brugerdefinerede overskrifter til anmodningen om at simulere en rigtig browser, og det overholdt.

Ovenstående kode fungerer for statiske websteder, men problemet er, at meget af det indhold, du læser online, er dynamisk. Hvis en side returnerer den aktuelle tid, for eksempel et sted på siden, så vil koden ovenfor altid sige, at siden har ændret sig, hver gang den opdateres. Da jeg påpegede dette til ChatGPT, blev det forvirret og gav mig en helt forkert løsning på problemet.

Ovenstående er en forkert forklaring på, hvordan hashes fungerer. Pointen med en hash er, at en mindre ændring af input vil resultere i en stor forskel i hashen, idet to hashes grundlæggende er uforlignelige. Da jeg fortalte det, at det var en forkert påstand at antyde, at hashes var den bedste måde at sammenligne og scanne for ændringer på, svarede den med en undskyldning og gav mig noget, der gjorde arbejde.

Det eneste problem, jeg har opdaget med ovenstående kode, er, at for større websteder er det beregningsmæssigt dyrt, da det bruger naturlig sprogbehandling til at sammenligne og beregne forskellen mellem dem. Alligevel er en tærskel på 5 % i ændret indhold god nok for de fleste websteder, hvis du vil søge efter opdateringer, og du kan justere tærsklen, hvis det er nødvendigt. Det tog lidt tid, men det kom der til sidst.

Der er mange grunde til, at du måske vil have en webskraber som en af ​​disse, og selvom der er værktøjer derude, der kan gøre det, er det fedt at bygge din egen. Du kan bruge dem til pakkesporing eller, i mit tilfælde, til at scanne efter nye ejendomme, der udlejes på lokale ejendomssider.

Adgangskodegenerator i C

Da sikkerhed har været i højsædet for nylig, er det vigtigt, at du bruger sikre adgangskoder og også bruger to-faktor-godkendelse. Hvis du kæmper med den sikre adgangskodedel, er det ret nemt at skrive en adgangskodegenerator i C. ChatGPT håndterede det ret nemt, og det eneste problem, jeg opdagede, var, at da jeg bad det om at oprette en adgangskodegenerator, importerede det ikke String C-biblioteket. Jeg fortalte det, og det føjede det til importen i starten.

Jeg øgede den globale variabel MAX_LENGTH til 32 tegn i stedet for 16, og den genererede følgende adgangskode til mig: aW3H0E(&FPQvG8B@4*()+4yRKTKB#U0O. Man kan roligt sige, at det virker!

Lommeregner i Java

Et ret grundlæggende program, som mange mennesker har erfaring med i Java, er oprettelsen af ​​en lommeregner. Det er en af ​​de tidligste udfordringer, som dataloger vil møde i deres programmeringskarriere, uanset hvilket sprog de tager først. Jeg bad ChatGPT om at skrive en lommeregner i Java, der gjorde brug af mindst to klasser, og den fungerede perfekt i første forsøg.

Dette er lommeregnerklassen:

Dette er hovedklassen:

Oprettelse af begge disse klasser i min IDE, IntelliJ og udførelse af hovedklassen resulterer i en perfekt fungerende regneprogram, der tager to tal og en operator til addition, subtraktion, multiplikation eller division.

ChatGPT er udmærket til programmering

Selvom jeg ikke ville stole på ChatGPT til at gøre alt for dig, er det klart, at det kan gøre et ret godt stykke arbejde med at skabe programmer og tage hensyn til kritik, når der er problemer. Jeg var overrasket over at se det foreslå en hashing-algoritme som en måde at skelne mellem mindre ændringer på en webside, men bortset fra det, kæmpede den overhovedet ikke med de mere grundlæggende opgaver. Selv i tilfældet med Python-programmet havde det den rigtige idé lige fra begyndelsen, og på mere statiske sider ville det have fungeret perfekt.

Selvfølgelig kommer ChatGPT ikke ligefrem til at erstatte programmører snart, men det er på vej til at blive et meget godt værktøj i arbejdsstyrken. GitHubs Copilot, for eksempel gør brug af GPT teknologi til at hjælpe folk med at skrive kode, og det bliver kun mere avanceret som tiden går. Selv hvis du er en nybegynder programmør, kan denne form for værktøj potentielt hjælpe dig med at lære, hvis du kunne stole fuldt ud på det, men nogle gange laver det mærkelige fejl, som vi har set.

Selvfølgelig er eksemplerne givet her meget grundlæggende, og de fleste programmører ville være i stand til at skrive dem ret nemt, men det er ikke meningen. Den er skræmmende god til at bygge løsninger til simple opgaver og ser også ud til at håndtere mere komplekse opgaver anstændigt godt. Vi er spændte på at se, hvor værktøjer som disse går hen i fremtiden og hjælper folk med at forbedre deres færdigheder.