Ciao, e benvenuto nella sesta puntata della ventisettesima stagione. Nelle scorse puntate abbiamo apprezzato la robustezza di Java e le sue reti di sicurezza. Oggi affrontiamo, con l'onestà di sempre, il rovescio della medaglia, il tratto di Java più criticato e più deriso: la sua verbosità, la sua cerimonia. Perché Java ha la fama di essere prolisso, pesante, cerimonioso, di farti scrivere tanto anche per cose semplici. È una fama in parte meritata, e la affrontiamo senza sconti, ma anche senza pregiudizi, perché dietro quella cerimonia c'è una logica precisa. Oggi parliamo della verbosità come prezzo.
Partiamo dall'ammettere onestamente il difetto, perché è reale. Sì, Java è verboso. Per fare anche cose relativamente semplici, spesso ti chiede di scrivere parecchio: dichiarazioni esplicite, strutture, cerimonie, contorni. Dove un linguaggio flessibile come Python ti fa esprimere un'idea in poche righe scarne, Java te la fa esprimere in molte più righe, con più impalcatura attorno. C'è una fama, ben nota e in parte meritata, secondo cui Java, specialmente quello dei grandi sistemi aziendali, sia il regno della cerimonia eccessiva, della struttura pesante, del tanto codice per poca sostanza. Chi ci ha lavorato conosce questa sensazione di dover scrivere molto contorno per poco contenuto.
Voglio farti sentire quanto questa critica sia diventata popolare, perché è quasi un luogo comune. Nel mondo degli sviluppatori, la verbosità di Java è oggetto di infinite battute. Si scherza sulle sue strutture elaborate, sui suoi nomi lunghissimi, sulle sue impalcature che sembrano complicare anche le cose semplici. C'è, attorno a Java, la stessa aria di derisione che avevamo visto attorno a PHP, ma per un motivo opposto: PHP era deriso per essere disordinato e troppo permissivo; Java è deriso per essere troppo ordinato, troppo rigido, troppo cerimonioso. Due difetti opposti, entrambi oggetto di battute. E, come per PHP, dietro le battute c'è del vero, ma anche molto da capire.
Ma ora voglio spiegarti la logica dietro questa verbosità, perché non è stupidità o cattiveria: è una conseguenza diretta dei valori di Java. Ricordi cosa cerca Java? La robustezza, la solidità, l'essere esplicito, controllato, chiaro, strutturato. Ebbene, tutte queste cose costano parole. Dichiarare tutto in modo esplicito significa scrivere di più. Mettere reti di sicurezza e controlli significa aggiungere contorno. Dare struttura solida significa costruire impalcature. La verbosità di Java non è un capriccio: è il prezzo diretto della sua ricerca di robustezza e chiarezza. Le stesse scelte che lo rendono solido e affidabile lo rendono anche prolisso. La verbosità e la robustezza vengono dalla stessa radice.
Voglio farti apprezzare questo paradosso, perché è la chiave per capire Java. Ciò per cui Java è criticato, la verbosità, è la faccia inseparabile di ciò per cui è apprezzato, la robustezza. Non puoi avere l'una senza l'altra: se vuoi che tutto sia esplicito, controllato, strutturato, solido, devi accettare di scrivere di più. La brevità e la robustezza sono, in una certa misura, in tensione: più vuoi che il codice sia sicuro e chiaro nei dettagli, più devi esplicitare, e quindi più scrivi. Java ha scelto deliberatamente il lato della robustezza, accettandone il prezzo in verbosità. È un compromesso coerente: prolisso, sì, ma per essere solido.
Voglio darti la prospettiva equilibrata giusta, perché la verità è sfumata. Da un lato, la critica ha un fondamento: per i programmi piccoli e semplici, la verbosità di Java è davvero un peso eccessivo, una cerimonia sproporzionata, e per quei casi esistono linguaggi più agili e adatti. Dall'altro, per i grandi sistemi seri, critici e longevi, quella stessa verbosità diventa una virtù: l'esplicitezza e la struttura rendono il codice chiaro, controllabile, mantenibile da grandi squadre per anni, proprio ciò che serve lì. Quindi la verbosità di Java è un difetto nei piccoli contesti e un pregio nei grandi. Criticarla in assoluto è ingiusto: dipende dal contesto. Nel suo mondo, i grandi sistemi robusti, quella cerimonia si guadagna il suo posto.
Voglio anche notare, per onestà, che Java è maturato anche su questo fronte, perché è giusto dirlo. Come PHP, anche Java non è rimasto fermo: nel tempo si è evoluto per ridurre un po' della sua verbosità storica, aggiungendo modi più snelli di esprimere le cose, togliendo un po' di cerimonia inutile, avvicinandosi, dove possibile, alla concisione senza rinunciare alla robustezza. Il Java moderno è meno prolisso di quello di un tempo, pur restando fedele ai suoi valori di solidità. Quindi anche la critica della verbosità, pur avendo un fondamento, va aggiornata: Java resta più cerimonioso di altri, per scelta, ma lo è meno di quanto la sua vecchia fama suggerisca. Come sempre, la realtà è più sfumata delle battute.
Per oggi ci fermiamo qui. Il tratto più criticato di Java è la verbosità, la cerimonia: ti fa scrivere tanto, anche per cose semplici, ed è oggetto di infinite battute, come PHP ma per il motivo opposto, troppo ordinato invece che troppo disordinato. Ma dietro c'è una logica: la verbosità è il prezzo diretto della robustezza, dell'esplicitezza, della struttura. Le stesse scelte che rendono Java solido lo rendono prolisso: sono due facce della stessa medaglia. Ed è un difetto nei piccoli programmi ma un pregio nei grandi sistemi critici, dove struttura e chiarezza ripagano. Con onestà, Java è anche maturato, riducendo un po' la cerimonia. Nella prossima puntata vediamo la sua mentalità a oggetti: tutto è un oggetto. Nelle note trovi qualche spunto. Se ti è utile, condividila. Grazie per l'ascolto, e ci sentiamo alla prossima.