Java & il World Wide Web: le Origini | Parte 1

Java & the World Wide Web

Esiste da quasi 30 anni e non mostra ancora segni di pensionamento. Java era presente quando il web muoveva i primi passi e l’ha accompagnato nel corso dei decenni. È cambiato costantemente, evolvendosi in base alle esigenze degli utenti e degli sviluppatori di Internet, dalle prime applet alla blockchain e al Web3 di oggi. Possiamo solo immaginare dove sarà tra 30 anni.

In questa retrospettiva in quattro parti, scritta in collaborazione con Danilo Ventura, Senior Software Engineer di ProActivity (la nostra consociata parte di Fortitude Group), cerchiamo di tracciare la storia di Java e il ruolo che ha avuto nello sviluppo del web come lo conosciamo. L’obiettivo è quello di individuare il motivo per cui Java ha avuto successo al posto di altri linguaggi e tecnologie, soprattutto nei primi frenetici e sperimentali anni di Internet. Era il momento in cui il linguaggio di programmazione e il web si stavano influenzando a vicenda, per liberare completamente il potenziale della tecnologia che ha cambiato il mondo per sempre.

Tutto è iniziato a metà degli anni ’90. Erano i tempi migliori, ma anche i peggiori. Il World Wide Web era ancora agli albori e non era facilmente accessibile al grande pubblico. Solo gli appassionati di tecnologia collegavano i loro computer a Internet per condividere contenuti e parlare con gli sconosciuti sulle bacheche.

La nascita e lo sviluppo del web sono stati resi possibili dalla creazione e dallo sviluppo di un semplice protocollo chiamato HTTP (Hypertext Transfer Protocol), introdotto per la prima volta da Tim Berners-Lee e dal suo team nel 1991 e rivisto come HTTP 1.0 cinque anni dopo. Da allora il protocollo si è continuamente evoluto per diventare più efficiente e sicuro – nel 2022 è stato lanciato l’HTTP 3.0 – ma i principi di base sono ancora validi e costituiscono le fondamenta delle applicazioni web di oggi.

L’HTTP funziona come un semplice protocollo di richiesta-risposta: il client invia una richiesta al server su Internet, che a sua volta fornisce una risorsa come un documento, un contenuto o un’informazione. Questa semplicità concettuale dell’HTTP ne ha garantito la resistenza nel corso degli anni. Possiamo vedere una sorta di principio darwiniano in gioco, secondo il quale solo le tecnologie semplici, utili superano la prova del tempo.

It all started in the mid 1990s. It was the best of times, it was the worst of times. The World Wide Web was still in its infancy and was not readily accessible by the general public. Only tech-savvy enthusiasts connected their computers to the internet to share content and talk with strangers on the message boards. 

I documenti scambiati tra computer tramite il protocollo HTTP sono scritti in HTML, ovvero HyperText Markup Language. Sin dalla sua introduzione nel 1991, l’HTML è stato utilizzato per descrivere la struttura e il contenuto delle pagine web. All’inizio si trattava di documenti di testo grezzi con alcune formattazioni di base, come il grassetto e il corsivo. In seguito, l’evoluzione dell’HTML e l’aggiunta di linguaggi come CSS hanno permesso di aumentare le opzioni di formattazione e di contenuto, come immagini, tabelle, animazioni, ecc.

Per essere accessibili ai lettori umani, le pagine web HTML devono essere decodificate da un browser web, ovvero l’altra grande tecnologia che ha permesso la nascita e lo sviluppo di Internet. I browser sono stati creati come semplici programmi in grado di richiedere risorse tramite il protocollo HTTP, ricevere documenti HTML e renderizzarli come pagine web leggibili.

All’epoca il Web era primitivo e pochissime persone vi accedevano per svago o per lavoro. Si dice che nel 1995 solo 44 milioni di persone avessero accesso a Internet a livello globale, di cui la metà negli Stati Uniti (fonte: Our World in Data). Le applicazioni commerciali erano scarse, ma alcuni pionieri stavano sperimentando servizi di home banking e di commercio elettronico. Nel 1995, Wells Fargo permise ai clienti di accedere al proprio conto bancario da un computer, mentre Amazon e AuctionWeb – più tardi noto come eBay – mossero i primi passi nel mondo dello shopping online.

I principali fattori che limitavano la democratizzazione del web come strumento commerciale erano di natura tecnologica. Le esigenze stavano cambiando e gli utenti reclamavano un ruolo attivo nella loro presenza online. Allo stesso tempo, i creatori di siti web volevano modi più semplici per offrire più velocità, più flessibilità e la possibilità di interagire con un documento o una pagina web online. A questo proposito, l’introduzione di Java stava per dare un grande impulso all’evoluzione del panorama online.

La prima implementazione pubblica di Java fu rilasciata da Sun Microsystems nel gennaio 1996. È stata progettata da programmatori frustrati, stanchi di lottare con la complessità delle soluzioni disponibili all’epoca. L’obiettivo era quello di creare un linguaggio semplice, robusto e orientato agli oggetti che non generasse codice specifico per il sistema operativo.

Questa è stata probabilmente la caratteristica più rivoluzionaria. Prima di Java, i programmatori scrivevano il codice nel linguaggio preferito e poi utilizzavano un compilatore specifico per il sistema operativo per tradurre il codice sorgente in codice oggetto, creando così un programma specifico per il sistema operativo. Per rendere lo stesso programma compatibile con altri sistemi, il codice doveva essere ricompilato con il compilatore appropriato.

Java invece permetteva ai programmatori di “scrivere una volta, eseguire ovunque“, questo era il suo motto. Gli sviluppatori potevano scrivere codice su qualsiasi dispositivo e generare un metalinguaggio, chiamato bytecode, che poteva essere eseguito su tutti i sistemi operativi e le piattaforme dotate di una Java Virtual Machine. Per gli sviluppatori web si trattava di una svolta, perché non dovevano più preoccuparsi della macchina e del sistema operativo che eseguiva il programma.

Questa flessibilità ha aiutato java ad avere successo anche come strumento per creare applicazioni desktop multi-OS con interfacce di facile utilizzo. Sostenuto dalla contemporanea diffusione del primo sistema operativo di massa per i non addetti ai lavori (Windows 95), ha contribuito alla diffusione dei programmi desktop con interfacce a finestre. Java divenne anche uno degli standard adottati per i programmi eseguiti su elettrodomestici, come lavatrici o televisori.

La nascita delle applet può essere considerata una pietra miliare nello sviluppo e nella diffusione di Java. Si trattava di piccole applicazioni Java che potevano essere eseguite direttamente da una pagina web. Un tag HTML specifico indicava la posizione del server del bytecode, che veniva scaricato ed eseguito al volo nella finestra del browser stesso.

Le applet consentivano un grado di interattività maggiore rispetto all’HTML e venivano utilizzate, ad esempio, per i giochi e la visualizzazione dei dati. Il primo browser Web a supportare le applet è stato HotJava di Sun Microsystem, rilasciato nel 1997, seguito poco dopo da tutti i principali concorrenti.

Un Java Applet usato per la visualizzazione dei dati (fonte: Wikimedia)

Java Applets were pioneering attempts at transforming the web into an interactive space. Yet, they had security issues that contributed to their gradual demise in the early 2010s, when all major browsers started to terminate the support for the underlying technology. One of the last great applets was Minecraft, which was first introduced as a Java-based browser game in 2009. Java Applets were officially discontinued in 2017.

We can say that the goal of making HTML web pages more interactive has been fully achieved thanks to JavaScript, another great creation of the mid-nineties. Yet, despite the name, it has nothing to do with Java, apart from some similarities in the syntax and libraries. It was actually introduced in 1995 by Netscape as LiveScript and then rebranded JavaScript for marketing purposes. It is not a programming language, but rather an OOP scripting language that runs in a browser and enhances web pages with interactive elements. JavaScript has now become dominant, being used in 2022 by 98% of all websites (source: w3techs).

At the same time, another Java technology, RMI (Remote Method Invocation), and later RMI-IIOP (RMI on Internet Inter-Orb Protocol), enabled distributed computing based on the Object Oriented paradigm in a Java Virtual Machine. In the early 2000s, it was possible to develop web applications with Applets that, thanks to RMI-services, could retrieve data from a server, all based on JVMs. 

Le applet Java sono state un tentativo pionieristico di trasformare il Web in uno spazio interattivo. Tuttavia, avevano problemi di sicurezza che hanno contribuito alla loro graduale scomparsa all’inizio degli anni 2010, quando tutti i principali browser hanno iniziato a terminare il supporto per la tecnologia sottostante. Una delle ultime grandi applet è stata Minecraft, introdotta per la prima volta come gioco per browser basato su Java nel 2009. Le applet Java sono state ufficialmente dismesse nel 2017.

Possiamo dire che l’obiettivo di rendere le pagine web HTML più interattive è stato pienamente raggiunto grazie a JavaScript, un’altra grande creazione della metà degli anni Novanta. Eppure, nonostante il nome, non ha nulla a che fare con Java, a parte alcune somiglianze nella sintassi e nelle librerie. In realtà è stato introdotto nel 1995 da Netscape con il nome di LiveScript e poi ribattezzato JavaScript per motivi di marketing. Non è un linguaggio di programmazione, ma piuttosto un linguaggio di scripting OOP che viene eseguito in un browser e migliora le pagine Web con elementi interattivi. Oggi JavaScript è diventato dominante, essendo utilizzato nel 2022 dal 98% di tutti i siti web (fonte: w3techs).

Contemporaneamente, un’altra tecnologia Java, RMI (Remote Method Invocation), e successivamente RMI-IIOP (RMI on Internet Inter-Orb Protocol), ha permesso un’elaborazione distribuita basata sul paradigma Object Oriented in una Java Virtual Machine. Nei primi anni 2000 era possibile sviluppare applicazioni Web con Applet che, grazie ai servizi RMI, potevano recuperare dati da un server con una JVM ed essere eseguite, grazie alla tecnologia della serializzazione/deserializzazione, su una differente jvm all’interno del browser. In pratica le azioni che l’utente effettuava negli oggetti sull’applet del suo browser venivano riflesse nelle rispettive istanze che venivano parallelamente create sul server.

Il passo successivo nel percorso evolutivo furono le servlet Java, che spianarono la strada alle tipiche applicazioni Web 1.0. Le servlet hanno permesso di creare applicazioni lato server che interagiscono con il protocollo HTTP. Ciò significa che il browser poteva richiedere una risorsa al server, che a sua volta la forniva come pagina HTML. Era finalmente possibile scrivere programmi lato server in grado di interagire con i browser web, una vera e propria svolta per l’epoca. Con l’aumento della popolarità delle servlet, quella delle applet iniziò a diminuire, perché era più facile adottare l’HTML puro come interfaccia utente e costruire pagine web lato server.

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

Si ringrazia Danilo Ventura per il prezioso contributo a questa serie di articoli.

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

Skip to content