[teaser]Questo è il primo di una serie di guide che usciranno nelle prossime settimane, che hanno come scopo imparare il linguaggio di programmazione Java. [/teaser]

Benvenuti nella prima parte della guida a Java. In questo articolo faremo solo una breve introduzione al linguaggio presentandolo, mentre fra qualche giorno cominceranno già ad uscire le prime guide “pratiche”.

Un pò di storia

La storia di Java comincia nel 1992 alla Sun Microsystem da James Gosling e un gruppetto di informatici danno vita al linguaggio di programmazione Oak (l’inglese di “Quercia”) che verrà rinominato (a causa di problemi di copyright) in Java.

Come già detto, Java nasce nel 1992 ma viene rilasciato ufficialmente solo nel 1995: queste date lo rendono effettivamente un linguaggio giovane considerando i suoi predecessori: il smalltalk, primo linguaggio OOP che risale agli anni 70, e C++ che risale invece agli anni ’80.

Java == “OOP”

Java è un linguaggio di programmazione orientato agli oggetti. Questo vuol dire che sfrutta la OOP come paradigma di programmazione, e tutta la progammazione in Java si basa sugli oggetti .

Solo per parlare di questo paradigma di programmazione ci servirebbe una serie di articoli dedicati, il prossimo articolo infatti sarà un infarinatura generale in modo da poter affrontare facilmente la programmazione in java.

Java Virtual Machine

Java ha l’importante caratteristica di essere WORE (Write Once, Run Everywhere – scrivi una volta, esegui dappertutto) questo vuol dire che, una volta scritto il codice e compilato il sorgente, può essere eseguito su qualsiasi sistema operativo abbia una Java Virtual Machine.

Il segreto di Java è proprio la JVM: la macchina virtuale java, è un software che permette diciamo di emulare un sistema operativo e che quindi indipendentemente dal sistema dal quale apriamo il programma, questo verrà avviato nella JVM che ci permette quindi una elevata portabilità.

Bytecode

Normalmente i processi di compilazione di un sorgente java sono:

[fancy_numbers]

  1. Dal codice sorgente in java, lo diamo in pasto al compilatore javac
  2. Il compilatore ci restituisce il bytecode del nostro codice,
  3. La parte di codice che viene eseguita più spesso viene trasformata in codice nativo dal JIT (leggi sotto)
  4. Il codice risultante può essere eseguito su qualsiasi sistema abbia la macchina virtuale Java.

[/fancy_numbers]

Il Jit è il Just In Time compiler è un compilatore specifico del processore che permette di compilare solo la parte di codice “critico”.

Il bytecode, sarebbe il corrispettivo del codice macchina per l’emulatore.

Utilizzo

Quando installerete java, avrete davanti una schermata simpatica di caricamento su cui c’è scritto: java è presente su 3 miliardi di dispositivi. Infatti java è pensato per i sistemi embedded, come per esempio il computer interno della nostra lavatrice.

Detti tutti questi pregi, java è pensato per essere “”sicuro“”: nonostante il pensato, i 4 apici doppi ci stanno tutti dato il continuo scovare di bug, spesso anche molto gravi.

Non è incomune infatti, leggere articoli che parlano di bug così gravi da consigliare di disattivare o addirittura rimuovere java fino all’arrivo dell update.

IDE o linea di comando

La Oracle, azienda proprietaria di java, offre anche un IDE (Integrated Development Environment) chiamato Ecplise.

Questo software è disponibile per i vari sistemi operativi, ed in diverse versioni: lo sapevate vero che per Android si programma in java?

Non a caso infatti possiamo scaricare una versione apposita per sviluppare per mobile.

Se non volessimo sviluppare da IDE, potremmo installare JVM e il Compilatore (Javac) e compilare i programmi da riga di comando dando:

javac nomeFile.java

Ed avviarli, sempre da linea di comando, con:

java nomeFile

Senza estensioni.

Eclipse invece permette di creare progetti in java e compilare al volo i nostri programmi in maniera facile ed intuitiva; dispone dell’autocompletamento e ci segnala eventuali errori on-the-go.

Object Oriented Programming

Nel prossimo articolo vedremo un’introduzione alla programmazione orientata agli oggetti con particolare riferimento in Java. Più avanti vedrò invece di scrivere una serie di articoli propriamente dedicata a questo paradigma ormai standard nella programmazione.