Java (linguaggio di programmazione): differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Luki-Bot (discussione | contributi)
m Robot: Automated text replacement (-à +à)
Riga 10:
 
== Orientamento agli Oggetti ==
La prima caratteristica, l'orientamento agli oggetti, si riferisce a un moderno metodo di programmazione e progettazione. L'idea principale della [[Programmazione orientata agli oggetti|programmazione ad oggetti]] consiste nel rendere il software la rappresentazione di entità reali o astratte ma ben definite (oggetti). Il suo obiettivo è di rendere più facile la gestione di grandi progetti, migliorarne la qualitàqualità e la manutenibilità.
 
== Indipendenza dalla piattaforma ==
Riga 16:
Inoltre, vengono fornite librerie standardizzate per permettere l'accesso alle caratteristiche della macchina (come grafica e networking) in modo unificato. Il linguaggio Java include anche il supporto per i programmi con [[multithreading|multithread]], necessario per molte applicazioni che usano la rete.
 
La portabilitàportabilità è un obiettivo tecnicamente difficile da raggiungere, e il successo di Java in questo ambito è materia di alcune controversie. Sebbene sia in effetti possibile scrivere in Java programmi che si comportano in modo consistente attraverso molte piattaforme diverse, bisogna tenere presente che questi poi dipendono dalle virtual machine, che sono programmi a sè e che hanno inevitabilmente i loro [[Glossario_informatico#B|bug]], diversi dall'una all'altra: per questo è nata una parodia dello slogan di Sun "Scrivi una volta, esegui dovunque", che è diventato "Scrivi una volta, fai il [[Glossario_informatico#D|debug]] ovunque".
 
===Compilazione Just In Time===
Riga 22:
 
== Esecuzione sicura del codice remoto ==
La piattaforma Java fu uno dei primi sistemi a fornire un largo supporto per l'esecuzione del codice da sorgenti remote. Una [[applet|applet Java]] è un particolare tipo di applicazione che può essere avviata all'interno del [[browser]] dell'utente, eseguendo codice scaricato da un server [[web]] remoto. Questo codice viene eseguito in un'area (''sandbox'') altamente ristretta, che protegge l'utente dalla possibilitàpossibilità che il codice sia malevolo o abbia un comportamento non desiderato; chi pubblica il codice può applicare un certificato che usa per firmare digitalmente le applet dichiarandole "sicure", dando loro il permesso di uscire dall'area ristretta e accedere al filesystem e al network, presumibilmente con l'approvazione e sotto il controllo dell'utente.
In realtà gli applet non hanno avuto molta fortuna. Infatti presuppone che il client in cui essi vengono eseguiti abbia installata la JRE (deve eseguire il codice dell'applet).
Hanno avuto fortuna le applicazioni che prevedono il cosidetto thin-client, cioè un client 'leggero' che non ha bisogno di particolari strumenti per eseguire il codice remoto (a volte è necessario solo il browser).
Riga 31:
Nonostante queste caratteristiche siano abusate frequentemente dai programmatori, esse sono anche strumenti potenti. Comunque, la tecnologia Java include Java Native Interface (JNI), un modo per chiamare codice nativo da codice Java. Con JNI è quindi possibile ugualmente usare queste caratteristiche.
 
Alcuni programmatori lamentano anche la mancanza dell'ereditarietàereditarietà multipla, un potente mezzo di molti linguaggi orientati agli oggetti, tra cui il C++. Il linguaggio Java separa l'ereditarietàereditarietà del tipo dall'implementazione, permettendo l'ereditarietàereditarietà multipla dei tipi attraverso le interfacce. Questo permette di ottenere la maggior parte dei benefici dell'ereditarietàereditarietà multipla evitando molti dei suoi pericoli. Inoltre, attraverso l'uso di classi concrete, classi astratte e interfacce, un programmatore ha la possibilitàpossibilità di scegliere un grado nullo, parziale o completo di implementazione dell'oggetto che definisce, essendo assicurata la massima flessibilitàflessibilità nella progettazione.
 
Alcune persone pensano che per particolari progetti, la programmazione orientata agli oggetti renda il lavoro più difficile. Questa particolare lamentela non è peculiare di Java, ma è rivolta a tutti i linguaggi di questo tipo.
Riga 219:
La programmazione in Java è una specializzazione della programmazione con linguaggi orientati agli oggetti.
 
Il linguaggio Java è un linguaggio orientato agli oggetti con una sintassi simile al [[linguaggio C]] e al [[Linguaggio C Plus Plus|linguaggio C++]]. Allo sviluppatore giàgià esperto di programmazione OO, alcuni punti dovrebbero essere evidenziati:
 
# Java supporta solo la singola ereditarietàereditarietà di classi, ma permette l'ereditarietàereditarietà multipla di interfacce.
# Java ha una libreria di classi molto grande (detta Java API) simile a SmallTalk, e supporta molte caratteristiche, dai contenitori di oggetti a complesse esigenze di sicurezza.
# Java viene eseguito attraverso una Virtual Machine