Χρησιμοποιώντας το ChatGPT για προγραμματισμό σε Python, C και Java

click fraud protection

Το ChatGPT είναι τρομακτικά καλό στη σύνταξη κώδικα.

Όλοι έχουν ακούσει ChatGPT σε αυτό το στάδιο. Είναι ένα chatbot με τεχνητή νοημοσύνη που χρησιμοποιεί μοντέλα επεξεργασίας φυσικής γλώσσας για να δώσει απαντήσεις σε περίπλοκες ερωτήσεις. Αυτές οι απαντήσεις μπορεί να μην είναι απαραίτητα πάντα ακριβείς, αλλά τείνουν να είναι αρκετά λεπτομερείς ώστε να μπορείτε να ελέγξετε τις απαντήσεις που σας δίνει αρκετά εύκολα. Τι θα γινόταν αν παίρνατε το ChatGPT και προσπαθήσατε να γράψετε κώδικα με αυτό;

Όπως αποδεικνύεται, αυτό είναι κάτι που μπορείτε να κάνετε με διάφορους βαθμούς επιτυχίας, ανάλογα με τις γλώσσες που θέλετε να χρησιμοποιήσετε και τι θέλετε να πετύχετε με αυτές. Το έβαλα σε δοκιμή για να δω πόσο καλά θα τα πήγαινε σε διαφορετικές γλώσσες προγραμματισμού για να ολοκληρώσω διαφορετικές εργασίες. Επίσης, δεν θα κάνω καμία αλλαγή στον κώδικα που παράγει το ChatGPT, θα το καθοδηγήσω μόνο για τη δημιουργία κώδικα εργασίας εάν ο κώδικας που δημιουργεί δεν λειτουργεί.

Χρησιμοποίησα τρεις γλώσσες με τις οποίες γνωρίζω ήδη για να δοκιμάσω το ChatGPT: Python, C και Java. Τα αποτελέσματα ήταν ιδιαίτερα εκπληκτικά καθώς δυσκολευόταν λίγο με την Python λόγω της αφηρημένης φύσης αυτού που του ζητούσα να κάνει, αλλά χειριζόταν εύκολα τη C και τη βασική Java. έχω επίσης

δημιούργησε ένα αποθετήριο GitHub με όλο τον κώδικα εδώ διαθέσιμο, ώστε να μπορείτε να τον δοκιμάσετε μόνοι σας.

Αυτόματος έλεγχος σελίδας σε Python

Η Python είναι η αγαπημένη μου γλώσσα προγραμματισμού για εργασία, και αυτό χάρη στη δύναμη που διαθέτει και την απλότητα χρήσης της. Έχω γράψει πολλά εργαλεία στην Python στο παρελθόν για να αυτοματοποιήσω μέρη της ροής εργασίας μου και η πτυχιακή μου εργασία στην επιστήμη των υπολογιστών έγινε εξ ολοκλήρου μέσω Python. Ζήτησα από το ChatGPT να γράψει ένα πρόγραμμα που θα μπορούσε να σαρώσει μια ιστοσελίδα για αλλαγές σε περιοδική βάση, και ως επί το πλείστον έκανε το κόλπο.

Το θέμα με τον παραπάνω κώδικα που μου δίνει είναι ότι δεν προσομοιώνει πραγματικό πρόγραμμα περιήγησης. Οι ιστότοποι ελέγχουν για μια παράμετρο στο πρόγραμμα περιήγησής σας που ονομάζεται "user agent" και αυτό καθορίζει το είδος του προγράμματος περιήγησης που χρησιμοποιείτε ή εάν είστε bot. Πολλοί ιστότοποι δεν δέχονται συνδέσεις που δεν καθορίζουν έναν παράγοντα χρήστη και αντιμετώπισα αυτό όταν το υπέδειξα στο XDA. Του ζήτησα να προσθέσει προσαρμοσμένες κεφαλίδες στο αίτημα για την προσομοίωση ενός πραγματικού προγράμματος περιήγησης και συμμορφώθηκε.

Ο κώδικας που δίνεται παραπάνω λειτουργεί για στατικούς ιστότοπους, αλλά το πρόβλημα είναι ότι μεγάλο μέρος του περιεχομένου που διαβάζετε στο διαδίκτυο είναι δυναμικό. Εάν μια σελίδα επιστρέψει την τρέχουσα ώρα, για παράδειγμα, σε κάποιο σημείο της σελίδας, τότε ο παραπάνω κώδικας θα λέει πάντα ότι η σελίδα έχει αλλάξει κάθε φορά που ανανεώνεται. Όταν το επεσήμανα αυτό στο ChatGPT, μπερδεύτηκε και μου έδωσε μια εντελώς εσφαλμένη λύση στο πρόβλημα.

Τα παραπάνω είναι μια εσφαλμένη εξήγηση του τρόπου λειτουργίας των κατακερματισμών. Το νόημα ενός κατακερματισμού είναι ότι μια μικρή αλλαγή στην είσοδο θα έχει ως αποτέλεσμα μια σημαντική διαφορά στον κατακερματισμό, καθώς δύο κατακερματισμοί είναι βασικά ασύγκριτοι. Όταν του είπα ότι ήταν λανθασμένος ο ισχυρισμός ότι οι κατακερματισμοί ήταν ο καλύτερος τρόπος σύγκρισης και σάρωσης για αλλαγές, μου απάντησε ζητώντας συγγνώμη και μου έδωσε κάτι που έκανε δουλειά.

Το μόνο πρόβλημα που ανακάλυψα με τον παραπάνω κώδικα είναι ότι για μεγαλύτερους ιστότοπους, είναι υπολογιστικά ακριβό καθώς χρησιμοποιεί επεξεργασία φυσικής γλώσσας για να συγκρίνει και να υπολογίσει τη διαφορά μεταξυ τους. Ωστόσο, ένα όριο 5% στο αλλαγμένο περιεχόμενο είναι αρκετά καλό για τους περισσότερους ιστότοπους, αν θέλετε να ελέγξετε για ενημερώσεις και μπορείτε να προσαρμόσετε το όριο εάν χρειάζεται. Πήρε λίγο χρόνο, αλλά στο τέλος έφτασε εκεί.

Υπάρχουν πολλοί λόγοι για τους οποίους μπορεί να θέλετε ένα web scraper σαν ένα από αυτά, και ενώ υπάρχουν εργαλεία εκεί έξω που μπορούν να το κάνουν, είναι ωραίο να φτιάξετε το δικό σας. Μπορείτε να τα χρησιμοποιήσετε για παρακολούθηση πακέτων ή, στην περίπτωσή μου, για σάρωση για νέα ακίνητα που ενοικιάζονται σε τοπικούς ιστότοπους ακινήτων.

Δημιουργία κωδικών πρόσβασης σε C

Δεδομένου ότι η ασφάλεια είναι πολύ δημοφιλής πρόσφατα, είναι σημαντικό να χρησιμοποιείτε ασφαλείς κωδικούς πρόσβασης και επίσης να χρησιμοποιείτε έλεγχο ταυτότητας δύο παραγόντων. Εάν δυσκολεύεστε με το τμήμα ασφαλούς κωδικού πρόσβασης, είναι πολύ εύκολο να γράψετε μια δημιουργία κωδικών πρόσβασης στο C. Το ChatGPT το χειρίστηκε αρκετά εύκολα και το μόνο πρόβλημα που ανακάλυψα ήταν ότι όταν του ζήτησα να δημιουργήσει μια δημιουργία κωδικών πρόσβασης, δεν εισήγαγε τη βιβλιοθήκη String C. Το είπα και το πρόσθεσε στις εισαγωγές στην αρχή.

Αύξησα την καθολική μεταβλητή MAX_LENGTH σε 32 χαρακτήρες αντί για 16 και δημιούργησε τον ακόλουθο κωδικό πρόσβασης για μένα: aW3H0E(&FPQvG8B@4*()+4yRKTKB#U0O. Είναι ασφαλές να πούμε ότι λειτουργεί!

Αριθμομηχανή σε Java

Ένα αρκετά βασικό πρόγραμμα με το οποίο πολλοί άνθρωποι έχουν εμπειρία στην Java είναι η δημιουργία μιας αριθμομηχανής. Είναι μια από τις πρώτες προκλήσεις που θα αντιμετωπίσουν οι επιστήμονες υπολογιστών στην καριέρα τους στον προγραμματισμό, ανεξάρτητα από τη γλώσσα που καταλαμβάνουν πρώτη. Ζήτησα από το ChatGPT να γράψει μια αριθμομηχανή σε Java που να χρησιμοποιεί τουλάχιστον δύο κλάσεις και λειτούργησε τέλεια στην πρώτη προσπάθεια.

Αυτή είναι η κατηγορία αριθμομηχανής:

Αυτή είναι η κύρια τάξη:

Η δημιουργία και των δύο αυτών κλάσεων στο IDE μου, το IntelliJ, και η εκτέλεση της κύριας κλάσης έχει ως αποτέλεσμα μια τέλεια εργασία πρόγραμμα αριθμομηχανής που παίρνει δύο αριθμούς και έναν τελεστή για πρόσθεση, αφαίρεση, πολλαπλασιασμό ή διαίρεση.

Το ChatGPT είναι αξιοπρεπές στον προγραμματισμό

Αν και δεν θα βασιζόμουν στο ChatGPT για να κάνει τα πάντα για εσάς, είναι σαφές ότι μπορεί να κάνει πολύ καλή δουλειά στη δημιουργία προγραμμάτων και να λαμβάνει υπόψη τις κριτικές όταν υπάρχουν προβλήματα. Με έκπληξη είδα να προτείνει έναν αλγόριθμο κατακερματισμού ως τρόπο διάκρισης μεταξύ μικρών αλλαγών σε μια ιστοσελίδα, αλλά εκτός από αυτό, δεν δυσκολεύτηκε καθόλου με τις πιο βασικές εργασίες. Ακόμη και στην περίπτωση του προγράμματος Python, είχε τη σωστή ιδέα από την αρχή και, σε πιο στατικές σελίδες, θα είχε λειτουργήσει τέλεια.

Φυσικά, το ChatGPT δεν πρόκειται ακριβώς να αντικαταστήσει τους προγραμματιστές σύντομα, αλλά είναι καθ' οδόν να γίνει ένα πολύ καλό εργαλείο στο εργατικό δυναμικό. Copilot του GitHub, για παράδειγμα, κάνει χρήση του GPT τεχνολογία που βοηθά τους ανθρώπους να γράφουν κώδικα και θα εξελίσσεται μόνο όσο περνάει ο καιρός. Ακόμα κι αν είστε αρχάριος προγραμματιστής, αυτό το είδος εργαλείου θα μπορούσε ενδεχομένως να σας βοηθήσει να μάθετε αν θα μπορούσατε να το εμπιστευτείτε πλήρως, αλλά μερικές φορές κάνει περίεργα λάθη, όπως έχουμε δει.

Φυσικά, τα παραδείγματα που δίνονται εδώ είναι πολύ βασικά και οι περισσότεροι προγραμματιστές θα μπορούσαν να τα γράψουν αρκετά εύκολα, αλλά δεν είναι αυτό το θέμα. Είναι τρομερά καλό στο να δημιουργεί λύσεις σε απλές εργασίες και φαίνεται να χειρίζεται αξιοπρεπώς και πιο σύνθετες εργασίες. Είμαστε ενθουσιασμένοι που βλέπουμε πού πηγαίνουν εργαλεία όπως αυτά στο μέλλον και βοηθούν τους ανθρώπους να βελτιώσουν τις δεξιότητές τους.