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>.

Attachment: signature.asc
Description: PGP signature

_______________________________________________
nexa mailing list
nexa@server-nexa.polito.it
https://server-nexa.polito.it/cgi-bin/mailman/listinfo/nexa

Reply via email to