Ciao, e benvenuto nella sesta puntata della quarantaseiesima stagione. Oggi affrontiamo un tratto pragmatico che spiega, più di ogni altro, come TypeScript abbia conquistato il mondo del lavoro: non devi mettere i tipi ovunque tutti insieme, né mai del tutto. Puoi dosarli. C'è un cursore della severità, che regoli tu. Oggi capiamo come i tipi si adottano a poco a poco, e cosa comporta.
Partiamo dall'idea di gradualità, perché è la chiave dell'adozione. TypeScript è graduale. Vuol dire che puoi avere una base di codice in parte tipizzata e in parte no, e alzare la severità col tempo. È per questo che un'azienda con una montagna enorme di puro JavaScript, scritto in anni, ha potuto adottare TypeScript un file alla volta, senza fermare il mondo. Lo accendi in modo blando, migri poco a poco, stringi le viti man mano che procedi. Non un salto nel vuoto tutto in una notte, ma una salita dolce, al tuo ritmo. Questa gradualità è ciò che ha reso possibile passare a TypeScript senza riscrivere tutto.
Voglio parlarti della via di fuga, perché è cruciale e a doppio taglio. C'è un tipo speciale che vuol dire, in sostanza: fidati, non controllare questo. Si chiama, letteralmente, qualunque-cosa. Quando lo usi, spegni il correttore in quel punto: gli dici di non guardare, di lasciar passare tutto. È la valvola di sfogo che rende possibile l'adozione: quando i tipi ti sono d'intralcio, o hai fretta, o stai lottando con un caso complicato, puoi tirarti fuori localmente e andare avanti. Senza questa via di fuga, TypeScript sarebbe stato troppo rigido per essere adottato su codice vero, imperfetto, reale. È l'uscita di sicurezza che tiene aperta la porta.
Voglio darti il rovescio onesto, perché è importante. Ma quella stessa via di fuga è il modo in cui la sicurezza se ne va via, in silenzio. Ogni fidati-non-controllare è un buco nella rete. E una base di codice piena di qualunque-cosa è TypeScript solo di nome: paga la cerimonia dei tipi, la fatica di scriverli, senza incassarne la protezione. Hai il cartello sulla porta, ma la rete sotto è tutta strappata. È la tentazione facile: davanti a un tipo ostico, spegnere il controllo è più rapido che capirlo, e ogni volta sembra un piccolo strappo innocuo. Ma i piccoli strappi, sommati, lasciano cadere.
Voglio darti l'immagine del cursore, perché è il cuore della puntata. C'è dunque un cursore, dal quasi-non-controllo alla severità piena e scrupolosa. E qui la verità nuda: TypeScript è sicuro solo quanto lo imposti tu. Lo strumento, da solo, non ti protegge. Ti protegge lo strumento più la tua disciplina. Puoi tenere il cursore in basso e vivere quasi al buio, oppure alzarlo e lasciare che ti veda ogni sbaglio. La stessa morbidezza che rende TypeScript adottabile, il poter partire sciolti e uscire ovunque, è la stessa morbidezza che permette alle squadre di usarlo male, restando al buio pur avendo acceso la luce.
Voglio darti l'immagine che rende chiara questa idea, perché è precisa. Pensa a un interruttore con la rotellina, un dimmer, non un semplice acceso-spento. Puoi vivere nel buio, in piena luce, o in qualunque penombra nel mezzo. E la via di fuga è una mano davanti agli occhi per l'unico istante in cui non vuoi vedere: utile, finché non diventa un'abitudine, e allora cammini a occhi coperti in una stanza illuminata, sbattendo contro i mobili che la luce ti mostrerebbe. Il buio, a quel punto, non è dello strumento: è una scelta tua, ripetuta.
Voglio trarre la lezione generale, perché torna un tema che ci accompagna. Le funzioni che rendono uno strumento adottabile, il poter partire sciolti e tirarsi fuori ovunque, sono spesso in tensione con le funzioni che lo rendono prezioso, la severità, nessun buco. E uno strumento che ti lascia scegliere il tuo rigore ti fa insieme un regalo e ti carica di una responsabilità: sarà buono esattamente quanto la tua disciplina nell'usarlo. È lo stesso nodo di sempre, la libertà che è anche responsabilità: più uno strumento ti lascia liberi, più il risultato dipende da te, e non da lui.
Per oggi ci fermiamo qui. Abbiamo visto il tratto che ha fatto adottare TypeScript ovunque: la gradualità. Puoi tipizzare a poco a poco, un file alla volta, alzando la severità col tempo, senza riscrivere il mondo. C'è una via di fuga, il tipo qualunque-cosa, che spegne il correttore dove serve: è ciò che rende possibile l'adozione, ma è anche il buco da cui la sicurezza se ne va, e una base piena di vie di fuga è TypeScript solo di nome. C'è un cursore della severità, e la verità è che TypeScript è sicuro solo quanto lo imposti tu: ti protegge lo strumento più la tua disciplina. Come un dimmer, non un acceso-spento. La lezione: ciò che rende adottabile è in tensione con ciò che rende prezioso, e la libertà è responsabilità. Nella prossima puntata vediamo perché a volte TypeScript mente apposta. Nelle note trovi qualche spunto. Se ti è utile, condividila. Grazie per l'ascolto, e ci sentiamo alla prossima.