JavaFX: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
m cambio categ.
Nessun oggetto della modifica
Riga 1:
{{S|software}}
 
'''JavaFX''' è una famiglia di software applicativi, basati sulla [[Piattaforma Java]], per la creazione di [[rich Internet application|rich Internet applications]], [[Applicazione Web|applicazioni web]] che hanno tutte le caratteristiche e funzionalità delle comuni applicazioni per computer. Grazie a
Con JavaFX è possibile realizzare delle applicazioni per computer, cellulari, dispositivi portatili di vario genere, televisori e altri tipi di piattaforme.
 
JavaFX include, oltre ad una crescente libreria di funzionalità grafiche, un vero e proprio linguaggio di programazione indipendente da Java, chiamato “JavaFX script”, un [[linguaggo di scripting]] dichiarativo e [[staticamente tipato]] fortemente orientato alla programmazione grafica; questo rende la programmazione di [rich internet applications], e di applicazioni grafiche in genere, particolarmente agevolata.
 
In aggiunta al pacchetto JavaFX SDK, che include compilatore, utilità per l'esecuzione, e tutto la libreria JavaFX necessaria per lo sviluppo, sono state rilasciate alcuni strumenti che rendono lo sviluppo in JavaFX molto più agile:
* Un componente aggiuntivo per [[NetBeans]] che integra tutte le fasi di sviluppo JavaFX in un unico [[IDE]]
* JavaFX Production Suite: Utilità varie per facilitare il passaggio da programmi di grafica ([[Adobe Photoshop]] e [[Adobe Illustrator]]) e da formati come [[SVG]], a codice JavaFX.
 
A Partire da Java 7, la libreria di JavaFX è distrubuita con il [[Java Runtime Environment]].
 
== Rilevanza comerciale ==
JavaFX è uno dei principali attori nel mercato delle [[rich internet applications]], in gara con [[Adobe Flex]] e [[Microsoft Silverlight]], anche se attualmente il suo utilizzo è marginale rispetto ai concorrenti<ref>[http://www.indeed.com/jobtrends?q=javafx%2C+%22silverlight%22%2C+%22adobe+flash%22&l= JavaFX, Flash, Silverlight]</ref>.
 
Sun sostiene che il 90% dei PC ha [[Java]] installato e che sui cellulari Java è la piattaforma dominante; per queste ragioni JavaFX sarebbe l'ambiente di sviluppo per [[rich internet application]] più permeante nel mercato.<ref>[http://blogs.sun.com/jtc/entry/why_javafx_is_relevant]</ref>
 
== Caratteristiche peculiari ==
* Multi piattaforma: Soprattutto grazie all'ultima versione 1.2, JavaFX rende abbastanza strasparente il passaggio da un dispositivo all'altro: con alcune accortezze (e limitazioni) si può realmente eseguire lo stesso codice JavaFX sia come applicazione desktop, sia come applet all'interno di un browser, sia come programma per cellulare.
 
* Trascina e installa: una funzione innovativa, ereditata dalle ultime versioni di Java, permette di creare un Applet JavaFX, da eseguire all'interno di una pagina web, che possono essere letteralmente trascinate sulla scrivania di lavoro del PC; così è possibile lanciare l'applicazione web anche al di fuori del browser, direttamente dal desktop.
 
== Il linguaggio ==
JavaFX introduce un linguaggio di scripting dichiarativo ad oggetti, con molti riferimenti alla programmazione funzionale, estremamente pratico per lo sviluppo di applicazioni grafiche, con una sintassi simile a [[JavaScript]] e, per certi aspetti, ad [[ActionScript]], che permette di gestire in modo semplice ed efficace le interazioni tra i controlli grafici, e rende del tutto banale la gestione delle animazioni più comuni (dissolvenze, ingrandimenti, spostamenti ecc.).
JavaFX elimina quindi tutta la ridondanza tipica di Java, e rapresenta un naturale passaggio per i programmatori tradizionali dello storico linguaggio di Sun.
 
JavaFX permette anche di interagire senza alcuno sforzo con classi Java preesistenti. E' in oltre possibile fare l'opposto: si può includere una applicazione JavaFX all'interno di un normale programma scritto in Java e [[SWING]]<ref>[http://blogs.sun.com/javafx/entry/how_to_use_javafx_in JavaFX in Swing]</ref>.
 
Lo spazio grafico di lavoro di JavaFX è un oggetto <code>Stage</code>, radice di ogni applicazione JavaFX, che può intercambiare oggetti <code>Scene</code>, dei contenitori (oggetti che estendono la classe <code>Container</code>) di generici compoenti grafici (<code>Node</code>). A tutti gli effetti un oggetto <code>Scene</code> è un albero di nodi, in cui ogni nodo può essere sia un contenitore di altri nodi (che ad esempio specifica la dispozione bidimensionale dei suoi sotto componenti), sia un nodo grafico, cioè un [[Lightweight Component]] con una opportuna rappresentazione ed una serie di attributi che ne descrivono le proprietà (posizione, dimensioni, colorazione ecc.): il concetto ricorda molto quello di DOM di una pagina HTML, in cui possono essere disposti opportuni [[Tag]] con alcuni attributi.
 
Funzionalità degna di nota è il “binding”: la possibilità di associare ad una variabile <code>A</code> (in questo caso un numero) una certa espressione <code>ESPR</code>
<source lang="text">
var A : Number = bind ESRP
</source>
ogni qualvolta <code>ESPR</code> cambia valore, anche il valore di A (ovunque sia utilizzato) varia: questo introduce grossi problemi di prestazioni, soprattutto nel caso di abuso di binding, ma semplifica estremamente la comune interazione tra componenti grafiche.
Per esempio si può facilmente associare il valore di un qualunque controllo, ad esempio una barra di scorrimento, all'attributo di un altro componente (situazione estremamente comune), come la dimensione di una immagine, o la velocità di una animazione.
 
== Date di rilascio ==
Il linguaggio di scripting di JavaFX era orignariamento un progetto di Chris Oliver, chiamato F3, ed è stato annunciato per la prima volta da Sun Microsystem alla conferenza [[JavaOne]] del Maggio 2007.
Soltanto un anno dopo, nel Maggio 2008, Sun ha annunciato il piano di distribuire JavaFX per desktop entro la fine del 2008, e per i cellulari a metà del 2009, ed ha reso ufficiale la collaborazione con [[On2 Technologies]] per incorporare in JavaFX la possibilità di riprodurre alcuni formati video (componente fondamentale per la concorrere nel mercato [[RIA]]).
 
A partire dal Luglio 2008 è stato possibile scaricare una anteprima di JavaFX per Windows e Macintosh.
 
* La prima versione ufficiale, JavaFX 1.0, è stata rilasciata il 4 Dicembre 2008.
* JavaFX 1.1, annunciato nel Febbraio 2009, è la prima versione di JavaFX ad includere le componenti per lo sviluppo su piattaforme mobili.
* JavaFX 1.2 è stato reso pubblico nel Giugno 2009 ed ha introdotto molte novità fondamentali, oltre ad un notevole aumento delle prestazioni:
** Supporto per Linux e Solaris
** Controlli e Layout grafico integrati
** CSS come strumento per definire l'aspetto grafico dei controlli
** Grafici e data charts di vario tipo
 
== Collegamenti esterni ==