In questo terzo capitolo della nostra guida a Java faremo una breve carrellata delle caratteristiche principali del linguaggio.
- Sintassi – La sintassi del Java è molto simile a quella del C e del C++ (con ovvie differenze) e quindi, per un programmatore, non è molto traumatico il passaggio dai linguaggi sopracitati al Java.
- Gestione di eccezioni e memoria – Il Java ha un sistema di gestione delle eccezioni molto efficiente e anche un sistema di deallocazione della memoria molto funzionale utilizzando il Garbage Collector e sollevando così il programmatore alla deallocazione manuale della memoria allocata precedentemente. La gestione della memoria molto efficiente conferisce al Java un requisito di robustezza molto elevato.
- Indipendenza della piattaforma – Questo è uno dei punti di forza principali del Java. Infatti con questo linguaggio, una volta compilato il codice sorgente – utilizzando la Java Virtual Machine (JMV) – l’applicativo potrà essere eseguito su macchine aventi sistema Windows, Machintosh o Linux. La JMV è un software che compie, principalmente, un lavoro di interprete del codice compilato. Una volta compilato il linguaggio non avremo un file in linguaggio macchina che può essere eseguito immediatamente, ma bensì avremo un listato in bytecode. Il bytecode ottenuto è indipendente dalla piattaforma di compilazione e l’indipendenza della piattaforma è ottenuta grazie alla JMV che traduce il bytecode nel linguaggio macchina relativo per la piattaforma di esecuzione. Inoltre la JVM conferisce al Java la caratteristica di essere multithreading ovvero avere la possibilità di mandare in esecuzioni più processi in maniera parallela.
- Orientato agli oggetti – Il Java è un linguaggio puramente orientato agli oggetti. La scrittura di linguaggio OOP (object Oriented Programming), in Java, è più semplice rispetto agli altri linguaggio OOP come per esempio C++. Come detto prima, il Garbage Collecttor si preoccupa della gestione della memoria e quindi in Java non è presente l’aritmetica dei puntatori come in C o C++. Questo conferisce al linguaggio Java una facilità di apprendimento molto elvato in quanto la gestione dei puntatori e l’allocazione della memoria è considerato il punto debole, dal punto di vista della rapidità di aprendimento, dei linguaggi che consentono queste operazioni.
- Sicurezza – Altro punto di forza del linguaggio Java è la sicurezza nell’esecuzione delle aplicazioni. Come sempre, in ambito informatico, parlare di sicurezza è sempre un concetto relativo e come tale deve essere interpretato. Prima di tutto con il Java, dato che la gestione della memoria non viene gestita dall’utente, non ci sarà più il pericolo di andare a scrivere in celle di memoria sbagliate magari sovrascrivendo dati importanti. Si ha dunque che il lancio di un’applicazione scritta in Java viene completamente gestita dalla JVM e quindi molti problemi di overflow dei dati ed errori nella gestione della memoria sono scongiurate.
- Risorse per l’esecuzione – Questo è uno dei punti di debolezza più evidenti del Java. Abbiamo, fino a questo momento, elogiato il fatto della gestione automatica della memoria, ma la mancanza dell’aritmetica dei puntatori rende il Java molto più avido per quanto riguarda la richiesta delle risorse necessarie per l’esecuzione. Questo perchè se in un’applicazione viene instanziato un array, una volta terminate le operazioni da eseguire sull’array sarebbe molto più efficiente poter deallocarlo in maniera manuale, rilasciando la memoria invece di far compiere questa operazione al Garbage Collector alla fine dell’applicazione. Dunque se dobbiamo sviluppare applicazioni per sistemi con memoria limitata come potrebbe essere un sistema embedded come una telecamera che supporta l’installazione di applicazioni, non è assolutamente consigliabile l’utilizzo del Java. In questi ambienti è molto più indicato utilizzare linguaggi come il C e il C++ che, anche se di più difficile apprednimento, garantistico una gestione della memoria manuale per poter sfruttare al meglio le risorse limitate del sistema.
Pubblicitร