il problema è che questi co-worker ci sono e se usati con giudizio
aumentano di molto la produttività, quindi la gente li sta usando
pochi rinunceranno a farsi fare del boilerplate code o dei bei commenti
perché questo non sarebbe etico, I'm afraid ...
ed essendo l'etica una mediazione sociale (a meno che .. ma vabbè), il
resto del ragionamento lo possiamo lasciare come esercizio
piuttosto mi chiedo come facciano quelli di Gentoo a capire esattamente
come è prodotto il codice che i contributori committano
devono proprio essere grandi accher! :-))

G.


On Wed, 24 Apr 2024 at 01:41, Giacomo Tesio <giac...@tesio.it> wrote:

> Ciao Claudio,
>
> Il 23 Aprile 2024 23:15:29 CEST, Claudio Agosti <
> claudio.ago...@hermescenter.org> ha scritto:
> > Ciao Giacomo; capisco le ragioni che ci sono dietro, ma devo dire che ho
> > provato un paio di sistemi di assistenza allo sviluppo.. ed il mio
> giudizio
> > finale è che sono d'aiuto anche ad uno sviluppo responsabile ed
> informato.
>
> Forse nel tuo caso riesci ad usarlo bene perché sei perfettamente
> consapevole che non
> si tratta di codice scritto da una mente che ne comprende il significato
> (come quello scritto
> da un collega in peer programming).
>
>
> Io l'ho visto usare a colleghi più giovani in peer programming, ed in più
> di un'occasione
> il tempo richiesto per il refactoring/debug del output è stato maggiore
> del tempo
> necessario a scrivere il codice da zero (sapendo cosa scrivere).
>
> I colleghi in questione tendevano a fidarsi troppo dei "suggerimenti" e
> soprattutto non imparavano
> dagli errori del software (forse perché non li vivevano come propri?)
> Non solo: in un caso ho provato a far notare al collega i problemi che
> avevamo osservato
> durante la sessione di pp, ottenendo una reazione piuttosto piccata, come
> se avessi messo
> in discussione la sua competenza invece di quella di Copilot.
>
> L'esperienza fin'ora mi ha lasciato un senso di diffidenza nei confronti
> del codice committato
> da chi lo usa (cui corrispondono review più lunghe, meticolose, faticose e
> nettamente più costose
> per l'azienda).
>
> Riflettendoci, potrebbe anche aver senso tenerne conto in fase di
> colloquio:
> a parità degli altri fattori, chi non necessita di LLM per scrivere il
> proprio codice
> ha probabilmente prospettive di crescita maggiori.
>
>
> Forse può essere utile se già conosci perfettamente il dominio del problema
> e il contesto di sviluppo (librerie, framework, servizi) nel cui caso
> riduce i tempi di battitura,
> ma onestamente non credo che siano davvero "tempi morti": l'atto di
> scrivere il codice
> "lentamente" serve a rileggerlo più volte, criticamente,  individuando in
> anticipo
> potenziali problemi.
>
> Inoltre, tale sforzo è utile a ricordarlo e dunque a debuggare mentalmente
> un problema
> più rapidamente.
>
> > sono assistito nel generare unit test più rapidamente.
>
> Sarà sfiga, ma non gli ho visto produrre in output test utili se non in
> casi esteremamente basilari
> (come funzioni pure di natura algebrica)
>
> Nella quasi totalità dei miei casi d'uso, la quantità dei mock da
> configurare rende semplicemente
> inutile quei tool.
>
>
> Leggermente più utile è nella scrittura di esempi di utilizzo per la
> documentazione (ma anche
> in quel caso, bisogna sempre rileggere e testare manualmente che la
> stronzata è dietro l'angolo.
>
>
> > Secondo me posizioni come quella di Gentoo, sono importanti per dare un
> > segnale, per fare un racconto di una comunità più attenta, ma poi sotto
> > sotto, se committo del codice scritto con l'aiuto di chatgpt + co-pilot,
> > costantemente rivisto da me... si può dire che il mio contributo sia
> stato
> > AI-generato?
>
> Sì beh... stai completamente ignorando il problema etico.
>
> Se copi il codice che ho donato al mondo sotto un copyleft forte (supponi
> AGPLv3 o
> magari Hacking License[1]) in un progetto distribuito con una licenza
> incompatibile
> (proprietaria o permissiva che sia), sei uno stronzo e lo sai.
>
> Se lo fai perché te lo suggerisce CopyALot, sei comunque uno stronzo, ma
> non lo sai.
>
> O meglio, scegli di non saperlo, di lavartene le mani perché... "AI".
>
>
> Non saprei dire, in termini di filosofia morale, se questo ti renda
> doppiamente colpevole o meno.
>
> Penso però si tratti di una di quelle situazioni in cui il soggetto è
> pienamente consapevole che dalle
> proprie azioni deriverà un danno a terzi, ma non conoscendo personalmente
> i terzi, se ne sbatte.
>
> Che sia usare Copilot per "risparmiare tempo", vendere criptomenate per
> non restare
> col cerino in mano o persino costruire proiettili, la questione mi sembra
> moralmente analoga.
>
>
> > Non mi sono limitato a premere tab, ma ho fatto un lavoro di selezione,
> > riflessione, e guida di quello che mi è stato suggerito. Mi sento
> comunque
> > autore e responsabile dei pezzi di codice scritti, anche se c'era un
> > "autocomplete" un bel po' più sofisticato del solito.
>
> Per questo dovresti analizzare con più attenzione le implicazioni etiche.
>
> Anche se produci sempre codice "open", quel codice deriva dal codice
> donato da altri perché
> sia sì riutilizzato, ma a certe condizioni, prima fra tutte
> un'attribuzione corretta [2]
>
> Tu stai inevitabilmente violando quelle condizioni.
>
>
> Se te ne senti davvero responsabile, come concili la consapevolezza di
> sfruttare il lavoro
> di migliaia di altri sviluppatori di software libero senza neppure citarli
> e la tua idea di te?
>
> La scarsa probabilità di essere beccati è rilevante dal punto di vista
> legale, ma da quello morale no.
>
>
> Per il software libero questi LLM costituiscono un danno secco: hai notato
> che Microsoft
> si è guardata bene dall'usare i propri sorgenti per programnare
> statisticamente GitHub Copilot?
>
> Perché?
>
> Poteva farlo senza incorrere in ovvie violazioni delle licenze di terze
> parti.
>
> E mediamente il codice Microsoft è più testato, documentato e...
> "professionale" di quello
> caricato su GitHub.
>
>
> Non l'ha fatto perché era ben consapevole che quel sorgente sarebbe stato
> distribuito
> ed incorporato dentro prodotti proprietari di concorrenti.
> E non voleva danneggiare sé stessa, per cui ha scelto di danneggiare tutti
> gli sviluppatori
> di software libero che sono individualmente più deboli (e collettivamente
> disorganizzati).
>
>
> Per questo, anche se funzionassero bene, preferisco non usare simili
> strumenti.
>
> E trovo eticamente molto grave favorirne lo sviluppo e
> normalizzarne/legittimarne l'utilizzo [3].
>
>
> Giacomo
>
> [1] <https://encrypted.tesio.it/documents/HACK.txt>
>
> [2] il noto caso di Quake è stato solo più facile da identificare, ma
> CopyALot funziona
> sempre così (al netto di string replace) e non può che funzionare così <
> https://peertube.opencloud.lu/w/eW497u3UYXmQwcQu9LYEDR>
>
> [3] vedi ad esempio <
> https://www.softwareheritage.org/2023/10/19/swh-statement-on-llm-for-code/
> >
> _______________________________________________
> nexa mailing list
> nexa@server-nexa.polito.it
> https://server-nexa.polito.it/cgi-bin/mailman/listinfo/nexa
>
_______________________________________________
nexa mailing list
nexa@server-nexa.polito.it
https://server-nexa.polito.it/cgi-bin/mailman/listinfo/nexa

Reply via email to