Java Version

2009-11-14

Nascita ed evoluzione

  • 1990 nasce un progetto portato avanti dal gruppo di lavoro “Green Project” di Sun Microsystem, il suo scopo era quello di realizzare software avanzato su macchine piccole. Il mercato richiedeva prodotti semplici, affidabili e di basso costo, ed inoltre dovevano essere il più neutrali possibili rispetto alla piattaforma usata. Modificare il C++ per l’indipendenza della piattaforma risultava improponibile, quindi si è pensato ad un nuovo linguaggio di programmazione.
  • 1991 nasce Oak che verrà poi ridenominato Java.
  • 1992 il CERN realizza il WWW riconosciuto subito come enorme possibilità di impiego della tecnologia Oak. Si provvede a realizzare programmi eseguibili da un client WWW e a tale scopo viene creato Webrunner e la classe di applicazioni dette applets, richiamabili all’iinterno di una pagina HTML
  • 1995 vengono distributini in tutto il mondo il browser (ribattezzato HotJava) e il pacchetto di sviluppo JDK (Java Developers Kit) per le macchine Sun Sparc con sistema operativo Solaris 2.3 e per la macchine Intel x86 con sistema operativo Windows 95 e Windows NT. Poco dopo tutti i browser diventeranno Java-enabled per eseguire le applets.

Applicazioni e applets

  • Java è nato prima del WWW ed è quindi un lunguaggio di programmazione capace di generare applicazioni complete, che necessitano solo dell’interprete Java per funzionare.
  • La grande popolarità di java parte dagli applets, piccole applicazioni eseguite come threads in backgroud dal browser abilitato. Si può affermare che Java trasforma il WWW in uno strumento multimediale completo pemettendo di aggiungere alla pagine web animazioni, sonoro, … , e gestire iterazioni complesse tra client e server.

Caratteristiche di Java – JDK 1.0 (1996) (Platform: 1.0)

  • Prima edizione

Caratteristiche di Java 1 – JDK 1.1 (1997) (Platform: 1.1)

  • Affinità con C++ e C, infatti la sintassi è sviluppata in analogia a quella del C++ (linguaggio più diffuso) per facilitarne l’apprendimento.
  • Piccole dimensioni (meno di 25o Kbyte) del software di base (JVM) per poter funzionare anche sui sistemi più piccoli

Caratteristiche Java 2 – J2SE 1.2 (1998) (Platform: 1.2)

  • Linguaggio orientato agli oggetti, Java è un linguaggio “object oriented” puro, ovvero non ridondante. Verifica le proprietà che definiscono la OOP (1. Incapsulamento 2. Polimorfismo 3. Ereditarietà 4. Collegamento dinamico)

Caratteritiche Java 3 – J2SE 1.3 (2000) (Platform: 1.3)

  • Programmazione Incrementale

Carattestichete Java 4 – J2SE 1.4 (2002) (Platform: 1.4)

  • Java ha ereditato le caratteriche migliori dei linguaggi OOP famosi come Eiffel, Objective, Smalltalk.

Caratteristiche Java 5 – J2SE 5.0 (2004) (Platform: 1.5)

  • Gestione automatica della memoria
  • Ciclo for-each, enumerazioni, vararg, autoboxing / unboxing
  • Fornisce supporto linguistico per le lingue comuni

Caratteristiche Java 6 – Java SE 6 (2007) (Platform: 1.6)

  • Garbage collector
  • Miglioramenti orientati al web (Servlet 3.0)

Caratterische Java 7 – Java SE 7 (2011) (Platform: 1.7)

  • Neutralità rispetto all’architettura
  • Istruzione switch funzionante anche per le stringhe
  • I tipi interi (byte, short, int e long) possono essere espressi come valori binari usando il prefisso 0b o 0B
  • La sintassi try-with-resources
  • È possibile intercettare diversi tipi di eccezioni in una singola catch riducendo il codice duplicato
  • Inferenza di tipi nella creazione di istanze di tipi generici

Caratteristiche Java 8 – Java SE 8 (LTS) (2014) (Platform: 1.8)

  • Robustezza impendendo l’accesso ai puntatori; in particolare gli array sono definiti come oggetti e la loro dimensione è controllata
  • Dinamicità: le classi di Java sono caricate, linkate ed interpretate durante l’esecuzione. Questo permette di superare problemi come quello della superclasse fragile.
  • Programmazione parallela semplificata e efficienza migliorata per processori multi-core.
  • Prodotta interamente Oracle.
  • Le espressioni Lambda sono la principale novità.

Caratteristiche Java 9 – Java SE 9 (2017) (Platform: 1.9)

  • Modularità, REPL, HTTP/2 aggiornato.

Caratteristiche Java 10 – Java SE 10 (2018) (Platform: 1.10)

  • Sicurezza: Java offre una robustezza strutturale a livello di linguaggi ed inoltre fornisce dei sistemi di protezione come la verifica durante il caricamento e la verifica dei bytecode.
  • Interfacciamento sicuro con i protocolli internet.
  • Il baycode può essere autenticato attraverso metodi di crittografia a chiave pubblica.
  • Linguaggio distribuito

Caratteristiche Java 11 – Java SE 11 (LTS) (2018) (Platform: 1.11)

  • Linguaggio multi-threaded