Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Matematica che orrore
PieroTofy.it Blog Blog sulla programmazione

07 Aprile 2011

  Matematica che orrore

Ci sono molteplici cose che nella costruzione di software vanno assolutamente evitate. Una di queste è la nomenclatura delle variabili. Se costruisco un programma (specialmente in un linguaggio debolmente tipizzato) e chiamo le mie variabili x,y,z t,s,v,a,p, ecc. va a finire che alla prima necessità di rileggere il mio codice non mi ricordo più in quale contesto "t" è utilizzato, perchè "s" è in quel posto, come mai "a" è usato in quel modo.

Agli albori della programmazione, nomi corti e poco descrittivi erano la norma. Oggigiorno, dopo anni di studi e sviluppi delle tecniche che consideriamo migliori per lo sviluppo di software, la nozione che l'utilizzo di nomi ben descrittivi produce software migliore, più comprensibile e meno suscettibile ad errori è ben riconosciuta.

Matematica, fisica, chimica, statistica e tutte le altre scienze meno dinamiche invece, sono rimaste indietro. Mi piace matematica. Trovo utile lo studio di fisica. Ma detesto i matematici e fisici per la maniera in cui scrivono.

A leggere una formula bisogna avere il manuale di riferimento per ricordarsi cosa ogni simbolo significa. Quando poi (ovviamente) hanno finito le lettere del nostro alfabeto, ci aggiungono quelle greche. Così una semplice formula per calcolare la velocità di un corpo in 2D (per fare un esempio banale) diventa:

v = v0 + at

Invece che:

velocità = (velocità iniziale) + (accelerazione) (tempo trascorso)

Qual'è la scusa? Siamo troppo pigri per scrivere qualche parola in più? Certo per un esempio così semplice non crea molta confusione abbreviare le descrizione con delle trascrizioni. Poi però quando si tratta di prendere casi più complessi o ti sei preso la briga (o potrei dire, sprecato il tempo) di ricordarti cosa ogni trascrizione significa oppure devi andare a ricercartelo su internet o online. 

Sono matematici e ingegneri che hanno creato il ruolo di programmatore. Ricambiamo il favore e suggeriamogli di aggiornare il loro metodo di scrittura cosicchè anche i meno "eletti" possano capire certe equazioni senza dover andare a fare ricerche.

Chi è d'accordo con me?

Postato da Piero Tofy alle 2:26 | Commenti ( 13 )

Aggiungi un commento

Inserisci il tuo commento qui
Esegui il login oppure registrati per inviare commenti
  • forse all'inizio può essere un pò difficile capire le lettere, ma poi quando hai capito tutto bene vai via come una scheggia..
  • Sono inoltre in disaccordo sul dire che usare simboli permette di creare una lingua universale: nick0 ha accennato che per "lavoro" si utilizza L. Io negli States ad esempio utilizzo W (che sta per "work"). E ci sono tanti esempi simili.
  • Come dice nick0... ci sono casi in cui c'e' ambiguita'.
  • Sono d'accordo con chi sostiene l'importanza delle lettere nelle formule di matematica e fisica, si sprecherebbe troppo tempo scrivendo il nome per intero al posto della lettera. Tuttavia in fisica a volte sorge il problema di avere la stessa lettera per due variabili differenti: in un problema con un pendolo, t può stare per periodo così come tensione della corda.
    L viene usato per indicare "lavoro" così come "momento angolare".
    In questo caso è meglio adattare due lettere al posto di una per evitare confusione...
  • Abbasso la matematica :-PP
  • Penso sia molto più facile ricordarsi il sinificato di qualche termine o variabile piuttosto che dovere riscrivere la divina commedia.
    Prendiamo per esempio il teorema di Bezèout, è meglio scrivere <img src="http://latex.codecogs.com/gif.latex?%28%28a,%20b%20\in%20N ...; piuttosto che <i>Dai due numeri naturali a e b, ed essendo d il loro minimo comune divisore, sappiamo che esistono due numeri n e m intere tali che la somma fra il prodotto di a e n e il prodotto di b e m sia d</i>
    Dobbiamo anche ricordarci che la matematica è un linguaggio, che è una lingua universale e che vale la pena di imparare questa lingua.
    Difatti se scrivo una espressione matematica viene capita dovunque, altrimenti devo tradurla.
  • Io credo che questo ragionamento sia del tutto inappropriato e insensato (non per offendere sia chiaro, spiego i vocali con ragione):
    INAPPROPRIATO: matematica/fisica e programmazione non sono la stessa cosa. In un programma puoi avere migliaia di variabili che indicano i campi più di sparati. In fisica le grandezze non sono così numerose come in informatica (in un programma ad esempio potresti arrivare a dichiarare due variabili diverse che differiscono nel nome per singolare e plurale).

    INSIGNIFICANTE: non avrebbe alcun senso usare le parole intere su formule matematiche: non sarebbero più formule. E poi quale sarebbe la differenza tra i "segni" di cui tu parli e le parole? Sbaglio o in linguistica ogni vocabolo è un segno? La matematica serve per semplificare. Prova tu a fare uno studio di funzione o un qualsiasi problema bello lungo di fisica dove utilizzi parole intere come ACCELERAZIONE (solo per indicare una grandezza utilizzi 13 lettere)... senza contare poi che la matematica è di per sé ASTRATTA: quando uso un parametro A o B per descrivere una curva (Ax^3 +Bx), non sto affidando nessun valore noumenico al parametro, proprio per il carattere generale che deve assumere.

    Riassumendo ciò che volevo dire: l'informatica è fatta per essere "letta e scorsa"; la matematica per essere "intuita e compresa"
  • Eheh, ma quanto tu studi un argomento tipo il MUA, lo sai che a sta per accelerazione, v per velocità, e poi su alcuni libri riporta proprio la formula a frase.
    "Se costruisco un programma (specialmente in un linguaggio debolmente tipizzato) e chiamo le mie variabili x,y,z t,s,v,a,p, ecc. va a finire che alla prima necessità di rileggere il mio codice non mi ricordo più in quale contesto "t" è utilizzato, perchè "s" è in quel posto, come mai "a" è usato in quel modo." Su questo sono d'accordo, molti source hanno nomi di variabili insensate che mettono in difficoltà anche i lettori.
    Ma in matematica e in fisica no, ci sono delle "convenzioni", se ad un fisico scrivi "V" capirà subito che si tratta di velocità, se metti "t" è tempo, se metti "T" è temperatura, non c'è molto rischio di confusione :D
  • Una legenda sicuramente aiuterebbe... magari quando sono necessarie riduzioni o calcoli sull'equazione presentata. Ma quando parliamo semplicemente di mostrare un'equazione o una formula (senza riduzioni) cosa è meglio? Scrivere una legenda e poi scrivere la formula o scrivere la formula per esteso direttamente?
  • Sinceramente scrivere al posto dei simboli le parole  nelle formule(soprattutto in quelle di fisica) sarebbe un suicidio... pensa che ne so se devi fare una cosa tipo:
    Te = (m1c1T1 + m2c2T2 + m3c3T3)/(m1c1 + m2c2 + m3c3), diventerebbe una cosa infinita D:
  • be, secondo me è più efficace usare le lettere al posto di nomi lunghi nelle formule matematiche. Dopo magari inserire una "legenda" del tipo:

    a=accelerazione
    v=velocità iniziale
    ...

    potrebbe essere utile per capire il significato della formula.
    In programmazione è un altro discorso, anche io credo che sia meglio usare nomi che abbiano un senso per le variabili.
  • beh.. per formule particolarmente complesse si avrebbe l'effetto contrario: diventerebbero più difficili da leggere!
  • ba... voglio vederti in una verifica di fisica scrivere continuamente "velocità iniziale" al posto di v0 XD ci metti minimo 1 minuto in più => tempo sprecato.
    Invece di dare nomi lunghi basterebbe fare una legenda (dei commenti a fianco delle variabili per esempio)