Ciao, e benvenuto nella decima e ultima puntata della quarantacinquesima stagione. Oggi tiriamo le somme su JavaScript, il linguaggio che non doveva contare e ha finito per conquistare il mondo. Rimettiamo in fila le poche idee peculiari che lo definiscono, guardiamo con onestà la sua natura, e poi allarghiamo lo sguardo su cosa ci insegna la sua storia, che è più grande di lui.
Ripercorriamo la stagione, perché il ritratto ora si compone. Abbiamo cominciato dall'origine: nato in dieci giorni per animare le pagine, diventato l'unico linguaggio del browser per monopolio, non per meriti, e poi cresciuto fino a evadere ovunque. Poi il cuore di come funziona: il ciclo degli eventi, un solo lavoratore che non aspetta mai fermo, e per questo sembra fare mille cose insieme. Le funzioni che si tengono in mano, valori che sanno agire, e le funzioni che ricordano, le chiusure, con la loro busta sigillata di memoria privata. Il tempo, e i tre atti sempre più gentili con cui si è imparato a dire fai questo, ma dopo. Gli oggetti fatti di oggetti, i prototipi sotto la maschera della classe. La morbidezza dei tipi, dono e tranello. Lo standard vivente, che può solo crescere e mai rompere. E l'onestà finale: i suoi difetti reali, e la rete di sicurezza che il mondo ci ha teso sopra.
Voglio raccogliere le idee grandi, perché valgono oltre JavaScript. Da questo ritratto emergono lezioni che ti restano anche fuori da qui. Che capire il modello, il ciclo degli eventi, la chiusura, il prototipo, la conversione dei tipi, trasforma un linguaggio da sacchetto di trucchi magici e trappole in una macchina che si comprende. Che il comportamento può essere un valore, qualcosa che tieni in mano e passi. Che una funzione può avere una memoria privata, tutta sua. Che gli oggetti possono nascere da altri oggetti, non solo da stampi. E che il progresso, spesso, non è una nuova idea, ma un modo più gentile di dire un'idea vecchia. Sono modi di pensare che ti seguono in qualunque linguaggio.
Voglio allargare lo sguardo sulla sua storia, perché c'è una lezione dentro. Fermiamoci un attimo sull'arco della sua vita. Nato in dieci giorni come giocattolo per grafici, tenuto in vita dal monopolio del browser, costretto a crescere, è evaso prima sui server, come raccontammo, e poi dappertutto, finché è diventato, per caso, per ostinazione, e per la pura forza di gravità dell'essere lì, il linguaggio più usato della Terra. E c'è una lezione nella storia stessa: essere presenti, e abbastanza buoni, ovunque, batte l'essere perfetti da qualche parte. Non è l'eleganza che ha fatto di JavaScript la lingua del mondo: è l'ubiquità, l'esserci sempre. C'è qualcosa di umiliante e insieme di consolante, in questo.
Voglio darti le due idee da portare via, perché sono il cuore di tutto. Ti lascio con due pensieri che vanno oltre JavaScript. Il primo è il tema di questo podcast, riassunto in un solo linguaggio: capire il modello sotto la magia trasforma le stranezze in meccanismi, e la paura in padronanza. Le stesse trappole che spaventano diventano ovvie, una volta che ne vedi il modello. Il secondo è più tenero: gli strumenti che vincono non sono quasi mai i più belli. Sono quelli che erano lì quando ti servivano, e che sono cresciuti per venirti incontro. È una storia della tecnologia più gentile, e più vera, di quella secondo cui vince sempre il migliore. Vince chi c'è, e chi cresce con te.
Voglio dirti dove ci porta tutto questo, perché il filo continua. Con questa stagione abbiamo guardato negli occhi il linguaggio in cui, molto probabilmente, sono scritte tante delle cose che costruisci ogni giorno, davanti e dietro le quinte. Abbiamo visto il suo carattere, i suoi geni e i suoi difetti, e la rete che ci hanno costruito attorno. È il compagno di lavoro che, una volta capito nel profondo, smette di sorprenderti alle spalle e comincia a lavorare con te. E se c'è una cosa che spero ti porti via, è che nessuno strumento è magia: è sempre un modello, e i modelli si possono capire.
Per oggi, e per questa quarantacinquesima stagione, ci fermiamo qui. Abbiamo raccontato JavaScript per intero: il linguaggio che non doveva contare, e ha mangiato il mondo. Le sue poche idee peculiari, il ciclo degli eventi, le funzioni in mano e che ricordano, l'evoluzione gentile del tempo, gli oggetti da oggetti, i tipi morbidi, lo standard che cresce e non rompe, e i suoi limiti con la rete di TypeScript. Le idee grandi che restano, il modello sotto la magia, il comportamento come valore, il progresso come modo più gentile di dire idee vecchie. E la lezione della sua storia: vince chi c'è, e chi cresce con te, non chi è perfetto. Grazie di cuore per avermi accompagnato lungo tutte e dieci queste puntate. Prenditi cura di te, e del codice che scrivi. A rileggerci presto, nella prossima stagione.