Categorie
etica tecnologia

Leggere, capire e usare una fonte

Leggere, capire e usare una fonte sono tecniche che vanno allenate e studiate. Fanno la differenza tra un buon articolo e uno pessimo. Sono anche motivo di valutazione di un esame o un paper di ricerca.

Partiamo subito con un esempio di cattivo utilizzo di una fonte, derivata da una ricerca, che ha fatto il giro dei siti specializzati di informatica e programmazione. Tema che presupporrebbe una conoscenza media più elevata della norma su statistiche e confronti, ma tutti commettiamo degli errori.
Ecco qui la pietra dello scandalo (qui il paper):

Fonte usata per confrontare il consumo dei principali linguaggi di programmazione
Fonte usata per confrontare il consumo dei principali linguaggi di programmazione

Questa immagine è spesso usata per criticare le pessime performance del linguaggio Python e dei framework che lo utilizzano. In particolare i framework di Intelligenza Artificiale, e il loro impatto ambientale. Fermandoci alla singola immagine non ci sarebbe nulla da dire. Non c’è dubbio che linguaggi più moderni, come Rust e Go, lo battano facilmente e per questo hanno impatti ambientali minori.
Allora dove nasce il problema?

Volendo fare gli avvocati del diavolo potremmo dire che proprio perché tutti sanno che Python è lento (non lo si sceglie per le performance ma per la versatilità), i framework di AI usano Python ad alto livello ma nel core abbiano C e C++, ma il punto non è difendere Python.

La pecca maggiore la si nota andando a vedere per intero la ricerca e trovare questa altra tabella qui:

Le versioni usate nel paper di ricerca che rendono necessario leggere, capire e usare una fonte nel modo corretto
Le versioni usate nel paper di ricerca che rendono necessario leggere, capire e usare una fonte nel modo corretto

Sono le versioni usate nella ricerca a non convincere. Poniamoci la domanda, perché queste versioni? Se andiamo a controllare i rispettivi siti web vediamo che non sono tutte dello stesso periodo. La versione di PHP è di aprile 2017, mentre quella di Go è di luglio 2016. C# è addirittura una versione preview, di settembre 2016, della prima release. Il Python è di gennaio 2017. Nel paper c’è la risposta? L’avete letto?

Perché, prendendo come base aprile 2017 non sono stati usati Go 1.8.1 e C# 1.0.4 (o, volendo continuare a usare versioni in sviluppo, una beta della 2)? Prima di sparare su Python, possiamo osservare come se la cava la versione 3.6.1? Io non ne ho idea, anche se mi aspetto che stia sempre lì, ma spero qualcuno faccia girare il codice sorgente (su GitHub) per avere una tabella su cui discutere meno sbilanciata e obsoleta.
Ha senso nel 2023 citare un paper sulle performance del 2017, in un campo, l’informatica, dove sei mesi sembrano ere geologiche?

Data della release di PHP usata nella ricerca
Data della release di PHP usata nella ricerca

Quindi, andando oltre questo esempio, perché poco ci importa di C#, Python o PHP, riportare una fonte senza averla capita o per avvalorare le nostre tesi non ci fa fare una bella figura se quella fonte non è autorevole, ancora valida, o può facilmente essere messa in discussione, anche se la scelta della stessa è causata da un bias e non dalla nostra volontà, o dalla fretta.

Rileggiamo sempre tutto quello che abbiamo scritto con calma, comprese le fonti, e, se possibile, facciamo leggere quanto scritto da una persona che non abbia le nostre competenze. Ci aiuterà ad avere un punto di vista diverso e a trovare qualcosa che abbiamo dato per scontato.