Variabili e tentacoli

Tentacoli si allungano verso il robot Wall-E
Una metafora originale: la variabile come tentacolo. (foto di Donsolo distribuita con licenza Creative Commons).

Una metafora efficace è uno degli strumenti più potenti di cui dispone ogni bravo divulgatore. In “Breve storia di (quasi) tutto“, Bill Bryson vi fa ampio ricorso per dare la possibilità al lettore di comprendere ordini di grandezza infinitamente piccoli (le dimensioni di particelle subatomiche) o grandi (le dimensioni dell’universo).
Allo stesso stratagemma ricorrono spesso molti autori di manuali di informatica per novizi. Una metafora classica, in questo contesto, è quella utilizzata per spiegare cos’è e come funziona una variabile ricorrendo al concetto di contenitore.
Es. breve estratto da The JavaScript Bible 4th Edition di Danny Goodman pubblicato nel 2001:

The most convenient way to work with data in a script is to first assign the data to a variable. It’s usually easier to think of a variable as a basket that holds information.

Una variable è un contenitore, un cestino che contiene un valore. Quando il valore posto al suo interno muta è come se questo valore venisse estratto dalla scatola per essere sostituito con un altro.
La metafora è così immediata nella sua semplicità che è diventata un elemento ricorrente in testi di questo tipo. Persino nei manuali più innovativi nella presentazione del materiale di studio come la divertentissima collana Head First (casa editrice O’Reilly) il modo di presentare questo concetto è rimasto quello ben collaudato utilizzato anche da Goodman 13 anni fa: e lui non è stato certo il primo a farne uso!
Capirete perché il mio stupore è stato grande nel leggere “Eloquent JavaScript” e scoprire quanto segue:

You should imagine variables as tentacles, rather than boxes. They do not contain values, they grasp them ― two variables can refer to the same value. Only the values that the program still has a hold on can be accessed by it. When you need to remember something, you grow a tentacle to hold on to it, or re-attach one of your existing tentacles to a new value […]

(Il grassetto è mio.)
Variabili come tentacoli! Che originalità! La prossima volta che vi capita di spiegare a qualcuno che sia a digiuno di programmazione cosa sia una variable, domandatevi se non esista un’immagine più efficace di quella del classico contenitore.


Aggiornamento del 09/08/2014
Ho letto il divertente "JavaScript for Cats" un breve testo introduttivo gratuitamente disponibile sul web e anche in PDF (5,6MB – 17 pagine): un hip hip hurrah per l’autore @maxogden. Nel paragrafo "Values and variables" ecco definizione alternativa per il concetto di variabile:

[Variables] are pretty much like mailboxes. We put something in a variable, like our sentence, and then give the variable an address that we can use to look up the sentence later. In real life mailboxes have to have PO Box numbers but in JavaScript you usually just use lowercase letters or numbers without any spaces.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *