Le capacità dei chatbot AI stanno crescendo rapidamente. Ma possono ancora codificare e quale è meglio nel compito?
Quando Google ha lanciato Bard, la sua risposta a ChatGPT di OpenAI, mancava una funzionalità molto apprezzata dagli utenti di ChatGPT: la capacità di scrivere codice. Tuttavia, a seguito della richiesta popolare, Google ha dato a Bard un colpo al braccio, consentendogli di scrivere codice in dozzine di linguaggi di programmazione.
Da allora Google ha parlato di quanto Bard sia in grado di scrivere ed eseguire il debug del codice, ma come si confronta con il fenomenale ChatGPT? Scopriamolo.
Chat GPT vs. Bardo: supporto linguistico
Ufficialmente, Bard di Google può funzionare con circa 20 linguaggi di programmazione. Questi consistono principalmente in quelli popolari come Typescript, Python, C++, Go, Java, JavaScript e PHP. Può ancora gestire opzioni meno popolari come Perl e Scala, ma non è necessariamente altrettanto efficiente.
ChatGPT d'altra parte non ha un elenco ufficiale delle lingue supportate. Il chatbot può gestire la maggior parte di ciò che Bard può gestire e dozzine di più. ChatGPT può scrivere, eseguire il debug e spiegare il codice in entrambi i linguaggi di programmazione più recenti e popolari e
lingue legacy meno popolari come Fortran, Pascal, BASE e COBOL.Tuttavia, il supporto non significa necessariamente competenza. Abbiamo provato alcune semplici attività in linguaggi selezionati come PHP, JavaScript, BASIC e C++. Sia Bard che ChatGPT sono stati in grado di offrire i linguaggi di programmazione più diffusi, ma solo ChatGPT è stato in grado di mettere insieme in modo convincente programmi in linguaggi meno recenti. Quindi, in termini di supporto linguistico, diamo la vittoria a ChatGPT.
Chat GPT vs. Bard: accuratezza e qualità del codice
Supponiamo che tu chieda a ChatGPT o Bard di generare un pezzo di codice che fa qualcosa e sputa dozzine di righe di codice in pochi secondi. Facile, vero? Ma quanto spesso funzionerà quel codice? Diciamo che il codice funziona; quanto è buono quel codice?
Per confrontare l'accuratezza e la qualità del codice generato dai due chatbot AI, abbiamo dato a entrambi alcune attività di codifica da completare. Abbiamo chiesto a Bard e ChatGPT di generare una semplice app per elenchi di cose da fare utilizzando HTML, CSS e JavaScript. Dopo aver copiato e incollato e visualizzato il codice generato in un browser, l'app di ChatGPT si presentava così:
Utilizzando la versione di ChatGPT, puoi aggiungere una nuova attività, eliminare un'attività o contrassegnare un'attività come completata. Bard di Google è stato anche in grado di generare un'app funzionale per l'elenco delle cose da fare. Tuttavia, puoi solo aggiungere un'attività, senza alcun mezzo per eliminarla o contrassegnarla come completata. Anche l'interfaccia di Bard sembrava meno attraente; ecco come appariva:
Abbiamo ripetuto il test, questa volta chiedendo a entrambi i chatbot di ricreare le schede della sequenza temporale di Twitter. Ecco il risultato di ChatGPT:
Ed ecco cosa ha prodotto Bard di Google:
Entrambi i risultati hanno i loro pro e contro. Saremmo andati con i risultati di Bard se avesse avuto i pulsanti Mi piace, Retweet e Commento. Tuttavia, stranamente li ha lasciati fuori, quindi ti faremo decidere qual è il migliore. Naturalmente, la qualità del codice non riguarda solo l'estetica di ciò che produce.
Analizzando il codice generato da entrambi i chatbot, quello di Bard sembrava essere più orientato agli oggetti mentre quello di ChatGPT era più procedurale. La nostra scelta del linguaggio di programmazione potrebbe influenzare questo, ma ChatGPT sembrava scrivere codice più pulito quando necessario. Inoltre tende a generare soluzioni più complete, portando in genere a più righe di codice.
In termini di qualità del codice generato, assegniamo questo round a ChatGPT.
Chat GPT vs. Bard: debug e rilevamento degli errori
Errori e bug sono come enigmi che i programmatori amano odiare. Ti faranno impazzire, ma risolverli è abbastanza soddisfacente. Quindi, quando ti imbatti in bug nel tuo codice, dovresti chiamare Bard o ChatGPT per chiedere aiuto? Per decidere, abbiamo dato a entrambi i chatbot AI due problemi di debug da risolvere.
In primo luogo, abbiamo chiesto a entrambi i chatbot di risolvere un errore logico in un codice PHP. Gli errori logici sono notoriamente più difficili da individuare perché il codice che li contiene non sembra sbagliato, semplicemente non fa ciò che il programmatore intendeva.
Il codice in questo screenshot viene eseguito, ma non funziona. Riesci a individuare l'errore logico? Abbiamo chiesto aiuto a Bard di Google e sfortunatamente il chatbot non è riuscito a individuare l'errore logico nel codice. È interessante notare che Bard di Google in genere ha tre tentativi di bozza per risolvere un problema, abbiamo controllato tutte e tre le bozze ed erano tutte sbagliate.
Abbiamo quindi chiesto aiuto a ChatGPT e ha immediatamente individuato l'errore logico.
Lo script PHP non presentava errori di sintassi, ma la logica nel file èDispari() la funzione era arretrata. Per vedere se un numero è dispari, in genere controlli se ha un resto dopo la divisione per 2. Se lo fa, è un numero dispari.
Sebbene Bard non fosse neanche lontanamente in grado di identificare questo bug, ChatGPT lo ha rilevato al primo tentativo. Abbiamo provato altri quattro errori logici e Bard è stato in grado di individuare l'errore solo in un'istanza mentre ChatGPT ha fornito costantemente. Dopo essere passato al codice con errori di sintassi, Bard di Google è riuscito a tenere il passo, identificandoli in quasi tutti i campioni presentati.
Bard di Google è relativamente bravo nel debug, ma daremo ancora una volta questa vittoria a ChatGPT.
Chat GPT vs. Bard: Consapevolezza del contesto
Una delle maggiori sfide con l'uso dei chatbot AI per la codifica è la loro consapevolezza del contesto relativamente limitata. Chiedi al chatbot di scrivere del codice, poi altro ancora... lungo la linea, dimentica completamente che la prossima cosa che sta costruendo fa parte dello stesso progetto.
Ad esempio, supponi di creare un'app Web con un chatbot AI. Gli dici di scrivere il codice per la tua pagina HTML di registrazione e login, e lo fa perfettamente. E poi, mentre continui a costruire, chiedi al chatbot di generare uno script lato server per gestire la logica di accesso. Questa è un'attività semplice, ma a causa della limitata consapevolezza del contesto, potrebbe finire per generare uno script di accesso con nuove variabili e convenzioni di denominazione che non corrispondono al resto del codice.
Quindi, quale chatbot è più bravo a mantenere la consapevolezza del contesto? Abbiamo assegnato a entrambi gli strumenti lo stesso compito di programmazione: un'app di chat che sappiamo che ChatGPT può già creare.
Sfortunatamente, Bard semplicemente non è riuscito a completare l'app perché ha perso traccia del contesto del progetto dopo essere rimasta inattiva per un po' di tempo. Pur essendo soggetto alle stesse condizioni, ChatGPT ha completato l'app. Ancora una volta, in termini di consapevolezza del contesto, lo diamo a ChatGPT.
Chat GPT vs. Bard: Risoluzione dei problemi
A questo punto, Bard di Google manca in molti modi. Ma può finalmente segnare una vittoria? Mettiamo alla prova le sue capacità di problem solving. A volte hai solo un problema, ma non sei sicuro di come rappresentarlo a livello di codice, figuriamoci come risolverlo.
Situazioni come questa sono quando i chatbot AI come Bard e ChatGPT possono tornare molto utili. Ma quale chatbot ha migliori capacità di risoluzione dei problemi? Abbiamo chiesto a entrambi di "scrivere un codice JavaScript che conta quante volte una determinata parola appare in un testo."
Bard ha risposto con un codice funzionante, anche se fallisce quando i segni di punteggiatura sono vicini a una parola o la parola appare in casi diversi.
Abbiamo lanciato lo stesso problema su ChatGPT ed ecco il risultato:
Il codice di ChatGPT adotta un approccio più robusto e accurato per contare le occorrenze di parole in un testo. Considera i limiti delle parole e la distinzione tra maiuscole e minuscole, gestendo correttamente la punteggiatura e fornendo risultati più affidabili. Ancora una volta, in termini di risoluzione dei problemi, lo diamo a ChatGPT.
Poiché Google Bard ha praticamente perso in ogni parametro che abbiamo utilizzato per il confronto, abbiamo deciso di dargli una possibilità di riscatto. Abbiamo chiesto al chatbot "Quale è migliore nella codifica? ChatGPT o Google Bard?"
Sebbene concordasse sul fatto che ChatGPT fosse più creativo, Bard ha affermato che il suo concorrente aveva maggiori probabilità di commettere errori e che ChatGPT produceva codice meno efficiente, non ben strutturato e generalmente meno affidabile. Dobbiamo dissentire!
ChatGPT è in una lega a sé stante
Bard di Google ha goduto di molto clamore, quindi potrebbe essere una sorpresa vedere quanto manca rispetto a ChatGPT. Sebbene ChatGPT abbia chiaramente avuto un vantaggio, potresti pensare che le enormi risorse di Google lo aiuterebbero a erodere quel vantaggio.
Nonostante questi risultati, non sarebbe saggio cancellare Bard come aiuto alla programmazione. Sebbene non sia potente come ChatGPT, Bard ha ancora un pugno significativo e si sta evolvendo a un ritmo rapido. Date le risorse di Google, l'emergere di Bard come degno rivale è sicuramente una questione di tempo.