Ciao, e benvenuto nell'ottava puntata della quarantottesima stagione. Ho raccontato tanta potenza di Next. Oggi, come sempre verso la fine, vediamo cosa costa quella potenza. Perché tutta la magia che abbiamo descritto, il misto server e client, il momento della costruzione, il risveglio della pagina, si paga con una moneta precisa: l'opacità. E il punto più dolente di questo prezzo ha un nome: la cache. Oggi vediamo il prezzo della magia: la cache e ciò che non vedi.
Partiamo dalla natura del patto, perché è il cuore. Tutta quella potenza è comprata con la magia: il framework fa un'enormità di cose in automatico, dietro le quinte, che tu non vedi. E il lato più affilato di questo patto è la cache, cioè il mettere da parte i risultati del lavoro per non rifarlo. Per essere veloce, Next ricorda le cose in modo aggressivo, i risultati, su più livelli, spesso senza chiedertelo. Quando funziona, è invisibile e meraviglioso: tutto è rapido e tu non ci pensi nemmeno. Il problema è quando non funziona.
Voglio farti sentire il dolore, perché lo conosce chiunque ci abbia lavorato. Quando la cache non fa quello che vuoi, cambi un dato e continua a comparire la versione vecchia, e non riesci a capire perché, perché il ricordare è a strati, automatico, nascosto, diventa una delle esperienze più esasperanti dello sviluppo web moderno. Perché i miei dati sono vecchi? È diventata la domanda tipica di chi usa questo framework. Fissi lo schermo, vedi la vecchia versione, e non hai idea di quale strato invisibile la stia trattenendo, né di come convincerlo a lasciarla andare.
Voglio darti il punto profondo, perché è la tesi di questo podcast rovesciata. Il punto profondo è questo: il costo della magia è che, quando si rompe, non vedi la macchina per aggiustarla. Più un framework fa per te in automatico, meno capisci cosa stia davvero succedendo, e più diventa difficile mettere le mani quando il comportamento automatico non è quello che volevi. La magia che ti risparmiava di pensare, nel momento del guasto, ti impedisce di capire. È tutta la comodità del mondo finché va liscia, e tutta impotenza nell'istante in cui si inceppa.
Voglio darti una cosa che rende onore alla storia, perché è illuminante. E qui c'è un dettaglio che dice tutto. Questo problema della cache è diventato così famoso, così doloroso, che i creatori stessi del framework hanno fatto marcia indietro: da un ricordare aggressivo e automatico di default, sono passati a un ricordare esplicito, che scegli tu, punto per punto. È un'ammissione preziosa: troppa magia nascosta è un costo, non solo un regalo. Persino chi la magia l'aveva creata ha riconosciuto che, oltre una certa soglia, l'automatismo invisibile fa più danni che comodità, e ha reso di nuovo visibile ciò che aveva nascosto.
Voglio darti l'immagine che rende chiara questa idea, perché è netta. Pensa a un'auto che si guida da sola e fa tutto splendidamente, finché un giorno fa una cosa che non ti aspettavi. E ti accorgi di non avere un volante per riprendere il controllo, e nemmeno un modo per vedere perché abbia deciso così. L'automazione che era puro regalo sulla strada liscia diventa pura impotenza nell'istante in cui sbaglia. Non è la guida automatica in sé il problema: è non avere modo di intervenire, e di capire, proprio quando servirebbe di più.
Voglio trarre la lezione generale, perché torna la tesi del podcast. La lezione è questa: ogni strato di magia che accetti è uno strato di comprensione a cui rinunci, e questo scambio è invisibile e gratuito, fino a quando non lo è più. Il giorno in cui qualcosa si rompe, paghi tutto il conto in una volta. Usa pure la magia, ma sappi che da qualche parte, sotto, c'è una macchina, e più la magia la nasconde, più ti costerà guardarla quando sarai infine costretto a farlo. Capire il modello sotto la magia non è un lusso da puristi: è l'assicurazione che paghi in anticipo per il giorno del guasto.
Per oggi ci fermiamo qui. Abbiamo visto il prezzo della potenza di Next: l'opacità, e il suo punto più dolente, la cache. Per essere veloce, il framework ricorda i risultati in modo aggressivo, su più strati, senza chiedertelo: invisibile e meraviglioso quando va, esasperante quando cambi un dato e resta la versione vecchia e non capisci quale strato la trattenga. Il punto profondo: il costo della magia è che, quando si rompe, non vedi la macchina per aggiustarla. Tanto vero che i creatori stessi hanno fatto marcia indietro, dal ricordare automatico a quello esplicito: un'ammissione che troppa magia nascosta è un costo. Come un'auto che si guida da sola ma senza volante quando sbaglia. La lezione: ogni strato di magia è uno strato di comprensione a cui rinunci, e il conto arriva tutto il giorno del guasto. Nella prossima puntata ci facciamo la domanda scomoda: ti serve davvero questo framework? Nelle note trovi qualche spunto. Se ti è utile, condividila. Grazie per l'ascolto, e ci sentiamo alla prossima.