Megathread sull'IA

A corto di argomenti, amico?
Fammi sapere se hai ancora bisogno di aiuto con la migrazione del forum, comunque…

Considera la nota precedente come un avvertimento ufficiale. Questo atteggiamento e questo linguaggio non sono tollerati qui.

Beh, ho teso un ramo d’olivo e mi sono scusato per le frecciatine personali, e la risposta è stata solo derisione. Quindi questo è quanto…

Anche se mi dispiacerebbe essere escluso da questo forum (a dire il vero, stavo per inviare delle correzioni ad alcune inesattezze nelle pagine di ASIC - CPCWiki, che ho notato grazie all’IA mentre scrivevo il mio core FPGA per GX4000), tengo ancora di più a dire la verità. Chiaramente non sono un abile diplomatico e sarei più che felice di stemperare i toni, ma non transigo sui fatti che riguardano un argomento che conosco piuttosto bene. Se ritenete che questo sia un problema, non posso certo impedirvi di fare il vostro lavoro da admin…

A proposito, potreste trovare o meno rilevante per l’argomento la notizia di oggi:

Il kernel Linux sta rimuovendo l’obbligo di contrassegnare i contributi di codice generati dall’IA.

Negli ultimi 10 mesi, siamo stati in grado di monitorare il tasso crescente di codice IA nel kernel (con oltre il 20% di tutti i contributi di codice generati dall’IA, finora a ottobre)… lo sappiamo grazie al tag IA «Assisted-by» richiesto dal kernel.

Con la rimozione di questo requisito, non saremo più in grado di monitorare efficacemente il livello di sviluppo dell’IA all’interno di Linux.

Questa modifica è stata concordata (dalla maggioranza degli sviluppatori del kernel) al Linux Maintainers Summit, tenutosi la scorsa settimana a Praga.

I motivi dichiarati per la rimozione dell’obbligo di «dichiarazione dell’IA» sono vari, ma si riducono a queste tre argomentazioni:

  1. L’uso dell’IA per scrivere il codice del kernel Linux sta diventando così diffuso che dichiararlo è superfluo. (Uno sviluppatore l’ha paragonato a dichiarare quale editor di testo è stato usato).

  2. Gli sviluppatori del kernel Linux ritengono che la maggior parte di coloro che usano l’IA… in ogni caso non rispetti effettivamente la regola di etichettare i propri contributi come tali.

  3. Altri sviluppatori ritengono che si tratti di «pubblicità gratuita» per varie piattaforme di IA.

Questa modifica non è stata ancora ufficialmente integrata, ma (considerando che è già stata concordata e sembra avere il supporto dei maintainer di massimo livello della Linux Foundation) si prevede che ciò avverrà a breve.

Nessuna derisione; e a dire il vero le tue parole successive a quel «ramo d’ulivo» hanno mostrato quanto fossi sincero. Se non altro, puoi sempre segnalare un post offensivo.

A proposito di rami d’ulivo: immagino tu ne sappia ben poco, ma nell’antica Grecia offrire un ramo d’ulivo congelava la violenza immediata, ma non garantiva l’immunità, non perdonava un crimine né costringeva una città a concedere la cittadinanza. Per di più, secondo il diritto comune (Dracone/Solone), offrirne uno proteggeva un assassino dalla vendetta immediata, ma non lo metteva al riparo da un’ulteriore punizione formale.

In altre parole, dire «ops, mi dispiace» non vale un cazzo se non sei sincero e mantieni lo stesso atteggiamento.

Infine, sembri pensare che serva essere un diplomatico per non risultare offensivi o non ricorrere a insulti diretti. Beh, ho una notizia per te…

PS: l’analogia con il kernel Linux è ridicola. Non è che esista una repo con molteplici kernel che uno può provare e magari voler sapere se sono stati sviluppati a intuito (vibe coded) o meno

2 Mi Piace

reno08, da parte mia, voglio solo chiederti scusa se qualcosa di ciò che ho detto ti ha offeso.

1 Mi Piace

Per quel che vale, sottoscrivo in pieno l’affermazione secondo cui l’IA è come avere degli sviluppatori junior (o persino un team di sviluppatori junior) in grado di lavorare davvero, davvero velocemente. E non credo che le iniziative legate al kernel Linux cambino le cose.

Un valido team leader, con una presa salda sul proverbiale timone, può ottenere un sacco di lavoro davvero utile persino da sviluppatori alle primissime armi. Richiede diligenza, un attento monitoraggio dei risultati e la capacità di individuare rapidamente le cose di scarsa qualità, facendole rifare quando necessario. Sono esattamente le stesse competenze richieste per tirare fuori il meglio dall’IA.

Se, d’altro canto, lasci briglie sciolte all’IA e ti limiti a darle indicazioni vaghe, ti ritroverai con una zuppa di codice a malapena funzionante, incredibilmente difficile da comprendere e che sembra più che altro un insieme di esempi malamente copiati da Stack Overflow. Proprio come un gruppo di junior lasciati a se stessi.

E se pensi che io sia contro l’IA, beh, allora mi sa che non hai seguito questo thread con molta attenzione.

6 Mi Piace

Concordo al 100% con quanto detto da @AndyCadley.

1 Mi Piace

Punto di vista… interessante?

1 Mi Piace

A dire il vero sembra una conseguenza piuttosto inevitabile. Tuttavia, non sono sicuro che l’essere open o closed source faccia davvero la differenza. L’IA è diventata così brava a disassemblare il codice e a riconvertirlo in sorgente che la distinzione non sussiste necessariamente.

Sarà interessante vedere se la questione finirà in tribunale, perché l’intero concetto di una re-implementazione «clean room» tra agenti IA che si coordinano ha il potenziale per automatizzare la clonazione su larga scala del software in un modo finora inimmaginabile.

2 Mi Piace

Beh, il sito linkato sopra è più un commento sarcastico che qualcosa di reale; tuttavia fa la satira di una possibile realtà per cui potremmo doverci preparare. L’IA (e la «massima liberalizzazione» che porta con sé) segnerà forse la fine del software open source, ad esempio?

2 Mi Piace

Immagino che sarà la stessa cosa per le produzioni per CPC.

E nelle ultime due settimane, con tutte le uscite che stanno spuntando fuori, spesso non so cosa pensarne. Vedo molti PoC davvero interessanti o giochi promettenti che sono chiaramente realizzati con l’IA — ma continuano a piacermi o a sembrarmi interessanti, e questo di solito è legato a una qualche forma di sforzo significativo impiegato dallo sviluppatore. Non si tratta per forza di codice Z80 o di grafica fatta a mano, ma di una sorta di «cura».

E poi ci sono produzioni che vengono «pubblicate» e, nell’istante esatto in cui le vedo, le ascolto — e le provo, mi danno sui nervi, perché è evidente che si tratta solo di robaccia sputata fuori dall’IA senza alcuna cura.

L’IA verrà usata sulla stragrande maggioranza delle uscite, quindi appiccicarci un’etichetta probabilmente non servirà a nulla, visto che ormai è la norma.

Forse dovremmo segnalare quelle produzioni realizzate senza, ad esempio con un’etichetta «fatto a mano» per i lavori che non fanno alcun uso, o almeno nessun uso diretto, dell’IA.

E penso che dovremmo evidenziare quelle uscite create con il minimo indispensabile di cura e sforzo — e senza alcuna intenzione di migliorarle. Si meritano l’etichetta «fuffa da IA» («AI slop»).

A me sembra piuttosto ovvio. L’IA usata come strumento di sviluppo va benissimo. L’IA per sviluppare interamente un gioco o per riversare roba a palate sulla piattaforma, no.

L’IA è bravissima a ordinare le cose, a fare calcoli e a sbrigare compiti banali. Non c’è alcun motivo per cui dovresti dichiararlo, esattamente come non dichiareresti di aver usato un’utilità di conversione degli sprite. È solo un altro strumento per gli sviluppatori.

Ma riversare a forza giochi del Master System sulla piattaforma? Generare codice senza avere la benché minima idea di come funzioni? Produrre un gioco senza mai toccare una riga di codice?

La mia preoccupazione più grande è che siti come CPC Power vengano inondati di porting spazzatura invece che di progetti in cui le persone si sono davvero impegnate.

Pensavo che la gente programmasse su queste macchine perché il lavoro quotidiano da programmatori li allontanava fin troppo dall’hardware. Ma programmare con l’IA è quanto di più lontano dall’hardware si possa immaginare.

7 Mi Piace

È esattamente quello che penso anch’io — per il futuro.

È una questione di percezione, non di limiti rigidi e fisici. Quindi, se e quando ci abitueremo all’IA, potremo ribaltare la situazione.

1 Mi Piace

Linus Torvalds è intervenuto di nuovo e ci sta andando giù un po’ pesante.

Nemmeno Lui può avere sempre ragione

(e questo è un suo post palesemente idiota, che ignora intenzionalmente il punto e cade nella classica fallacia dell’ad absurdum)

1 Mi Piace

Il lato negativo – dal mio punto di vista – è che non si tratta solo di satira, ma anche di un modello di business che potrebbe funzionare davvero. L’effetto non danneggerà soltanto l’open source, ma anche lo sviluppo meticoloso del software proprietario. Dopo un po’, nessuno farà più alcuno sforzo non riconosciuto o non retribuito, e rimarrà solo robaccia.

Concordo, questo post è (per lo più) privo di senso. Dai a un incompetente un editor di testo, e non combinerà nulla. Dagli un compilatore, e continuerà a non combinare nulla. Dagli un IDE con autocompletamento non basato su IA, e ancora non combinerà nulla. Dagli però un agente IA, e potrebbe produrre risultati che a prima vista sembrano validi, ma che contengono errori e backdoor in una delle parti più critiche per la sicurezza del software.

L’IA probabilmente aiuta un esperto, ma aiuta anche chi capisce ben poco della tecnologia sottostante a spacciarsi per esperto.

Per essere onesti, voglio citare anche una frase importante di questo post:

Il tipo di aspettativa che ho è che le persone […] capiscano quello che stanno facendo.

Avere aspettative è un bene, ma verificare sarebbe meglio. L’IA complica tutto questo.

2 Mi Piace

Sei sicuro che Linus abbia detto ciò che viene dedotto qui?

Linux si concentra su persone competenti, giusto? Quindi, «dai a una persona incompetente» non è ciò di cui sta parlando.

Non sta forse parlando di un’altra situazione? «Dai a una persona competente…»:

  • un editor di testo → può modificare codice ASM, meglio che scrivere senza modificare
  • un compilatore → può scrivere codice ad alto livello, più produttivo dell’ASM
  • un IDE → può essere più produttiva rispetto a un semplice editor+compilatore
  • un agente IA → può essere più produttiva, delegando il lavoro noioso all’IA pur mantenendo il controllo (stiamo imparando come farlo, e alcuni lo fanno davvero male)

Il punto di Linus non è forse che l’IA può aiutare i programmatori competenti a creare codice migliore?

Sì, e vedo due problemi pratici:

  • Arriva una persona sconosciuta e mostra qualcosa. In precedenza, solo chi era in qualche modo competente poteva mostrare software non banale. Ora che l’IA rende facile per chiunque mostrare cose, è più difficile capire se quella persona sapesse davvero cosa stava facendo.
  • Fare la revisione del codice (code review) è difficile e richiede tempo. Ora che l’IA rende facile generare un sacco di codice, la capacità di revisione è diventata insufficiente ed è più difficile giudicare se il codice sia valido.
1 Mi Piace

Sì, concordo che probabilmente il suo intento sia questo. Immagino che si trovi in una bolla di persone davvero competenti e non abbia nemmeno pensato che la sua tesi ora si applichi anche ad altri, meno competenti. La frase citata («le persone [devono] capire cosa stanno facendo») è piuttosto sintetica rispetto ai dettagliati e assurdi esempi citati.

Ho sentito spesso questo argomento. Ribatterei dicendo: se programmare diventa noioso, allora c’è un difetto nella scelta degli algoritmi, delle librerie, dell’architettura o dell’organizzazione. Concentrati sul risolvere la causa principale, non i sintomi. Altrimenti si accumula debito tecnico (o di altro tipo) e lo stesso problema si ripresenterà continuamente. Purtroppo, fin troppo spesso la pressione dei tempi preserva e peggiora i problemi.

Alcuni di noi lavorano in contesti in cui ciò purtroppo non è possibile. E spesso le cause scatenanti sono, beh, le persone (orrore!)