Ciao, e benvenuto nella prima puntata della ventisettesima stagione di questo podcast. Nelle ultime quattro stagioni abbiamo raccontato quattro linguaggi, Go, Node, PHP e Python, ciascuno plasmato da valori diversi. Oggi se ne aggiunge un quinto, con valori ancora diversi, uno dei linguaggi più importanti e diffusi della storia del software, la spina dorsale di innumerevoli sistemi seri e importanti: Java. E Java è nato attorno a un sogno grande e affascinante, che ha cambiato il modo di pensare al software: scrivere un programma una volta sola, e farlo girare ovunque, su qualsiasi computer. Oggi partiamo da questo sogno: la portabilità.
Partiamo dal problema che c'era prima di Java, perché era un problema serio e concreto. Ricordi, dalla stagione sui linguaggi, che un programma deve essere tradotto nella lingua della macchina per poter girare? Ecco il guaio: computer diversi parlano lingue diverse. Un programma tradotto per un certo tipo di computer non funzionava su un altro tipo diverso: bisognava ritradurlo, adattarlo, a volte riscriverlo, per ogni tipo di macchina su cui volevi farlo girare. Era una fatica enorme e costosa: scrivevi un programma, e poi dovevi rifarlo, in parte, per ogni computer diverso. Il software era prigioniero del tipo di macchina per cui era stato fatto, incapace di spostarsi liberamente.
Ed ecco il sogno rivoluzionario di Java, che voglio farti apprezzare nella sua audacia. E se, invece di dover adattare il programma a ogni tipo di computer, tu potessi scriverlo una volta sola, e farlo girare, così com'è, senza modifiche, su qualsiasi macchina, di qualsiasi tipo? Questa era la promessa di Java, riassunta in una frase diventata celebre: scrivi una volta, gira ovunque. Un programma Java, scritto una sola volta, avrebbe funzionato identico su un tipo di computer e su un altro, e su un altro ancora, senza bisogno di riscriverlo o adattarlo. Il software liberato dalla prigione della singola macchina, libero di girare dappertutto. Era una promessa potente, quasi magica.
Voglio farti capire perché questo sogno fosse così importante, perché ha cambiato le cose. In un mondo con tanti tipi diversi di computer, poter scrivere un programma una volta e farlo girare ovunque significava un risparmio enorme di fatica, e una libertà nuova. Non dovevi più preoccuparti di su quale macchina sarebbe finito il tuo programma: scrivevilo una volta, e avrebbe funzionato dappertutto. Questa portabilità, questa capacità di girare ovunque senza adattamenti, è l'idea fondante di Java, quella da cui tutto è partito e attorno a cui tutto è costruito. E, come vedremo nella prossima puntata, Java l'ha realizzata con un'idea tecnica geniale, che è il vero cuore di questa stagione.
Ma la portabilità non è l'unico valore di Java: ce n'è un secondo, altrettanto profondo, che voglio anticiparti. Java è nato per costruire software serio, importante, che deve funzionare in modo affidabile, in sistemi grandi e complessi, che durano nel tempo. Pensa ai sistemi delle banche, delle grandi aziende: cose dove un errore costa carissimo, dove il software deve essere robusto, solido, degno di fiducia. E così Java è stato costruito attorno a un secondo grande valore: la robustezza, l'affidabilità. Un linguaggio pensato non per essere veloce da scrivere o elegante, ma per costruire sistemi solidi e affidabili, che non falliscono, e che si possono mantenere per anni. La solidità prima di tutto.
Voglio darti fin d'ora la lente con cui guardare Java in tutta la stagione. Java è due grandi valori uniti insieme. Primo: la portabilità, lo scrivi una volta gira ovunque, realizzato con un'idea tecnica geniale che vedremo. Secondo: la robustezza, l'essere costruito per software serio, affidabile, che dura. Tutto ciò che Java è, i suoi pregi e i suoi difetti, discende da questi due valori. Tieni a mente queste due chiavi, la portabilità e la robustezza, e capirai il senso di ogni scelta di Java, comprese quelle che, come vedremo, gli sono costate delle critiche.
Voglio chiudere collocando Java nel quintetto di linguaggi di queste stagioni, perché insieme raccontano una verità. Con Go, Node, PHP, Python e ora Java, abbiamo cinque linguaggi plasmati da cinque valori diversi: la semplicità e la velocità, il non aspettare mai, il web, la leggibilità umana, e ora la portabilità e la robustezza. Cinque priorità diverse, cinque linguaggi diversi, ciascuno di grande successo nel suo ambito. È di nuovo la conferma del tema che ci accompagna: non esiste il linguaggio migliore in assoluto, esistono valori diversi che plasmano strumenti diversi. E capire i valori di un linguaggio è capire il linguaggio. Con Java, i valori sono la portabilità e la robustezza.
Per oggi ci fermiamo qui. Java è nato attorno a un sogno grande: scrivere un programma una volta sola e farlo girare ovunque, su qualsiasi computer, senza doverlo adattare, liberandolo dalla prigione della singola macchina. Questa portabilità è il suo primo valore fondante, realizzato con un'idea geniale che vedremo. Il secondo valore è la robustezza: Java è nato per costruire software serio, affidabile, che dura, per sistemi grandi e importanti dove un errore costa caro. Tieni le due chiavi: la portabilità e la robustezza. È il quinto linguaggio del nostro viaggio, con valori ancora diversi. Nella prossima puntata scopriamo l'idea geniale dietro la portabilità: la macchina dentro la macchina. Nelle note trovi qualche spunto. Se ti è utile, condividila. Grazie per l'ascolto, e ci sentiamo alla prossima.