
Cos’è java?
Java è un popolare linguaggio di programmazione, creato nel 1995.
È di proprietà di Oracle e più di 3 miliardi di dispositivi eseguono Java.
È usato per:
- Applicazioni mobili (specialmente app Android)
- Applicazioni desktop
- Applicazioni web
- Server Web e server applicativi
- Giochi
- Connessione alla banca dati
- E molto, molto altro!
Perché usarlo ?
- Funziona su diverse piattaforme (Windows, Mac, Linux, Raspberry Pi, ecc.)
- È uno dei linguaggi di programmazione più diffusi al mondo
- Ha una grande richiesta nell’attuale mercato del lavoro
- È facile da imparare e semplice da usare
- È open-source e gratuito
- È sicuro, veloce e potente
- Ha un enorme supporto da parte della comunità (decine di milioni di sviluppatori)
- È un linguaggio orientato agli oggetti che dà una struttura chiara ai programmi e consente il riutilizzo del codice, abbassando i costi di sviluppo
- Poiché è vicino a C++ e C# , rende facile per i programmatori passare a Java o viceversa
Java e la OOP resa “facile”
Java nasce quindi sostanzialmente per creare un linguaggio Object Oriented che risolvesse principalmente due problemi concreti:
- garantire maggiore semplicità rispetto al C++, per la scrittura e la gestione del codice;
- permettere la realizzazione di programmi non legati ad una architettura precisa.
Il primo degli obbiettivi fu affrontato liberando il programmatore dall’onere della gestione della memoria (e togliendo dalle sue mani la gestione dei puntatori) creando il primo linguaggio destinato alla grade diffusione basato su un sistema di gestione della memoria chiamato gargbage collection in cui ‘automaticamentè la memoria viene assegnata e rilasciata a seconda delle esigenze del programma.
Il secondo punto fu invece affrontato applicando il concetto di Macchina Virtuale (JVM) e facendo sostanzialmente in modo che i programmi non fossero compilati in codice macchina (nativo) ma in una sorta di codice “intermedio” (chiamato bytecode) che non è destinato ad essere eseguito direttamente dall’hardware ma che deve essere, a sua volta, interpretato da un secondo programma, la macchina virtuale appunto.
Questo significa che lo stesso codice può essere eseguito su più piattaforme semplicemente trasferendo il bytecode (non il sorgente) purché sia disponibile una JVM (concetto chiamato WORA, Scrivi una volta ed esegui ovunque).
Java, C, C++ e JavaScript
Java eredita dal C buona parte della sua sintassi (scelta fatta per facilitarne l’adozione da parte degli sviluppatori C e C++) mentre dal C++ eredita l’approccio object-oriented e basato sulle classi.
Parlando di similitudini Java e JavaScript non ne hanno quasi nessuna: ci si limita quasi esclusivamente al nome (per motivi di marketing) e alla una sintassi molto vicina al C.
Le versioni di Java
La prima implementazione pubblica del 1995 (Java 1.0) mantenne da subito la promessa dello sviluppo WORA, ed essendo questo linguaggio abbastanza sicuro per gli standard dell’epoca (grazie alla sandbox naturale offerta dalla JVM), la maggior parte i web browser seguirono Netscape Navigator e la incorporarono per permettere l’utilizzo delle “applet”.
Insieme alla prima JVM fu rilasciato anche il JDK 1.0 (Java Development Kit) che includeva sia l’ambiente di esecuzione (JVM + librerie, chiamato JRE, Java Runtime Environnement) che il compilatore (java to bytecode, javac) e le tool di sviluppo.
2
La versione Java 1.2 fu rilasciato nel 1998 come un “quick fix” delle versioni precedenti ma fu considerata l’inizio per un nuovo Java, da cui il nome Java2 che ha accompagnato fino ai gionri nostri ogni nuova release di Java: la versione Java 1.3 è chiamata anche Java3 etc.
I maggiori cambiamenti furono:
- riscrittura del sistema di event handling (aggiunta dell’Event Listner);
- introduzione del JIT (Just In Time compiler)
Con la versione “Java 2” furono introdotte anche 2 nuove distrubuzioni:
- J2EE, destinata allo sviluppo Enterprise (Java 2 Enterprise Edition)
- J2ME, destinata allo sviluppo si dispositivi mobile ed embedded (Java 2 Micro Edition)
e per enfatizzarne la nascita la distribuzione ‘classicà fu rinominata J2SE (Java 2 Standard Edition).
3
Nel Maggio del 2000 è stata rilasciata la terza release: Java 3 e i cambiamenti più rilevanti sono stati:
- inclusione di HotSpot JVM (macchina virtuale ottimizzante ed adattativa);
- JavaSound;
- Java Naming & Directory Interface (JNDI) nelle core libraries (in precedenza utilizzabile com estenzione);
- JDPA (Java Platform Debugger Architecture).
4
Del 2002 è la Java 1.4, che ha aumentato le caratteristiche del linguaggio e le API disponibili, con l’aggiunta di:
- Assertion;
- Regular Expression;
- XML processing;
- Non-blocking I/O;
- Logging.
5
Del 2004 è invece la versione 1.5, che include (oltre a numerose ottimizzazione e bugfix sulla JVM):
- Generics (che forniscono la tipazione a compile-time);
- Autoboxing/unboxing;
- Static imports;
- Annotation/Metadata.
6
Nel Dicembre 2006 è stata rilasciata la 1.6, che aggiunge:
- Web services;
- Scripting (che facilita l’embedding in java di scripting engines, tra cui uno per il Javascript basato su Mozilla Rhino);
- Desktop APIs e Desktop deployment;
- Security (Java SE 6 semplifica la gestione della sicurezza con l’aggiunta di nuovi modi per accedere ai servizi nativi, come PKI, Public Key Infrastructure, servizi crittografici per l’autenticazione e comunicazone sicura su MSWindows, Java Generics Security Services -Java GSS-, servizi Kerberos per l’autenticazione, accesso a server LDAP per l’autenticazione degli utenti).
7
La versione la 1.7, rilasciata nel Luglio 2011 aggiunge al linguaggio il supporto della JVM per i linguaggi dinamici, nuova libreria file I/O e nuove APIs per la grafica.
8
La versione 1.8 di Java è quella attuale e presenta, accanto ad uttimizzazioni sulla JVM, crittografia, un nuovo Interprete JavaScript (Nashorn, ECMAScript-262 compliant) anche la prima incarnazione del Project Lambda ossia Lamba Expressions native in Java (una prima tranche di programmazione funzionale) assieme agli Stream (set infiniti) relative bulk operations.
Clicca qui per sapere un po’ di storia !