Ciao, e benvenuto nella decima e ultima puntata della ventisettesima stagione. Abbiamo attraversato tutto il mondo di Java: il sogno della portabilità, la macchina virtuale, il suo prezzo e il suo premio, la robustezza, le reti di sicurezza, la cerimonia, la mentalità a oggetti, il gigante silenzioso, e l'evoluzione conservativa. Oggi tiriamo le somme, ricomponiamo il ritratto di Java, e chiudiamo anche il grande quintetto di linguaggi di queste cinque stagioni. Cosa ci portiamo a casa?
Ricomponiamo prima il ritratto di Java, perché ora possiamo vederlo intero e giusto. Java è il linguaggio costruito attorno a due grandi valori: la portabilità e la robustezza. La portabilità, lo scrivi una volta gira ovunque, realizzato con la macchina virtuale, il computer dentro il computer che fa da ponte tra il programma e ogni tipo di macchina. La robustezza, l'essere costruito per software serio e affidabile, ottenuta con reti di sicurezza come la memoria gestita e il rigore dei controlli, e con una mentalità a oggetti che dà struttura. Questi valori hanno un prezzo, la verbosità e la cerimonia, che Java paga volentieri per la solidità. Ed è il gigante silenzioso e longevo del software serio, che invecchia con cura. Questo è Java: portabile, robusto, duraturo.
Fermiamoci sui pochi principi profondi da portare a casa, perché valgono più di ogni dettaglio. Primo: la portabilità tramite la macchina virtuale, l'idea geniale dello strato intermedio che permette di scrivere una volta e girare ovunque. Secondo: la robustezza come valore supremo, con le sue reti di sicurezza, pensata per il software serio che deve durare. Terzo: la verbosità come prezzo consapevole di quella robustezza, due facce della stessa medaglia. Quarto: la stabilità e la longevità, l'invecchiare con cura senza tradire chi si fida. Questi principi, portabilità, robustezza, verbosità come prezzo, longevità, sono la bussola per capire Java oltre ogni pregiudizio.
Voglio chiudere il grande quintetto di linguaggi, perché è il filo che ha unito queste cinque stagioni ed è forse l'insegnamento più prezioso. Abbiamo raccontato cinque linguaggi plasmati da cinque valori diversi. Go: la semplicità radicale e la velocità. Node: il non aspettare mai, l'asincrono. PHP: il web, e il modello che nasce e muore. Python: la leggibilità umana e il ruolo di collante. E Java: la portabilità e la robustezza per i sistemi seri e duraturi. Cinque priorità diverse, cinque linguaggi diversi, ciascuno di grande successo nel suo ambito. E nessuno di essi è il migliore in assoluto: ciascuno è il migliore per certi valori e certi scopi.
E questo è l'insegnamento più profondo di tutte e cinque le stagioni, che voglio incidere bene. Un linguaggio di programmazione è, prima di tutto, l'incarnazione di certi valori e di certe priorità. Go incarna la semplicità; Node l'efficienza asincrona; PHP l'adesione al web; Python la centralità dell'uomo; Java la portabilità e la robustezza. Capire un linguaggio significa, soprattutto, capire quali valori incarna, cosa ha scelto di privilegiare e cosa di sacrificare. E scegliere un linguaggio significa scegliere i valori adatti al proprio scopo. Non esiste il linguaggio giusto in assoluto: esiste quello giusto per certi obiettivi. La ricchezza sta proprio in questa varietà di risposte diverse a bisogni diversi.
Voglio essere onesto, come sempre, sul giusto posto di Java, perché non è la soluzione a tutto. Java non è il linguaggio più elegante, né il più agile, né il più moderno o alla moda; la sua verbosità e la sua cerimonia possono essere un peso, e per i programmi piccoli e rapidi è spesso sproporzionato. Ma è portabile, robusto, affidabile, longevo, sostenuto da un ecosistema immenso, ed è la scelta principe per il software serio che deve durare. È lo strumento giusto per i grandi sistemi critici, e quello sbagliato per i lavoretti veloci. Usarlo bene significa conoscere questo: sfruttarne la solidità dove serve solidità, e riconoscere quando serve qualcosa di più agile. Come per ogni strumento, la bravura è saperne il posto.
E arrivo alla lezione più profonda, quella che lega questa stagione a tutto il podcast. La storia di Java ci insegna una cosa che vale in molti campi: che la solidità, l'affidabilità e la durata, per quanto poco appariscenti e persino derise, sono virtù preziosissime, soprattutto quando le cose contano davvero. In un mondo che spesso insegue la novità, la velocità, la moda, Java ci ricorda il valore di ciò che è robusto e duraturo, di ciò di cui ci si può fidare a lungo. Non tutto ciò che è prezioso è brillante o alla moda: alcune delle cose più importanti sono quelle noiose, solide e affidabili, che semplicemente funzionano, per anni, senza tradire. È una lezione che vale ben oltre il software.
Per oggi, e per questa ventisettesima stagione, ci fermiamo qui. Java è il linguaggio della portabilità e della robustezza: lo scrivi una volta gira ovunque realizzato con la macchina virtuale, e la solidità per il software serio ottenuta con reti di sicurezza, struttura a oggetti, e pagata in verbosità. È il gigante silenzioso e longevo dei sistemi critici, che invecchia con cura senza tradire chi si fida. I principi da portare a casa: portabilità, robustezza, verbosità come prezzo, longevità. E il quintetto con Go, Node, PHP e Python insegna che un linguaggio incarna dei valori, e che non esiste il migliore in assoluto, solo il migliore per certi scopi. Grazie di cuore per avermi accompagnato in questo viaggio dentro Java, e in queste cinque stagioni sui linguaggi. Abbi cura di te, e ricorda il valore di ciò che è solido e duraturo. A rileggerci presto.