La legge di Postel – ovvero il Principio di Robustezza

Nella storia di Internet, Jon Postel ha sicuramente ricoperto un ruolo fondamentale e spesso poco conosciuto. Se Tim Barners Lee ideò il WWW, l’ipertesto, il concetto di browser e l’HTML, se Vint Cerf ideò il protocollo TCP e quindi i protocolli che permettono la comunicazione tra i nodi collegati sulla rete, Postel, meno famoso degli altri due, ideò il protocollo IP, pensato per la gestione complessiva della rete; e di fatto fu, fino al 1998, il garante del funzionamento di Internet, della sua neutralità e del suo sviluppo, al punto che in quegli anni l’Economist scrisse “Se internet ha un Dio, quello è probabilmente Jon Postel”, sottolineando il ruolo e l’enorme lavoro che per anni svolse Postel per garantire che le varie reti mondiali potessero comunicare su Internet.

E, in mezzo a tanti fisici e ingegneri geniali, ma spesso “arroganti” o comunque difficili da mettere d’accordo, fu un mediatore che seppe spesso trovare la soluzione e l’approccio giusto per superare alcune divergenze. Fino a definire un principio alla base di Internet che ha fortemente influenzato il suo funzionamento fino ai nostri giorni, il Principio di Robustezza:

be conservative in what you do, be liberal in what you accept from others.

ovvero:

sii conservatore in ciò che fai, Liberal in ciò che accetti dagli altri

Questo principio, da un punto di vista sociologico, rappresenta un esempio di apertura al mondo e alla collaborazione eccezionale, perché ci invita ad essere precisi e integerrimi nelle cose che facciamo noi stessi, ma di accettare con libertà quello che arriva dagli altri, ovvero ci invita a non pretendere qualcosa dagli altri, se prima non si impara a fare bene le proprie cose.

 

Ma Postel era un informatico, e anche se di lui si raccontano aneddoti particolari sulla sua visione della vita che forse hanno influenzato anche la sua visione della tecnologia, la legge era pensata per il mondo delle telecomunicazioni. Postel capì probabilmente prima degli altri quale fosse la portata di Internet e si pose subito il problema di dover definire un approccio metodologico che permettesse di esaltarne l’interoperabilità all’interno dei sistemi che si sarebbero collegati alla rete.

Di fatto il suo messaggio, verso i suoi colleghi più integralisti di lui fu:

I’m sure you’re going to get this right, but you’ll have to interoperate with the implementations of others with lower standards. Do you really want to deal with those fools? Better to silently fix up their mistakes and move on.

In sintesi, meglio prepararsi a gestire problemi di comunicazione, piuttosto che pretendere la perfezione dagli altri. Altrimenti il rischio è bloccare la diffusione di Internet. La genialità di Postel e la sua intuizione, di fatto permisero alle persone di costruire sistemi di rete complessi e per lo più funzionanti senza coordinarsi con gli altri o chiedere il permesso a nessuno. Il suo Principio di Robustezza ha proiettato l’informatica e la comunicazione verso un concetto di resilienza dei sistemi i quali devono essere in grado di continuare a funzionare correttamente anche se i dati che arrivano non sono corretti, ovvero devono essere in grado di gestire e soprattutto interpretare anche i dati che arrivano errati dall’esterno.

Questo approccio ha di fatto concorso a decretare il successo del TCP/IP e del WWW. L’esempio probabilmente più evidente è il linguaggio HTML; i browser oggi sono in grado di visualizzare correttamente una pagina web anche se al suo interno l’HTML non è scritto bene, vedi ad esempio l’uso di tag sconosciuti, piuttosto che tag di chiusura mancanti, piuttosto che errori di sintassi. Raramente un browser si blocca e non è in grado di mostrare, anche in parte, il contenuto di una pagina web. I browser sono un lampante esempio di applicazione del Principio di Robustezza.

Ovviamente tutto ciò ha un costo; la robustezza e la resilienza non vengono gratuitamente, anzi; perché chiedere ai sistemi di essere aperti e in grado interpretare anche informazioni errate, senza una specifica chiara, vuol dire avere anche sistemi che possono fornire una interpretazione dello stesso dato, diversa: quante volte capita che la stessa pagina web, su Chrome, FireFox o Explorer ha un aspetto diverso?

 

Ma la convinzione diffusa è che senza il Principio di Robustezza difficilmente Internet avrebbe avuto il successo che abbiamo conosciuto. E se oggi sull’HTML, specie con HTML5, si è andati a definire una specifica del linguaggio più stringente e “conservatrice”, ci sono altri ambiti in cui la legge di Postel continua ad essere non solo valida ma necessaria.

Penso ad esempio al mondo dell’IOT: avere un eco-sistema gigantesco di dispositivi in rete, provenienti da produttori diversi, che devono inter-operare fra di loro, con abilità di resilienza e con massima apertura al mondo per facilitare l’uso dei dispositivi e la creazione di app da mondi diversi, non può che basarsi su un Principio di Robustezza intrinseco nell’approccio; e d’altronde REST è un protocollo di scambi dati molto, molto light.

 

Le altre Leggi alla base dello Sviluppo Software

Questa voce è stata pubblicata in Leggi Sviluppo Software e contrassegnata con . Contrassegna il permalink.

Rispondi