ChatGPT gebruiken om te programmeren in Python, C en Java

ChatGPT is griezelig goed in het schrijven van code.

Iedereen heeft er wel eens van gehoord ChatGPT in dit stadium. Het is een door AI aangedreven chatbot die gebruik maakt van natuurlijke taalverwerkingsmodellen om antwoorden op ingewikkelde vragen te produceren. Die antwoorden hoeven niet noodzakelijkerwijs altijd nauwkeurig te zijn, maar ze zijn meestal gedetailleerd genoeg om de antwoorden die het u geeft vrij gemakkelijk te kunnen controleren. Wat als u ChatGPT zou nemen en er code mee zou proberen te schrijven?

Het blijkt dat je dat met wisselend succes kunt doen, afhankelijk van de talen die je wilt gebruiken en wat je ermee wilt bereiken. Ik heb het op de proef gesteld om te zien hoe goed het zou werken in verschillende programmeertalen om verschillende taken uit te voeren. Ik zal ook geen wijzigingen aanbrengen in de code die ChatGPT produceert, ik zal het alleen begeleiden om werkende code te maken als de code die het maakt niet werkt.

Ik heb drie talen gebruikt die ik al ken om ChatGPT op de proef te stellen: Python, C en Java. De resultaten waren vooral verrassend omdat het een beetje worstelde met Python vanwege de abstracte aard van wat ik het vroeg te doen, maar het ging met gemak om met C en basis-Java. ik heb ook

een GitHub-repository gemaakt met alle code hier toegankelijk, zodat u het zelf kunt uitproberen.

Automatische paginacontrole in Python

Python is mijn favoriete programmeertaal om in te werken, en dat is te danken aan de kracht die het heeft en het gebruiksgemak. Ik heb in het verleden veel tools in Python geschreven om delen van mijn workflow te automatiseren, en mijn bachelorscriptie informatica heb ik zelfs volledig in Python gedaan. Ik vroeg ChatGPT om een ​​programma te schrijven dat een webpagina periodiek kon scannen op wijzigingen, en dat lukte grotendeels.

Het probleem met de bovenstaande code die ik krijg, is dat het geen echte browser simuleert. Websites controleren op een parameter in uw browser die een 'user-agent' wordt genoemd en die bepaalt wat voor soort browser u gebruikt en of u een bot bent. Veel websites accepteren geen verbindingen die geen user-agent definiëren, en ik kwam dit tegen toen ik het op XDA wees. Ik vroeg het om aangepaste headers toe te voegen aan het verzoek om een ​​echte browser te simuleren, en het voldeed.

De bovenstaande code werkt voor statische websites, maar het probleem is dat veel van de inhoud die u online leest dynamisch is. Als een pagina bijvoorbeeld ergens op de pagina de huidige tijd retourneert, dan zal de bovenstaande code altijd zeggen dat de pagina elke keer dat deze wordt vernieuwd, is gewijzigd. Toen ik ChatGPT hierop wees, raakte het in de war en kreeg ik een totaal onjuiste oplossing voor het probleem.

Het bovenstaande is een onjuiste uitleg van hoe hashes werken. Het punt van een hash is dat een kleine wijziging in de invoer zal resulteren in een groot verschil in de hash, in die zin dat twee hashes in wezen onvergelijkbaar zijn. Toen ik het vertelde dat het een onjuiste bewering was om te suggereren dat hashes de beste manier waren om te vergelijken en te scannen op veranderingen, antwoordde het met een verontschuldiging en gaf me iets dat deed werk.

Het enige probleem dat ik met de bovenstaande code heb ontdekt, is dat het voor grotere websites rekenkundig duur omdat het natuurlijke taalverwerking gebruikt om het verschil te vergelijken en te berekenen tussen hen. Toch is een drempel van 5% voor gewijzigde inhoud goed genoeg voor de meeste websites als u op updates wilt controleren, en u kunt de drempel indien nodig aanpassen. Het heeft even geduurd, maar uiteindelijk is het zover.

Er zijn veel redenen waarom u zo'n webschraper wilt, en hoewel er tools zijn die dit kunnen, is het cool om uw eigen te bouwen. U kunt ze gebruiken voor het volgen van pakketten of, in mijn geval, voor het scannen naar nieuwe eigendommen die te huur worden aangeboden op lokale vastgoedsites.

Wachtwoordgenerator in C

Nu beveiliging de laatste tijd een rage is, is het belangrijk dat u veilige wachtwoorden gebruikt en ook tweefactorauthenticatie gebruikt. Als je worstelt met het veilige wachtwoordgedeelte, is het vrij eenvoudig om een ​​wachtwoordgenerator in C te schrijven. ChatGPT handelde het vrij gemakkelijk af, en het enige probleem dat ik ontdekte was dat toen ik het vroeg om een ​​wachtwoordgenerator te maken, het de String C-bibliotheek niet importeerde. Ik vertelde het dat, en het voegde het aan het begin toe aan de invoer.

Ik heb de globale variabele MAX_LENGTH verhoogd naar 32 tekens in plaats van 16, en het genereerde het volgende wachtwoord voor mij: aW3H0E(&FPQvG8B@4*()+4yRKTKB#U0O. Veilig om te zeggen dat het werkt!

Rekenmachine in Java

Een vrij eenvoudig programma waar veel mensen ervaring mee hebben in Java is het maken van een rekenmachine. Het is een van de eerste uitdagingen waarmee computerwetenschappers in hun programmeercarrière te maken krijgen, ongeacht welke taal ze het eerst leren. Ik vroeg ChatGPT om een ​​rekenmachine in Java te schrijven die gebruik maakte van ten minste twee klassen, en die werkte bij de eerste poging perfect.

Dit is de rekenmachineklasse:

Dit is de hoofdklasse:

Het creëren van beide klassen in mijn IDE, IntelliJ, en het uitvoeren van de hoofdklasse resulteert in een perfect werkende rekenmachineprogramma dat twee getallen en een operator gebruikt voor optellen, aftrekken, vermenigvuldigen of divisie.

ChatGPT is goed in programmeren

Hoewel ik niet op ChatGPT zou vertrouwen om alles voor je te doen, is het duidelijk dat het redelijk goed werk kan leveren bij het maken van programma's en het in aanmerking nemen van kritiek wanneer er problemen zijn. Ik was verrast om te zien dat het een hash-algoritme suggereerde als een manier om onderscheid te maken tussen kleine wijzigingen in een webpagina, maar afgezien daarvan worstelde het helemaal niet met de meer basale taken. Zelfs in het geval van het Python-programma had het vanaf het allereerste begin het juiste idee en zou het op meer statische pagina's perfect hebben gewerkt.

ChatGPT zal natuurlijk niet snel programmeurs gaan vervangen, maar het is hard op weg om een ​​zeer goede tool te worden voor het personeel. Copiloot van GitHubmaakt bijvoorbeeld gebruik van GPT technologie om mensen te helpen code te schrijven, en het wordt alleen maar geavanceerder naarmate de tijd verstrijkt. Zelfs als je een beginnende programmeur bent, kan dit soort tool je mogelijk helpen te leren als je het volledig kunt vertrouwen, maar soms maakt het rare fouten, zoals we hebben gezien.

Natuurlijk zijn de hier gegeven voorbeelden erg eenvoudig en de meeste programmeurs zouden ze redelijk gemakkelijk kunnen schrijven, maar daar gaat het niet om. Het is griezelig goed in het bouwen van oplossingen voor eenvoudige taken en lijkt ook meer complexe taken behoorlijk goed aan te kunnen. We zijn verheugd om te zien waar dergelijke tools in de toekomst naartoe gaan en mensen helpen hun vaardigheden te verbeteren.