Edward
Sapir nel 1921 e poi il suo allievo Benjamin Whorf formularono una
ipotesi linguistica (nota oggi come ipotesi di Sapir-Whorf) che
sosteneva che la lingua che noi parliamo, il nostro linguaggio
naturale, influenzava pesantemente il modo in cui noi percepiamo il
mondo.
Un
esempio.
In
italiano “ponte” ha genere maschile e come tale noi italiani
siamo abituati ad attribuire ad un ponte aggettivi prettamente
maschili. Parleremo infatti di un ponte robusto, forte, solido, ecc.
In Tedesco, “ponte” ha invece genere femminile, ed infatti, i
tedeschi sono soliti attribuire al ponte aggettivi prettamente
femminili. In Germania infatti è usuale sentir dire che un ponte è
grazioso, snello, ecc. (qui si immagini questi aggettivi al
femminile).
Poi,
l’ipotesi di Sapir-Whorf è stata man mano abbandonata, screditata
da altre ipotesi fatte da altri linguisti.
Oggi
l’ipotesi Sapir-Whorf sta tornando prepotentemente alla ribalta
grazie ai lavori e studi di numerosi linguisti e psicologi cognitivi
come la mia amica dell’università di Stanford Lera Broditsky.
Proprio
qualche settimana fa stavo parlando con Lera della possibilità di
adattare l’ipotesi di Sapir-Whorf non solo al linguaggio naturale,
ma anche ai linguaggi più formali, ben rappresentati ad esempio dai
linguaggi di programmazione. Lera si è subito dimostrata molto
interessata a questa mia idea e, anche se non è stato condotto
nessun esperimento in merito, ha ritenuto questa idea non scartabile
a priori.
Rispetto
a quarant’anni fa, oggi i calcolatori elettronici sono cresciuti e
sono diventati estremamente più complessi. E’ impensabile per
chiunque riuscire a capire approfonditamente l’insieme dei processi
che contemporaneamente intervengono nel funzionamento di un moderno
computer. Processi dinamici non lineari e quindi impredicibili
avvengono continuamente senza che noi neppure ce ne accorgiamo. I
calcolatori oggi sono “simulatori di determinismo”.
I
linguaggi di programmazione sono il mezzo per comunicare il nostro
pensiero e le nostre intenzioni al computer. Ovviamente essendo
diventati molto più complessi i computer, anche i linguaggi con i
quali noi comunichiamo con loro sono cresciuti in complessità. Noi
ci serviamo dei computer per risolvere qualsiasi tipo di problema,
oggi. Per far capire al computer i termini del problema che vogliamo
risolvere dobbiamo formulare questo problema in un linguaggio che il
computer possa comprendere. Esiste solo un modo per formulare il
problema in un linguaggio di programmazione? No, ne esistono
moltissimi. Almeno uno per ogni linguaggio oggi esistente e poi
all’interno dello stesso linguaggio di programmazione il problema
può essere espresso in decine di modi diversi.
Quello
di cui Lera ed io abbiamo discusso è la possibilità che il
programmatore che conosce più linguaggi di programmazione trova meno
difficoltà a far capire il suo pensiero al computer rispetto a
quello che conosce un solo linguaggio.
Un
esempio tratto dalla mia esperienza. Durante un corso che ho tenuto
recentemente ho dato alla classe un esercizio particolare. “Data
una stringa di caratteri scrivere un programma che prendesse in input
la stringa originale e che producesse in output la stessa stringa
scritta al contrario”.
Banale? Sì, ma come condizioni aggiuntive
ho imposto che il programma non facesse uso ne di assegnazioni di
variabili, ne di cicli “while”, “do while” o “for”. Il
linguaggio da utilizzare era in quel caso C#. In una classe di 11
programmatori solo due hanno risolto dopo una decina di minuti il
problema, gli altri 9 hanno ritenuto impossibile la soluzione
dell’esercizio pensando fosse una domanda a trabocchetto. Cercando
poi di scoprire il perché di un fallimento così netto nel risolvere
un’esercizio all’apparenza banale, ho scoperto che i due
programmatori che immediatamente erano giunti alla soluzione, oltre a
C# conoscevano molto bene almeno altri cinque linguaggi di
programmazioni tra i quali c’erano LISP e Haskell. Morale, la
conoscenza di questi linguaggi ha dato la capacità a questi due
programmatori di modellizzare il problema da un altro punto di vista
(funzionale piuttosto che imperativo) giungendo immediatamente alla
soluzione.
Come
dicevo prima non esistono test sperimentali dell’ipotesi di
Sapir-Whorf riguardanti i linguaggi formali, ma sia io sia Lera siamo
convinti che esiste un’analogia a livello cognitivo tra linguaggio
naturale e linguaggio formale. Molto lavoro rimane ancora da fare...
Luca
Ciciriello.
Nessun commento:
Posta un commento