Ciao, e benvenuto nella settima puntata della settantottesima stagione. La volta scorsa, i dati: presi in cucina, spediti due volte. Ma questo apre un problema: e se un ingrediente è lento? Oggi la tecnica che impedisce a un piatto lento di bloccare tutto il pasto: lo streaming. Il titolo: portate che escono quando sono pronte.
Il problema che lo streaming risolve. Nel rendering normale, la cucina cucina l'intera pagina prima di mandare qualsiasi cosa. Se la pagina ha una parte lenta, una sezione che ha bisogno di una ricerca lenta, di un servizio lontano, tutto il piatto aspetta lei. Chi guarda fissa il nulla, perché il server non ha ancora risposto, mentre la cucina è ferma sull'unico ingrediente lento. Impiattamento tutto o niente: niente esce dalla cucina finché non è pronto tutto. La parte più lenta detta la velocità dell'intera pagina.
L'idea: servi le portate man mano che sono pronte. Un buon ristorante non ti fa aspettare il dolce prima di portarti l'antipasto. Manda ogni portata nell'istante in cui è pronta. Lo streaming del rendering fa lo stesso con una pagina: il server manda subito le parti che ha finito, il guscio, l'intestazione, le sezioni veloci, e tiene aperta la linea, mandando le parti lente dopo, man mano che finiscono. Chi guarda riceve subito il pane e un antipasto, e la portata principale lenta arriva quando è cotta, in un posto già apparecchiato per lei.
Come appare a chi guarda, ed è la vittoria. Invece di una lunga attesa vuota e poi tutto insieme, ottieni una prima portata veloce, un guscio di pagina visibile e utile all'istante, con dei segnaposto dove atterreranno le parti lente, e quelle parti arrivano in streaming e riempiono i loro posti man mano che sono pronte. La velocità percepita sale di molto: qualcosa di utile è sul tavolo quasi subito, e la roba lenta non tiene più in ostaggio quella veloce. Il primo sguardo è slegato dall'ingrediente più lento.
I confini, cioè dove lasciare un posto vuoto. Dici alla cucina quali parti possono arrivare dopo tracciando dei confini attorno alle sezioni lente: servi tutto il resto adesso, e lascia un posto apparecchiato qui per questa portata quando è pronta. Dentro un confine mostri un segnaposto, uno scheletro; quando il contenuto vero finisce sul server, arriva in streaming e sostituisce il segnaposto. Scegliere buoni confini, attorno alle parti davvero lente e davvero indipendenti, è il mestiere. Metti un confine attorno alla lista di recensioni lenta; non attorno a tutta la pagina.
E l'idratazione viaggia insieme. Le parti arrivate per prime possono essere idratate per prime: apparecchia le posate per le portate già in tavola, mentre le altre cuociono ancora. Così anche l'interattività arriva a pezzi, prima le più vicine, invece di aspettare che si assestino tutte le istruzioni dell'intera pagina. Lo streaming trasforma l'unico grande divario tra sembra fatto e funziona fatto in tanti piccoli divari sfalsati, e ogni pezzo diventa usabile prima.
Diciamo i costi onesti, perché nemmeno lo streaming è gratis. Il server tiene aperte le linee più a lungo e gestisce risposte parziali; l'ordine di arrivo può far saltare la disposizione, se non hai riservato lo spazio, mentre i pezzi tardivi atterrano; e certe cose non si possono davvero mandare a pezzi, se la parte lenta decide il titolo della pagina o la sua cima, forse devi aspettarla lo stesso. E una risposta in streaming che fallisce a metà è scomoda: hai già mandato un successo e un guscio, e poi la portata principale si brucia in cucina. Lo streaming compra velocità percepita; la paga in complessità del server e in disegno attento dei confini.
E il ritornello, da un angolo nuovo: è sempre spostare il lavoro nel tempo. Il rendering normale faceva tutto il cucinare prima di qualsiasi servizio; lo streaming spalma il servizio nel tempo, facendo combaciare l'arrivo di ogni parte con il momento in cui il suo lavoro è davvero finito. Non hai fatto meno lavoro: hai smesso di lasciare che il lavoro più lento dettasse il passo a tutto il resto.
Voglio lasciarti con il principio dello streaming. Non lasciare che il piatto più lento decida la velocità di tutta la pagina. In un rendering normale, la cucina aspetta che tutto sia pronto prima di mandare qualsiasi cosa, e il pezzo più lento detta il passo. Lo streaming rompe quel legame: manda subito il guscio e le parti veloci, lascia un posto apparecchiato per le parti lente, e le fa arrivare quando sono cotte, idratandole man mano. Perciò, quando una pagina è veloce tranne un angolo lento, non rassegnarti ad aspettarlo tutto: traccia un confine attorno a quell'angolo, servi il resto adesso, e lascia che il lento ti raggiunga. La velocità percepita non è cucinare più in fretta: è smettere di tenere in ostaggio il veloce.
Per oggi ci fermiamo qui. Abbiamo visto il problema del tutto o niente, con la parte più lenta che detta il passo; l'idea di servire le portate man mano; i confini attorno alle sezioni lente, con i segnaposto che vengono sostituiti; l'idratazione che arriva a pezzi, prima le più vicine; e i costi onesti dello streaming. Nella prossima puntata: il vassoio e la cucina di quartiere. Nelle note trovi qualche spunto. Se ti è utile, condividila. Grazie per l'ascolto, e ci sentiamo alla prossima.