ChatGPT è spaventosamente bravo a scrivere codice.
Tutti ne hanno sentito parlare ChatGPT in questa fase. È un chatbot basato sull'intelligenza artificiale che utilizza modelli di elaborazione del linguaggio naturale per produrre risposte a domande complicate. Queste risposte potrebbero non essere necessariamente sempre accurate, ma tendono ad essere abbastanza dettagliate da poter verificare le risposte che ti danno abbastanza facilmente. E se dovessi prendere ChatGPT e provare a scrivere codice con esso?
A quanto pare, è qualcosa che puoi fare con vari gradi di successo, a seconda delle lingue che desideri utilizzare e di ciò che desideri ottenere con esse. L'ho messo alla prova per vedere come andrebbe bene in diversi linguaggi di programmazione per completare compiti diversi. Inoltre, non apporterò alcuna modifica al codice prodotto da ChatGPT, lo guiderò solo a creare codice funzionante se il codice che crea non funziona.
Ho usato tre linguaggi con cui ho già familiarità per mettere alla prova ChatGPT: Python, C e Java. I risultati sono stati particolarmente sorprendenti in quanto ha avuto qualche difficoltà con Python a causa della natura astratta di ciò che gli stavo chiedendo di fare, ma ha gestito con facilità C e Java di base. ho anche
creato un repository GitHub con tutto il codice qui accessibile in modo che tu possa provarlo tu stesso.Controllo automatico delle pagine in Python
Python è il mio linguaggio di programmazione preferito con cui lavorare, e questo grazie alla potenza che ha e alla sua semplicità d'uso. In passato ho scritto molti strumenti in Python per automatizzare parti del mio flusso di lavoro e la mia tesi di laurea in informatica è stata persino realizzata interamente tramite Python. Ho chiesto a ChatGPT di scrivere un programma in grado di scansionare una pagina Web alla ricerca di modifiche su base periodica, e per lo più ha funzionato.
Il problema con il codice sopra che mi dà è che non simula un vero browser. I siti Web controllano un parametro nel tuo browser chiamato "agente utente" e questo definisce il tipo di browser che stai utilizzando o se sei un bot. Molti siti Web non accettano connessioni che non definiscono un agente utente e mi sono imbattuto in questo quando l'ho indicato su XDA. Gli ho chiesto di aggiungere intestazioni personalizzate alla richiesta per simulare un vero browser e ha rispettato.
Il codice sopra indicato funziona per i siti Web statici, ma il problema è che gran parte del contenuto che leggi online è dinamico. Se una pagina restituisce l'ora corrente, ad esempio, da qualche parte nella pagina, il codice sopra dirà sempre che la pagina è cambiata ogni volta che si aggiorna. Quando l'ho fatto notare a ChatGPT, si è confuso e mi ha dato una soluzione del tutto errata al problema.
Quanto sopra è una spiegazione errata di come funzionano gli hash. Il punto di un hash è che una piccola modifica all'input si tradurrà in una grande differenza nell'hash, in quanto due hash sono sostanzialmente incomparabili. Quando gli ho detto che era un'affermazione errata suggerire che gli hash fossero il modo migliore per confrontare e scansionare le modifiche, ha risposto con delle scuse e mi ha dato qualcosa che fatto lavoro.
L'unico problema che ho scoperto con il codice sopra è che per i siti Web più grandi lo è computazionalmente costoso in quanto utilizza l'elaborazione del linguaggio naturale per confrontare e calcolare la differenza fra loro. Tuttavia, una soglia del 5% nei contenuti modificati è sufficiente per la maggior parte dei siti Web se stai cercando di verificare la presenza di aggiornamenti e puoi regolare la soglia se necessario. C'è voluto un po', ma alla fine è arrivato.
Ci sono molte ragioni per cui potresti volere un web scraper come uno di questi, e mentre ci sono strumenti là fuori che possono farlo, è bello crearne uno tuo. Puoi usarli per il monitoraggio dei pacchi o, nel mio caso, per cercare nuove proprietà che vengono messe in affitto sui siti di proprietà locali.
Generatore di password in C
Poiché la sicurezza è di gran moda di recente, è importante utilizzare password sicure e utilizzare anche l'autenticazione a due fattori. Se hai difficoltà con la parte della password sicura, è abbastanza facile scrivere un generatore di password in C. ChatGPT lo ha gestito abbastanza facilmente e l'unico problema che ho scoperto è stato che quando gli ho chiesto di creare un generatore di password, non ha importato la libreria String C. Gliel'ho detto e l'ha aggiunto alle importazioni all'inizio.
Ho aumentato la variabile globale MAX_LENGTH a 32 caratteri invece di 16 e ha generato la seguente password per me: aW3H0E(&FPQvG8B@4*()+4yRKTKB#U0O. Sicuro di dire che funziona!
Calcolatrice Java
Un programma piuttosto semplice con cui molte persone hanno esperienza in Java è la creazione di una calcolatrice. È una delle prime sfide che gli scienziati informatici dovranno affrontare nella loro carriera di programmatori, indipendentemente dalla lingua che iniziano per prima. Ho chiesto a ChatGPT di scrivere una calcolatrice in Java che facesse uso di almeno due classi, e ha funzionato perfettamente al primo tentativo.
Questa è la classe della calcolatrice:
Questa è la classe principale:
La creazione di entrambe queste classi nel mio IDE, IntelliJ, e l'esecuzione della classe principale si traduce in un lavoro perfettamente funzionante programma di calcolatrice che accetta due numeri e un operatore per addizione, sottrazione, moltiplicazione o divisione.
ChatGPT è decente nella programmazione
Anche se non farei affidamento su ChatGPT per fare tutto per te, è chiaro che può fare un ottimo lavoro nella creazione di programmi e nel prendere in considerazione le critiche quando ci sono problemi. Sono stato sorpreso di vederlo suggerire un algoritmo di hashing come un modo per discernere tra piccoli cambiamenti in una pagina web, ma a parte questo, non ha avuto problemi con le attività più basilari. Anche nel caso del programma Python, aveva l'idea giusta fin dall'inizio e, su pagine più statiche, avrebbe funzionato perfettamente.
Naturalmente, ChatGPT non sostituirà esattamente i programmatori in qualunque momento presto, ma sta per diventare un ottimo strumento nella forza lavoro. Copilota di GitHub, ad esempio, fa uso di GPT tecnologia per aiutare le persone a scrivere codice, e diventerà sempre più avanzato col passare del tempo. Anche se sei un programmatore principiante, questo tipo di strumento potrebbe potenzialmente aiutarti a imparare se potessi fidarti completamente, ma a volte commette strani errori, come abbiamo visto.
Naturalmente, gli esempi forniti qui sono molto semplici e la maggior parte dei programmatori sarebbe in grado di scriverli abbastanza facilmente, ma non è questo il punto. È spaventosamente bravo a creare soluzioni per compiti semplici e sembra gestire decentemente anche compiti più complessi. Siamo entusiasti di vedere dove strumenti come questi andranno in futuro e aiutare le persone a migliorare le proprie competenze.