Java

Da Skypedia.
Il logo di Java
Java è un linguaggio orientato agli oggetti derivato dal C++ e sviluppato da Sun. Java a differenza del C++ è più semplice da imparare in quanto non richiede utilizzo dei puntatori; non deriva dal C come C++ e tratta ogni cosa per riferimento visto che istanzia praticamente solo oggetti. Un programmatore java non è costretto a chiamare il distruttore per liberare memoria non più utile allocata per qualche oggetto: è il linguaggio stesso che si occupa, per mezzo del Garbage Collector di ripulire la memoria. Java, inoltre, è un linguaggio interpretato e ha una Virtual Machine che gli permette di funzionare su qualsiasi architettura esso venga interpretato. Java assomiglia molto a C# e .NET e il suo CLR ricordano molto da vicino la JVM.

Un motto di Java era «Compile once, run everywhere», ma alla fine non fu così effettivamente. :P

La storia di Java

La tecnologia Java è nata come strumento di programmazione per computer da un piccolo progetto segreto denominato "Green Project" sviluppato presso Sun Microsystems nel 1991. Il termine green fu utilizzato in quanto tutti i componenti avevano poca esperienza nello sviluppo di software nel settore dell’elettronica di consumo. Inizialmente infatti svilupparono un software adatto alle esigenze della mini-elettronica (erano tutti programmatori in erba), ben lontano da rendere i personal computer facili da utilizzare.

I componenti del "Green Team" (13 persone in tutto coordinate da James Gosling) si chiusero in un anonimo ufficio sulla Sand Hill Road a Menlo Park, interruppero tutte le regolari comunicazioni con Sun e lavorarono senza sosta per 18 mesi con lo scopo di creare una tecnologia sulla quale l’industria dell’elettronica ( televisori, altri piccoli dispositivi, ecc.) poteva contare. Questo gruppo aveva come obiettivo quello di sviluppare un linguaggio di programmazione per lo sviluppo di software platform-indipendent, semplice da utilizzare, che doveva essere installato in questi piccoli e portabili “articoli elettronici”. Bisognava anticipare e pianificare quale sarebbe stata la successiva evoluzione dell'informatica. Inizialmente giunsero alla conclusione che una delle tendenze più significative sarebbe stata la progressiva integrazione tra dispositivi digitali di largo consumo e computer.

Oak

Crearono così un codice di linguaggio di programmazione indipendente dai dispositivi denominato "Oak", un linguaggio di programmazione object oriented, platform-indipendent, robusto e sicuro. Per dimostrare l'importanza di questo nuovo linguaggio per il futuro dei dispositivi digitali, il "Green Team" sviluppò un apparecchio portatile interattivo per i dispositivi di home-entertainment destinato al settore della televisione via cavo digitale. Tuttavia, l'idea era troppo avanzata per quei tempi e il settore della televisione via cavo digitale non era pronto per compiere il balzo in avanti che la tecnologia Java prospettava.

Si scoprì invece che Internet era pronto per la nuova tecnologia e proprio in concomitanza con l'iniziale introduzione pubblica della rete nel 1995, il team fu in grado di annunciare che il browser Internet Netscape Navigator avrebbe incorporato la tecnologia Java. Con Java, Sun dimostrò che era riuscita a realizzare il primo linguaggio di programmazione che era “slegato” da ogni sistema operativo o microprocessore.

JavaSoft

Nel Gennaio del 1996 Sun fondò JavaSoft, una unità dedicata allo sviluppo di prodotti basati sulla tecnologia Java, all’aggiornamento del linguaggio e alla collaborazione con terze parti per creare applicazioni, tool e servizi per migliorare le capacità del linguaggio. Nello stesso mese JavaSoft rilasciò il Java Development Kit (JDK) 1.0, un collezione rudimentale di componenti per facilitare lo sviluppo di applicazioni scritte in Java, tra cui: un compilatore, un applet viewer, un prototipo di debugger, la Java Virtual Machine (JVM) necessaria per eseguire programmi basati su Java su qualunque piattaforma e numerose librerie di classi per la grafica, l’audio, le animazioni ed il networking. Da questo punto in poi JavaSoft, anche con le segnalazioni dei sempre più numerosi programmatori Java, ha apportato periodicamente aggiornamenti e miglioramenti al JDK sino ad arrivare alla versione 1.6 (detta anche versione 6.0).

Di fatto, per le sue caratteristiche di versatilità, efficienza, portabilità della piattaforma e sicurezza, Java è la tecnologia ideale per il network computing ed è per questo motivo che attualmente più di 2,5 miliardi di dispositivi sono basati sulla tecnologia Java:

  • Più di 700 milioni di PC
  • 708 milioni di telefoni cellulari e altri dispositivi portatili
  • 1 miliardo di smart card
  • Decoder, stampanti , web cam, giochi, sistemi di navigazione per veicoli, terminali delle lotterie, apparecchiature mediche, parchimetri e così via.

Attualmente, la tecnologia Java viene applicata a una vasta gamma di reti e dispositivi, quali Internet, i supercomputer scientifici, i computer portatili, i telefoni cellulari, i simulatori di mercato di Wall Street, le console per videogiochi e le carte di credito, ovvero praticamente ovunque.

Perché gli sviluppatori di software scelgono la tecnologia Java?

  • Scrivere software su una piattaforma con la possibilità di eseguirlo su qualsiasi altra piattaforma
  • Creare programmi da eseguire all'interno di un browser Web e di servizi Web
  • Sviluppare applicazioni lato server per forum online, negozi, sondaggi, elaborazione di moduli HTML e molto altro ancora
  • Combinare le applicazioni o i servizi basati sulla tecnologia Java per creare applicazioni o servizi altamente personalizzati
  • Scrivere applicazioni potenti ed efficienti per telefoni cellulari, processori remoti, prodotti di consumo a basso costo e quasi tutti i dispositivi digitali

Le funzioni principali Java

  • Platform Independence - il compilatore Java non produce un codice oggetto nativo per una determinata piattaforma, ma piuttosto delle istruzioni byte code da usare con il JVM (Java Virtual Machine).
  • Object Orientation - Java è un puro linguaggio object-oriented, il chè significa che in Java qualsiasi cosa è vista come oggetto e tutto deriva da una classe principale.
  • Rich Standard Library - una delle più interessanti funzioni di Java è la libreria standard. L'ambiente Java comprende centinaia di classi e metodi nelle sei aree maggiori:
    • Language Support classes for advanced language features such as strings, arrays, threads, and exception handling.
    • Utility classes like a random number generator, date and time functions, and container classes.
    • Input/output classes to read and write data of many types to and from a variety of sources.
    • Networking classes to allow inter-computer communications over a local network or the Internet.
    • Abstract Window Toolkit (AWT) for creating platform-independent GUI applications.
    • Applet is a class that lets you create Java programs that can be downloaded and run on a client browser.
  • Applet Interface - oltre ad essere in grado di creare applicazioni autonome, gli sviluppatori che usano Java possono creare dei programmi scaricabili da una pagina web per essere eseguiti sul browser del visitatore.
  • Familiar C++-like Syntax - uno dei motivi della rapida ascesa di Java è la somiglianza della sintassi con altri linguaggi come il C++ .
  • Garbage Collection - Java non coinvolge il programmatore ad occuparsi di liberare la memoria allocata dinamicamente. Ciò rende Java più facile da scrivere e meno soggetta ad errori in memoria.

Aree applicative Java

  • World Wide Web Applets
  • Cross-Platform Application Development
  • Other Network Applications