Ciao, e benvenuto nella settima puntata della quarantottesima stagione. Oggi vediamo un'idea recente e radicale di Next, e sarà un ritorno a casa per chi ha seguito la stagione scorsa. Perché ciò che stiamo per raccontare l'abbiamo già incontrato, con un altro nome, appena una stagione fa. Oggi parliamo di come Next cancella di nuovo il confine: le azioni sul server.
Partiamo dal modello classico, perché è quello a cui siamo abituati. Nella divisione classica, per cambiare qualcosa sul server, salvare un modulo, cancellare un dato, il browser doveva fare una chiamata esplicita attraverso un confine ben definito. Dovevi progettare un punto d'ingresso apposta sul server, mandargli una richiesta, gestire la risposta che tornava indietro. C'era un confine chiaro, e un cerimoniale per attraversarlo: prepara la richiesta, spediscila, aspetta, ricevi. Il frontend di qua, il backend di là, e in mezzo un rituale.
Voglio darti la mossa di Next, perché è sorprendente. Le azioni sul server di Next fanno una cosa che lascia a bocca aperta: scrivi una funzione che gira sul server, e la chiami direttamente da un tuo componente come se fosse una normale funzione locale. E Next, di nascosto, si occupa del viaggio sulla rete che c'è in mezzo. Nessun punto d'ingresso da progettare, nessuna richiesta da preparare a mano: chiami semplicemente salva questa cosa, e quella gira sul server. Il confine tra client e server, per queste azioni, sembra svanire del tutto.
Voglio farti riconoscere dove l'abbiamo già visto, perché è la bellezza della puntata. E adesso, se hai seguito la stagione scorsa, dovresti sentire un campanello. Questa idea l'abbiamo già vista, appena una stagione fa: è la chiamata di procedura remota, rinata nel frontend. È esattamente la stessa promessa seducente di quel sistema per far parlare i programmi tra loro: far sembrare una chiamata remota una chiamata locale, cancellare la distanza. La stessa identica idea, ricomparsa in un posto nuovo. Le buone idee non muoiono: riemergono, travestite, dove meno te le aspetti. E qui il travestimento è particolarmente riuscito, perché la chiamata remota non ha nemmeno più l'aspetto di una chiamata di rete: sembra, a tutti gli effetti, una funzione qualsiasi del tuo programma, indistinguibile da quelle che girano lì accanto.
Voglio richiamare il monito di allora, perché vale identico. E arriva con lo stesso identico rovescio a cui dedicammo un'intera puntata: la distanza non sparisce davvero. Quella funzione dall'aria innocente è, di nascosto, un viaggio di andata e ritorno sulla rete. Può essere lenta, può fallire, attraversa il confine tra due posti diversi, la cucina e la sala di cui parlammo. La comodità è vera e meravigliosa; ma l'illusione resta un'illusione. Lo sviluppatore saggio si gode la scrittura di quella chiamata dall'aria locale, senza mai dimenticare che dentro ci si nasconde una rete, e quindi progetta perché sia lenta, perché possa fallire, perché vada gestita.
Voglio darti l'immagine che rende chiara questa idea, perché lega tutto. Pensa a un citofono tra la sala e la cucina di un ristorante, così limpido che ordinare sembra parlare con qualcuno seduto accanto a te. Comodissimo. Ma il cibo deve comunque fare il viaggio dalla cucina: e se dimentichi che c'è una distanza, ti stupirai che le tue parole non siano diventate un piatto all'istante. Il citofono ha cancellato la distanza per le tue orecchie, non per il pollo arrosto. La comodità nasconde il viaggio, ma il viaggio c'è ancora, con tutti i suoi tempi e i suoi imprevisti. E più il citofono è limpido, più è facile scordarsi che la cucina è un altro posto: proprio la qualità dell'illusione è ciò che la rende insidiosa.
Voglio trarre la lezione generale, perché affila quella della stagione scorsa. La lezione è questa: l'informatica continua a reinventare lo stesso bellissimo trucco, far sembrare locale ciò che è remoto, perché è davvero utile e davvero seducente. E ogni volta vale la stessa disciplina: accetta il regalo, tieni presente la verità, e non lasciare mai che la scorrevolezza della chiamata ti faccia dimenticare la distanza che nasconde. Vedere la stessa idea tornare, dal mondo dei servizi al mondo del frontend, ti insegna che i principi contano più degli strumenti: cambia il vestito, ma la sostanza, e il monito, restano gli stessi.
Per oggi ci fermiamo qui. Abbiamo visto le azioni sul server di Next: scrivi una funzione che gira sul server e la chiami come se fosse locale, e il framework nasconde il viaggio sulla rete in mezzo. Il confine tra client e server sembra svanire. Ma è un ritorno a casa: è la chiamata di procedura remota della stagione scorsa, rinata nel frontend, con la stessa promessa di cancellare la distanza. E con lo stesso monito: la distanza non sparisce davvero, quella funzione innocente è un viaggio di rete che può essere lento e fallire. Godi la comodità, ma progetta per la rete nascosta. Come un citofono limpido, che però non fa volare il piatto dalla cucina. La lezione: l'informatica reinventa lo stesso trucco, e ogni volta serve la stessa disciplina, non farti ingannare dall'illusione. Nella prossima puntata affrontiamo il prezzo della magia: la cache e ciò che non vedi. Nelle note trovi qualche spunto. Se ti è utile, condividila. Grazie per l'ascolto, e ci sentiamo alla prossima.