In modo perlopi霉 ignaro, praticamente tutti potrebbero avere quotidianamente interagito con Java. Effettuando operazioni bancarie online, acquistando biglietti aerei o ferroviari, usufruendo di servizi di streaming e persino giocando a Minecraft (beninteso nella sua 鈥淛ava Edition鈥) spesso si sfrutta senza saperlo il potenziale del linguaggio di programmazione, che nel maggio del 2025 compir脿 trent鈥檃nni. Questo traguardo sar脿 sottolineato e celebrato con tutti i crismi ai Voxxed Days Ticino 2025, previsti il 16 e il 17 gennaio a Lugano. Un鈥檕ccasione per ripercorrere tre decadi di storia della programmazione, iniziati ufficialmente con l鈥檃nnuncio della sua uscita il 23 maggio 1995 da parte della Sun Microsystems, azienda californiana acquistata nel 2010 dalla Oracle Corporation per 7.4 miliardi di dollari.
La storia di Java risale a qualche anno prima, quando un gruppo di sviluppatori capitanati da James Gosling cre貌 il linguaggio Oak, divenuto in seguito Java per ragioni di diritto d鈥檃utore. Ci sono varie versioni su come si sia giunti a questo nome. Le pi霉 accreditate fanno riferimento a una variet脿 di caff猫 indonesiano o al nome del bar in cui Gosling e i suoi colleghi discutevano del progetto e in cui verosimilmente veniva servito quel tipo di caff猫 (da cui il logo con la tazza fumante).
Aneddoti che testimoniano anche un certo affetto per un linguaggio di programmazione che per lungo tempo fu il pi霉 gettonato fra gli sviluppatori. I motivi del suo successo e i cambiamenti profondi introdotti da Java nel mondo della programmazione ci vengono illustrati da Tiziano Leidi, direttore dell鈥Istituto sistemi informativi e networking della 精东影业 e membro del comitato organizzativo dei .
Tiziano Leidi, direttore dell'Istituto sistemi informativi e networking della 精东影业. Nello schermo il logo di Java.
Che novit脿 port貌 con s茅 Java trent鈥檃nni fa?
鈥淧er farsi un鈥檌dea generale 猫 opportuno parafrasare la definizione che venne data all鈥檈poca: Java 猫 un linguaggio di programmazione orientato agli oggetti, semplice, robusto, sicuro, portabile e progettato per essere indipendente dalla piattaforma. Di certo Java si present貌 come un linguaggio che riusciva a consolidare dei concetti che fino a quel momento non avevano trovato una forma pura e ampiamente utilizzata, ma erano piuttosto soluzioni embrionali e di nicchia o estensioni di linguaggi esistenti. Mi riferisco soprattutto alla programmazione a oggetti鈥.
Spendiamo due parole sulla programmazione a oggetti.
鈥淩ispetto alla programmazione procedurale, nella programmazione a oggetti si struttura il programma in moduli, chiamati appunto 鈥榦ggetti鈥, che concettualmente riflettono un oggetto nel mondo reale. Tipicamente ogni oggetto viene definito nelle sue caratteristiche principali. A ciascuno di essi sono associati metodi, che ne specificano il comportamento. Il programma si compone di questi oggetti che interagiscono in vari modi fra di loro. Il suo sviluppo si avvicina molto al pensiero umano, facilitando lo sviluppatore: 猫 una soluzione che consente di commettere meno errori, ma soprattutto permette di essere pi霉 rapidi, grazie al riutilizzo di codici preesistenti鈥.
鈥淧arte del successo di Java 猫 derivato anche da strumenti come il garbage collector e la virtual machine che semplificarono molto il lavoro degli sviluppatori. Il primo identifica e distrugge automaticamente gli oggetti inutilizzati che si creano nell鈥檈secuzione di un programma, liberando memoria. Senza di esso bisognerebbe setacciare il codice ed eliminarli capillarmente. Inoltre, Java 猫 stato uno dei primi linguaggi ad eseguire codice con una virtual machine: il codice sorgente viene compilato in un secondo codice 鈥 bytecode 鈥 che viene interpretato a sua volta. Questo permette di isolare l鈥檈secuzione di un programma dal sistemo operativo. In altre parole: se scrivo un programma per Windows, grazie alla virtual machine potr脿 funzionare anche su Linux. Senza di essa andrebbe almeno parzialmente riscritto e compilato in forma specifica per il sistema operativo di destinazione. Non a caso uno dei motti di Java 猫 鈥榃rite once, run anywhere鈥. Questi strumenti hanno permesso a Java di ritagliarsi uno spazio importante fra gli sviluppatori鈥.
Detto di aspetti tecnici, in cosa fu dirompente?
鈥淟鈥檃spetto forse pi霉 rilevante 猫 stato che Java ha reso pi霉 accessibili delle soluzioni produttive efficaci. Potremmo paragonarlo a un鈥檃utomobile: Java non 猫 tanto l鈥檃uto da corsa che gira in un circuito, o un 4x4 che riesce ad arrampicarsi su sentieri montani. 脠 un鈥檃uto comoda, uno strumento trasversale, in grado di affrontare molte sfide con parecchia facilit脿. Java ha avuto il pregio di innovarsi continuamente, ritagliandosi uno spazio rilevante nello sviluppo di grossi sistemi informatici. Nel settore bancario 猫 diventato il flagship environment per la programmazione e la gestione di programmi in ambienti distribuiti: i classici ambienti web con struttura molto ampia che devono supportare l鈥檈secuzione di transazioni complesse, ma anche avere capacit脿 di sostenere un maggior carico in risposta all鈥檃umento degli utenti鈥.
鈥淯n altro elemento importante 猫 la comunit脿 di sviluppatori che 猫 cresciuta attorno a Java. Sebbene grosse realt脿 come Oracle l鈥檃bbiano sempre tenuto sotto la propria ala, contribuendo in modo marcato al suo sviluppo, Java 猫 rimasto open source, offrendo alla community l鈥檕pportunit脿 di contribuire al suo costante aggiornamento. Questo gli ha permesso di guadagnare in popolarit脿, entrando nelle universit脿 affermandosi come linguaggio per l鈥檃pprendimento, pi霉 semplice da imparare rispetto ad altri. Va per貌 detto che il suo successo non fu immediato: le prime versioni erano poco performanti, soprattutto nell鈥檌nterfaccia utente, e si dovettero introdurre rapidamente delle migliorie per renderle efficace鈥.
Oggi dove lo si pu貌 trovare? Qual 猫 un tipico esempio del suo utilizzo?
鈥淚l pi霉 delle volte ignoriamo che c鈥櫭 Java dietro le quinte. Buona parte dei sistemi a cui accediamo, dai servizi multimedia, a quelli bancari, passando per piattaforme di prenotazione o i marketplace, ricorre in qualche misura a questo linguaggio. Quando c鈥櫭 una parte server importante e numerosi utenti che si collegano contemporaneamente 猫 probabile che lo facciano a una struttura sviluppata in Java. Viene spesso definito server-side development. Non 猫 l鈥檜nico linguaggio utilizzato per queste operazioni, ma rimane una soluzione privilegiata proprio perch茅 garantisce una robustezza molto confortante per chi deve mantenere attivi grossi portali, che devono fornire continuit脿 e che non possono soffrire di disservizi. Non bisogna poi dimenticare che Java 猫 stato il primo linguaggio di programmazione ufficialmente supportato per lo sviluppo di applicazioni Android, anche se oggi gli viene preferito Kotlin鈥.
Sente i suoi 30 anni e la concorrenza di altri linguaggi? Spesso si parla di Python.
鈥淪ono due linguaggi diversi con applicazioni diverse. Java 猫 strong typed: per ogni variabile ne va definito il tipo. Ad esempio: se parlo di un numero devo specificare che sto parlando di un numero. Questo ovviamente rende la programmazione un po鈥 pi霉 macchinosa rispetto a Python che, essendo pi霉 flessibile nella scrittura, 猫 meno prolisso di Java. D鈥檃ltro canto, la necessit脿 di definire ogni variabile non concede errori. L'assenza di verifica dei tipi in Python rende pi霉 probabile l'introduzione di bug difficili da individuare. Infine, Java 猫 molto pi霉 elegante nella programmazione a oggetti鈥.
鈥淥ggi si parla molto di Python sia per la rapidit脿 e la facilit脿 di scrittura che per il suo utilizzo nello sviluppo di metodi di machine learning e nella data science. Sono ambiti in cui c鈥櫭 la necessit脿 di descrivere ed eseguire un algoritmo. Java, come detto, gioca un ruolo pi霉 importante nei grossi sistemi che gestiscono database e innumerevoli transizioni contemporanee. Va anche detto che Python si sta affacciando a questo mondo, viceversa Java all鈥檌ntelligenza artificiale. I linguaggi evolvono e, malgrado il suo essere prolisso, Java continua a difendersi bene e rimane un buon compromesso capace di coprire trasversalmente svariate esigenze di sviluppo鈥.
L'evoluzione della popolarit脿 dei linguaggi di programmazione secondo il TIOBE Programming Community Index. In verde la traiettoria di Java. (Fonte: )
鈥淟a vera sfida per tutti i linguaggi di programmazione 猫 legata ai Large Language Models (LLM) che iniziano ad avere capacit脿 di programmazione di codice sorgente. 脠 possibile che in futuro avremo strumenti estremamente flessibili che consentiranno di sviluppare in modo molto pi霉 dichiarativo, ovvero senza la necessit脿 di specificare ogni operazione, ma indicando semplicemente al LLM ci貌 che il programma deve fare. Non siamo ancora arrivati a questo punto, ma la direzione verosimilmente sar脿 questa鈥.
I sono nati come un evento Java, cosa farete per celebrare il suo anniversario?
鈥淚n effetti sin dagli albori i Voxxed Days hanno avuto una forte identit脿 legata a Java e alla sua community, ma 猫 chiaro che con il passare degli anni l鈥檈vento ha accolto contributi su altri linguaggi. Riflette il mondo della programmazione: oggi gli sviluppatori sono poliglotti. In Ticino 猫 sempre un momento molto apprezzato e ha permesso di allargare la rete e di proporre contributi che hanno portato nuovi sguardi su questo mondo. Il 17 gennaio, con qualche mese d鈥檃nticipo, ne approfitteremo per volgere uno sguardo al passato e ricordarci cosa ha rappresentato Java per lo sviluppo di software. 脠 evidente che guarderemo anche al suo futuro, interrogandoci su come potr脿 esserci continuit脿 in termini di innovazione鈥.
鈥淎vvertiamo gi脿 un bel fermento. Abbiamo ricevuto pi霉 di duecento proposte di contributi, un record! Non sar脿 facile scegliere, visto che ci sono a disposizione solo una trentina di momenti per gli speech. La community di sviluppatori risponde sempre 鈥榩resente鈥 e ha voglia di conoscere le pi霉 recenti evoluzioni. Fra gli argomenti caldi ci sono l鈥檜tilizzo di Java per l鈥檌ntegrazione di Large Language Models e i Virtual Threads, introdotti in Java 19鈥.
Ma come si festeggia un linguaggio di programmazione? Simbolicamente farete un brindisi con una tazza di caff猫 indonesiano?
鈥淎l termine dei Voxxed Days c鈥櫭 sempre un ultimo brindisi collettivo. Di certo quest鈥檃nno lo dedicheremo a Java e alle opportunit脿 che ha creato negli anni, con la speranza che rimanga un linguaggio di riferimento ancora a lungo. Stiamo pensando ad altri momenti simbolici e in generale vogliamo che sia un Voxxed Days memorabile, con speaker di grande rilievo e contenuti che non lasceranno indifferenti鈥.