Java & il World Wide Web: Java 8 e il futuro del web 3.0 | Parte 4

Qualche mese fa, abbiamo iniziato un incredibile viaggio nel mondo di Java attraverso un’avvincente retrospettiva scritta in collaborazione con Danilo Ventura, Senior Software Engineer di Bitrock.

Godetevi il quarto e ultimo episodio!


Nel 2014 arriva una nuova e rivoluzionaria versione di Java. Tutte le versioni di Java sono retrocompatibili, il che significa che il bytecode generato con una nuova versione di Java é eseguibile anche su versioni precedenti della JVM. L’arrivo della versione 8 di java apre le porte al paradigma funzionale. . Entrano a far parte del linguaggio nuove features come gli stream, le lamba expression, gli optionals, che permettono ai programmatori di scrivere codice più funzionale utilizzando sia il paradigma orientato agli oggetti sia il paradigma funzionale. Java 8 è stato davvero una pietra miliare perché ha dato vita a nuovi costrutti e molti sviluppatori Java, tradizionalmente esperti nel paradigma Object Oriented, hanno impiegato anni per abituarsi. Viceversa, molti programmatori esperti nel paradigma funzionale hanno cominciato a sentirsi meno a disagio e si sono potuti avvicinare a Java in modo più naturale.

Il primo framework per applicazioni Java come Spring Boot

Da questo momento in poi, Java viene utilizzato per creare servizi e applicazioni web. Cominciano ad emergere i primi framework Java per creare rapidamente applicazioni che forniscono servizi Rest Json. Per comodità, citeremo solo il più importante: Spring Boot. Quest’ultimo si basa su una libreria più snella che era appunto Spring (lanciata nel 2016) e ha semplificato la vita degli sviluppatori permettendo di non utilizzare i complessi EJB ma di creare JAR in grado di autoeseguirsi, senza installare un server ed eseguirlo.

Spring

Cloud, Container e Docker

È proprio in quest’ottica che avviene una nuova rivoluzione, quella del cloud e dei container. Prima i server e la loro manutenzione erano “in house”, basti pensare alle banche e alle compagnie assicurative; proprio in questo periodo è nato il concetto di Cloud, soprattutto con colossi come Amazon, Google e Microsoft che hanno fornito gli strumenti necessari per creare “macchine” sul web in cui installare tutto ciò che serve per far funzionare il proprio sito o la propria applicazione web. In questo modo, tutta la manutenzione della ‘macchina (virtuale)’ è affidata al Cloud Manager.

L’altro aspetto importante è l’avvento dei container, che cambia il modo di distribuire le applicazioni. Il container contiene tutto l’”ecosistema” di cui un’applicazione necessita: un sistema operativo, l’ambiente di runtime (la jvm nel caso di applicazioni java) e l’applicazione stessa Esso viene poi “messo in esecuzione” in una macchina che possiede il Container engine (Docker è stato il primo) che è in grado di eseguirlo in modo isolato.

Cloud

“Write once, run anywhere (WORA)” or not?

Tutto questo fa vacillare il concetto e il motto di Java: “Scrivi una volta, esegui ovunque”. Se l’applicazione può essere distribuita in un container con il sistema operativo preferito, quali sono i vantaggi di utilizzare ancora Java? In effetti, non ce ne sono ed è proprio questo il motivo per cui sono emersi nuovi linguaggi alternativi come Rust e GO di Google, il cui container impiega 5 millisecondi per avviarsi – invece di Java, che ha bisogno di 30 secondi.

Sembra che Java in questo mondo Cloud Native non abbia futuro. Tuttavia grazie a tecnologie come GraalVM, è possibile compilare in un eseguibile nativo per qualunque sistema operativo un programma scritto in qualunque linguaggio che sia in grado di generare un byte code. Perché è rivoluzionario? Java può essere utilizzato per creare un conteiner con all’interno un sistema operativo ed un eseguibile che può avviarsi in tempi paragonabili ai servizi scritti in GO.

Java continua a progredire adattandosi a nuovi framework che consentono di scrivere servizi direttamente cloud-native. Ad esempio, un framework degno di nota è Quarkus, che permette di generare container cloud-nativi che possono essere eseguiti su Docker o su qualsiasi orchestratore di container. Anche l’avvento di spring native è in grado di sfruttare questa tecnologia

La nuova frontiera del Web 3.0

Siamo alle soglie del Web 3.0 e la nuova frontiera è il Web basato sulla blockchain

Con il Web 3.0, la prospettiva potrebbe cambiare, poiché le piattaforme potrebbero non essere più di proprietà di una singola compagnia, ma potrebbero trovarsi su server distribuiti in varie blockchain.

In linea con i tempi e le esigenze, il Web continua a evolversi, pur affrontando molte difficoltà e incertezze. Come si adatterà Java a questo nuovo tipo di architettura? Lo vedremo! Nel frattempo, possiamo dire che non siamo fermi ma in movimento con questa evoluzione; ci sono già diverse prove, come le nuove librerie di framework (ad esempio Spring) che permettono di interagire con le blockchain più diffuse.

Siamo giunti alla fine di questa quarta e ultima puntata della retrospettiva dedicata a Java. Ringraziamo Danilo Ventura per aver condiviso le sue preziose intuizioni sulle tecnologie Java e per aver concluso 20 anni di storia del web.

Seguici su LinkedIn e resta sintonizzato per i prossimi interessanti articoli tecnologici sul nostro blog!

Vuoi saperne di più sui nostri servizi? Compila il modulo e fissa un incontro con il nostro team!

Skip to content