Buongiorno, ATTENZIONE, messaggio nella bottiglia per tutti gli utenti di fogli di calcolo sulla terra: se pensate che non stiate già /programmando/, vi sbagliate.
So che questo thread è già diventato abbastanza incasinato ma la superficialità con la quale a volte anche gli informatici trattano l'argomento in oggetto merita un approfondimento. Grazie Andrea per i tuoi commenti, che io intendo /approfondire/ un pochino affinché non rimangano dannosi equivoci. Andrea Trentini <andrea.trent...@unimi.it> writes: > On 27/10/2023 10:58, Giuseppe Attardi wrote: >>> On 26 Oct 2023, at 17:12, nexa-requ...@server-nexa.polito.it wrote: >>> Aneddoto: lo sapete che la politica di "austerity" implementata >>> dalla EU fu frutto di un errore in un foglio di calcolo [3], vero? >>> :-O ...già, i fogli di calcolo fanno già abbastanza danni, >> >> Non sono i fogli di calcolo a fare danni, ma chi li usa malamente e a >> sostegno di tesi preconcette: No, no, no, assolutamente no: il problema è che **non esiste un modo per usare bene i fogli di calcoro**, ovvero usare fogli di calcolo è /dannoso/, perché i fogli di calcolo _sono_ una forma di programma E il linguaggio (chiamatelo sistema, se volete) di programmazione usato per generarli... fa pena. Punto. Usare fogli di calcolo da solo l'illusione di aver sotto controllo il processo di programmazione, oltretutto incasina oltre ogni decenza la vita di chi (anche sè stessi) deve metter mano ai casini che i fogli di calcolo /nascondono/. ...ma a sQuola si continua a usare: "word" per il trattamento testi, "excel" per la gestione dei dati... e "power point" per le presentazioni; continuiamo a /fare/ del male, avanti! C'è un libro dal titolo «Cleaning Data for Effective Data Science» nel quale un intero capitolo è dedicato ai fogli di calcolo: «Spreadsheets Considered Harmful». [1] https://gnosis.cx/cleaning/tabular.html#spreadsheets Questo è un "executive summary" dei concetti: --8<---------------cut here---------------start------------->8--- * Non-enforced field/column identity * Computational opacity * Semi-tabular data * Non-contiguous data * Invisible data and data type discrepancies * User interface as attractive nuisance [...] spreadsheets in general, and Excel in particular, are anathema to effective data science. While perhaps not as much as in CSV files, a great share of the world's data lives in Excel spreadsheets. There are numerous kinds of data corruption that are the special realm of spreadsheets. [...] --8<---------------cut here---------------end--------------->8--- N.B.: qui si sta parlando _solo_ dei problemi legati all'uso del "paradigma" del foglio di calcolo per la gestione dei dati, poi ovviamente c'è tutto il resto dei /problemi/ che si applicano a tutti gli altri "paradigmi" (CSV, database) di gestione dati. [2] > il discorso "chi li usa malamente" non regge secondo me, è lo stesso > di chi difende il C dicendo che "basta saperlo usare e non si fanno > danni" Superficialmente il paragone con un linguaggio di programmazione potrebbe sembrare fuori luogo _ma_ grattando appena la superficie si "scopre" presto che il processo chiamato "gestione dei dati" è... programmazione: --8<---------------cut here---------------start------------->8--- In procedural programming (including object-oriented programming), actions flow sequentially through code, with clear locations for branches or function calls; even in functional paradigms, compositions are explicitly stated. In spreadsheets it is anyone's guess what computation depends on what else, and what data ranges are actually included. Errors can occasionally be found accidentally, but program analysis and debugging are *nearly* impossible. --8<---------------cut here---------------end--------------->8--- (rif. [1]) In altre parole, i programmi per lo sviluppo e l'esecuzione dei fogli di calcolo sono delle IDE (Integrated Development Environment) «for computation, organization, analysis and storage of data in tabular form.» [3] Dopotutto, il primo foglio di calcolo della storia, il LANPAR del 1969, per esteso si chiamava: «LANguage for Programming Arrays at Random». [...] > come esiste una reciproca influenza fra lingua e pensiero[1] esiste > anche una reciproca influenza fra linguaggio (e Excel lo è) Sì Excel è una IDE per fogli di calcolo con funzioni (librerie) e linguaggi incorporati (embedded), che combina i paradigmi di programmazione visuale con quelli di programmazione "macro" in Visual Basic e (in futuro?) Python. Nel 2021, con l'introduzione di LAMBDA, Excel è diventato un ambiente (contenente un linguaggio) di programmazione "turing complete": --8<---------------cut here---------------start------------->8--- Ever since it was released in the 1980s, Microsoft Excel has changed how people organize, analyze, and visualize their data, providing a basis for decision-making for the millions of people who use it each day. It’s also the world’s most widely used programming language. Excel formulas are written by an order of magnitude more users than all the C, C++, C#, Java, and Python programmers in the world combined. Despite its success, considered as a programming language Excel has fundamental weaknesses. --8<---------------cut here---------------end--------------->8--- (https://www.microsoft.com/en-us/research/blog/lambda-the-ultimatae-excel-worksheet-function/) Quindi: Excel è il linguaggio di programmazione di gran lunga più usato al mondo. ...giusto per ribadire in che stato siamo messi. > e sviluppo di strumenti (un foglio di calcolo è uno strumento) Uno strumento *sbagliato*, che /facilita/ alcune cose e /complica/ TUTTO il resto, **incluso** il _debuging_ (perché è programmazione, punto): --8<---------------cut here---------------start------------->8--- Most of what spreadsheets do to make themselves convenient for their users makes them bad for scientfic reproducibility, data science, statistics, data analysis, and related areas. Spreadsheets have apparent rows and columns in them, but nothing enforces consistent use of those, even within a single sheet. Some particular feature often lives in column F for some rows, but the equivalent thing is in column H for other rows, for example. Contrast this with a CSV file or an SQL table; for these latter formats, while all the data in a column is not necessarily good data, it generally must pertain to the same feature. Another danger of spreadsheets is not around data ingestion, per se, at all. Computation within spreadsheets is spread among many cells in no obvious or easily inspectable order, leading to numerous large-scale disasterous consequences [...] --8<---------------cut here---------------end--------------->8--- (rif. [1]) Se penso che MS ha creato un intero linguaggio di programmazione sul paradigma dei fogli di calcolo (https://en.wikipedia.org/wiki/Microsoft_Power_Fx), mi vengono i brividi. :-D Lo dico in un'altro modo: se avete necessità di imparare a programmare, invece che sbattervi per anni /inutilmente/ ad imparare (a programmare in) Excel - /anche/ con LAMBDA - o Microsoft Fx, vi consiglio _vivamente_ di usare un linguaggio sano, da Python in su va bene qualsiasi, R è il più indicato per il trattamento dei dati (si veda sotto). [...] > un foglio elettronico, come il C, è un linguaggio in cui è facilissimo > "spararsi in un piede"[2] e, a differenza del C, lo usano tutti, anche > chi non ha la minima idea della sua pericolosità ("error-proneness") Perché pensano che no, loro non stanno programmando (anche il più banale dei fogli di calcolo è un programma). I gravi difetti dei fogli di calcolo sono descritti anche su Wikipedia [3] https://en.wikipedia.org/wiki/Spreadsheet#Shortcomings: ci sono così tante cose _specifiche_ e ben documentate che non è possibile fare alcun riassunto, quello che c'è scitto è già un riassunto del riassunto. C'è una e una sola soluzione al complesso di problemi che l'uso dei fogli di calcolo introducono nel processo di gestione (che comprende l'elaborazione) dei dati: NON usarli. Quella per i fogli di calcolo è una dipendenza dalla quale si può e si deve guarire: --8<---------------cut here---------------start------------->8--- The perception of the ease-of-use of spreadsheets is to some extent an illusion. It is dead easy to get an answer from a spreadsheet, however, it is not necessarily easy to get the right answer. Thus the distorted view. The difficulty of using alternatives to spreadsheets is overestimated by many people. Safety features can give the appearance of difficulty when in fact these are an aid. The hard way looks easy, the easy way looks hard. [...] Perhaps the best alternative to spreadsheets for their computational function is the R language. R is a version of the S language that was first created at Bell Labs. Though this is often thought of as just being for statistics, that is not true. It was designed for computing with data — precisely what spreadsheets are used for. [...] Many people will gasp in horror at the thought of using a programming language instead of a spreadsheet. The fact is that a spreadsheet is a programming language — it is just one that you are used to. --8<---------------cut here---------------end--------------->8--- (https://www.burns-stat.com/documents/tutorials/spreadsheet-addiction/) --8<---------------cut here---------------start------------->8--- Main points: * what is done in spreadsheets can be done in R * the vast majority of people who could benefit from R are not using it * spreadsheets are dangerous for complex analyses * debugging spreadsheets is close to impossible * spreadsheets are slow * spreadsheets (for some reason) tend to have ugly graphics --8<---------------cut here---------------end--------------->8--- ( https://www.burns-stat.com/documents/presentations/3-5-reasons-to-switch-from-excel-to-r/ ) --8<---------------cut here---------------start------------->8--- There are many reasons to make the switch from spreadsheets to R. But for me there is only one elephant in the room. The elephant is safety --8<---------------cut here---------------end--------------->8--- (https://www.burns-stat.com/pages/Present/Excel_to_R_annotated.pdf) [...] Saluti, 380° > [1] evito sterili bibliografie accademiche e vi segnalo invece un gustoso > sketch del bravissimo > Gioele Dix che "disamina" un banale avviso ferroviario anche in funzione > delle culture+lingue: > https://www.youtube.com/watch?v=8xuAw0_6qwE > > [2] ancora humor... > https://www.eng.uwaterloo.ca/~comp03a/misc/humour/shootfoot.html > > [3] che hanno dato origine ai vari NUSAP, Reproducibility Project, F.A.I.R., > ecc. [2] è un peccato che l'autore, nel 2021, abbia volontariamente deciso di non trattare i c.d. "graph databases" (e.g. RDF), perché sarebbe ora che i "data scientists" cominciassero a usarli /massicciamente/ (rif. https://gnosis.cx/cleaning/hierarchical.html, capitolo NoSQL Databases) [3] https://en.wikipedia.org/wiki/Spreadsheet -- 380° (Giovanni Biscuolo public alter ego) «Noi, incompetenti come siamo, non abbiamo alcun titolo per suggerire alcunché» Disinformation flourishes because many people care deeply about injustice but very few check the facts. Ask me about <https://stallmansupport.org>.
signature.asc
Description: PGP signature
_______________________________________________ nexa mailing list nexa@server-nexa.polito.it https://server-nexa.polito.it/cgi-bin/mailman/listinfo/nexa