Java è salvo! Grazie Android!!

Negli ultimi anni l’importanza di Java come linguaggio di programmazione è calata parecchio: molte delle applicazioni in cui si era affermato sono diventate appannaggio di Adobe Flash e HTML5. Tuttavia, tutti i programmi del sistema operativo Android sono scritti in Java, e quindi questo linguaggio di programmazione potrà vivere una nuova Epifania nei dispositivi mobili.

Il linguaggio Java è nato nel 1991 come linguaggio chiamato Oak (“quercia”, l’albero presente fuori dall’ufficio di uno degli ideatori del linguaggio), per gestire l’allora nascente televisione interattiva. Rinominato Java nel 1995, dal tipo di caffè consumato, secondo una “leggenda”, in grande quantità dal team di sviluppo, Java si affermerà come linguaggio che si può “scrivere una volta, usare dappertutto” (write once, run anywhere). Questo è possibile grazie alla sua caratteristica più interessante: la macchina virtuale Java. La macchina virtuale Java è un programma che riesce a leggere i programmi Java e fornisce in pratica una interfaccia tra il programma e i componenti del computer. Java è un linguaggio che può dirsi interpretato, dato che quando viene compilato viene in realtà tradotto in un “sotto-linguaggio” (Java bytecode) compreso solo da tale macchina virtuale. Per ogni sistema operativo è stata quindi realizzata una macchina virtuale, e questo rende superflua la ricompilazione di un programma Java per un certo specifico sistema operativo. Così un programma scritto sotto Windows può essere eseguito allo stesso modo sotto Linux e MacOS, attraverso le rispettive macchine virtuali.

Poi è arrivato Internet, e in un’epoca in cui le pagine web erano semplici ipertesti, Java garantiva parecchia funzionalità in più: in particolare si sono sviluppati giochi e chat con Java, mentre molti siti usavano Java per la creazione di animazioni che abbellivano il sito. Tutto questo era possibile attraverso le applet, cioè dei programmi Java integrati nelle pagine web, e il cui funzionamento era garantito dalla macchina virtuale Java.

Tutto è andato bene per molti anni, ma nel tempo Java ha perso parecchio del suo appeal, per vari problemi, sia suoi sia esterni. In particolare:

  • l’arrivo di Flash: questa tecnologia sviluppata dalla Macromedia e in seguito acquisita da Adobe ha permesso la creazione di applicazioni multimediali di prim’ordine con uno sforzo minore rispetto a Java, grazie all’uso di una completa “suite” di lavoro dedicata al multimedia, che permette di creare animazioni posizionando direttamente i relativi oggetti grafici dentro ad esse, in grafica vettoriale, e gestendone i movimenti con un’apposita interfaccia. In particolare, programmare dei videogiochi era relativamente semplice, dato che la suite è dotato di un linguaggio di programmazione che permette di interagire con l’animazione col mouse o la tastiera, creando veri e propri videogiochi, che possono essere esteticamente ottimi. Con Java è molto più complicato creare giochi, dato che tutto va fatto attraverso il codice. Inoltre i risultati erano il più delle volte esteticamente più scadenti, a causa delle capacità grafiche più ridotte di Java. A tutt’oggi (a parte alcune lodevoli eccezioni) sono pochissimi i giochi realizzati con Java.
  • la natura “pubblica” di Java: Java è stato creato dalla Sun Microsystems, acquisita poi da Oracle, ma a tuttora lo sviluppo è affidato anche a tanti programmatori volenterosi sparsi per il mondo, che sviluppano varie librerie software che espandono le possibilità di Java. Queste librerie sono generalmente scaricabili da Internet gratuitamente e ognuno può usarle nei propri programmi, accreditando l’origine di queste librerie ai rispettivi creatori. Questa natura “aperta” di Java è sicuramente un vantaggio, dato che lo sviluppo del linguaggio non è vincolato a Oracle, ma col tempo si è rilevato un inconveniente. Infatti non sempre queste librerie da terze parti sono curate bene dai loro creatori: col tempo, molte sono state “abbandonate” dai loro stessi creatori, e non sono state più aggiornate. Il risultato è che molte di queste librerie sono ora obsolete, non più compatibili, oppure contengono errori.
  • le manchevolezze di Java: a tuttora Java non supporta nativamente molte cose, tra cui la grafica 3D e le porte USB, due carenze francamente inammissibili di questi tempi. Ci si può, come visto, affidare a librerie di terze parti, che per il 3D e l’USB esistono, ma si ritorna al discorso di prima, e infatti queste due librerie sono tuttora obsolete e quindi inutilizzabili. Inoltre Java, essendo un linguaggio interpretato, è molto più lento degli altri linguaggi di programmazione compilati, un problema che si fa sentire nei programmi più sofisticati.
  • l’arrivo di HTML5: la nuova versione di HTML è pensata soprattutto per le applicazioni web, e sfrutta anche un linguaggio chiamato JavaScript, che a dispetto del nome non è relazionato con Java, se non per alcune parole chiave in comune, per garantire il funzionamento di queste applicazioni. La diffusione delle applicazioni web sta effetivamente rendendo superfluo l’uso della macchina virtuale Java e quindi dello stesso linguaggio.

Questo ha fatto si che Java si usato più che altro in applicazioni molto specializzate o in ambito accademico. Ma anche qui sta arrivando l’invasione delle nuove frontiere, e varie applicazioni che necessitavano di Applet Java stanno pian piano passando a HTML5.

È quindi tutto perduto per Java? Tutte le competenze che si sono sviluppate attorno a questo linguaggio diverranno di colpo inutili? Fortunatamente non è così: a gettare un’ancora di salvezza a Java è il sistema operativo Android, il sistema operativo Google per i dispositivi mobili. Ebbene, le app per questo sistema sono interamente scritte in Java. Invece di sviluppare un nuovo linguaggio, il personale di Google si è limitato ad aggiungere nuove librerie a Java, adattandolo per il nuovo mondo mobile.

L’uso di Java nei telefonini non è una novità, le librerie MIDP esistono già da molti anni, ma le applicazioni Java così scritte avevano trasferito i problemi del linguaggio appena visti (macchina virtuale per ogni sistema esistente, lentezza, limitazioni grafiche…) sulle piattaforme mobili, limitandone la diffusione. Ma grazie all’enorme diffusione di Android tra gli smartphone e agli adattamenti del linguaggio da parte di Google, ora l’avventura di Java nel mondo mobile è partita in quarta.

All’interno di Android c’è una sua macchina virtuale proprietaria che è in grado di leggere questi programmi. Questa macchina è molto veloce e stabile ed esegue i programmi con rapidità. Grazie a Google, quindi, questo ottimo linguaggio di programmazione, che secondo me fa veramente capire cosa vuol dire la “programmazione a oggetti”, oggetti che decisamente non sono solo i pulsanti, campi testuali, collegamenti ipertestuali ecc., potrà godere di nuova vita, anzi, avrà una parte attiva nella rivoluzione dei dispositivi mobili, che sta sempre più spostando le nostre attività, dai grossi computer che sono sulle nostre scrivanie, in agili dispositivi che potremo sempre portare con noi.

Decisamente, non poteva andare meglio!

Annunci

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...