2009-02-10 8 views
9

Attualmente lavoro molto su ActionScript 3.0, mi piace anche programmare in Java. JavaFX è perfetto per me? Qual è il sentimento generale su JavaFX, diventerà una centrale elettrica o seguirà lo stesso percorso delle applet Java? I designer con cui lavoro possono lavorare con JavaFX nella stessa misura in cui sono a loro agio con ActionScript e JavaScript?Quali sono i tuoi sentimenti su JavaFX?

risposta

2

Anche se sembra abbastanza potente in termini di capacità, Sono un po 'bla su JavaFX causa della sua struttura e di attuazione. Sembra davvero un tentativo poco entusiasta di entrare nel mercato Flash/Silverlight. Troppo script.

direi a favore di andare via di Silverlight 2, ma io sono soprattutto uno sviluppatore C#, quindi sono un po 'prevenuto lì. Se non ti piace quella rotta per qualsiasi motivo ma desideri comunque una UX più ricca per i tuoi utenti, ti consiglio Flex; sembra molto meglio organizzato di JavaFX per me.

Solo i miei due centesimi sull'argomento.

2

Se si conosce Java, ma vuole fare le cose che si pensava fosse realizzabile solo in Flash - allora sì JavaFX sarebbe bene per voi.

Senza dubbio sarà molto più facile fondere la conoscenza di Java con il design.

E credo che la strumentazione migliorerà, il che lo renderà più semplice da usare.

2

Un clamoroso "meh".

Quando l'ho guardato un anno fa, avevano uno strumento di conversione da SVG a JavaFx a una via. Ottimo, quindi puoi creare il tuo contenuto visivo una volta, contrassegnarlo con un sacco di comportamenti, e poi la prossima volta che vuoi farlo sembrare bello, allora cosa?

Se si dà un'occhiata a this tutorial si può capire cosa intendo. Stiamo disegnando cose trascinando forme da una tavolozza in codice sorgente. OMGWTF. Non lo sto mostrando al mio reparto grafico.

Spero di sbagliarmi su JavaFx, ma non credo che lo capiscano. Per favore, qualcuno di Sun non ci fornirà uno strato di presentazione che non ha i suoi tentacoli intrecciati inestricabilmente con il codice?

+1

Sono d'accordo con la tua ultima riga. Sebbene, francamente, ultimamente, penso che sia il caso di Java in generale. – Randolpho

+1

Dovresti dare un'occhiata alla Production Suite. Ha ottimi strumenti per Photoshop e Ilustrator e l'API Loader di FXD ti consente di disaccoppiare l'interfaccia utente dalla logica piuttosto bene. – Honza

+0

La suite di produzione JavaFx sembra interessante. Posso fare qualcosa di simile quando utilizzo i componenti di Swing in JavaFx? – joeforker

1

A meno che non si stia lavorando a un'applicazione interna, starei lontano da esso. Gli utenti generalmente non vogliono avere a che fare con un altro programma che realizza la stessa cosa di Flash. Non penso che la sua base di installazione sia abbastanza grande per renderla comoda per gli utenti finali.

+0

Forse dovrebbero capire come compilarlo in bytecode Flash. – joeforker

+1

Come www.haxe.l'org fa. – Luke

3

Ho lasciato il mio ultimo lavoro per passare da Java a sviluppo .NET.

C'erano una serie di ragioni per fare la mossa, ma la ragione principale era che ero stufo di provare a costruire un software di interfaccia utente di prima classe con Java & Swing. Sono passati sei anni e sono così felice di essermi trasferito. Non vedo alcun motivo per credere che Sun capisca finalmente lo sviluppo dell'interfaccia utente con JavaFX.

sono convinto che Microsoft è finalmente in procinto di darci una piattaforma per costruire applicazioni interattive nel browser. Dico questo dopo aver creato un software disponibile in commercio che è stato fornito come plug-in Netscape 13 anni fa, seguito dai controlli ActiveX e dalle applet Java, e vedere tutte queste piattaforme non diventare onnipresente nell'azienda per un motivo o per l'altro.

Mi rendo conto che Silverlight 2 è ancora privo di profondità e maturità, ma Microsoft mi ha dimostrato abbastanza impegno a questo punto che credo che sarà la piattaforma RIA dominante in pochi anni - almeno per i progetti che richiedono un linguaggio di programmazione "reale". Sono sicuro che Flash et al. non sta andando via in qualsiasi momento presto, ma Flash non è appropriato per i tipi di software che la mia azienda costruisce.

La ciliegina sulla torta per me è il fatto che sarò ancora in grado di utilizzare Visual Studio, C# e una grande percentuale della mia attuale base di codice (il motore principale completamente separato dall'interfaccia utente). Naturalmente, se provieni da ActionScript, questo non ti aiuterà.

Un altro punto importante è il fatto che Silverlight e WPF condividono così tanto in comune. Il nostro piano è di condividere una grande quantità di implementazione tra le versioni Silverlight e WPF del nostro software. È solo una questione di tempo prima che WPF sia lo standard per le applicazioni Windows - non so se si tratta di un paio di anni o dieci anni, ma ciò avverrà chiaramente nel tempo. Essere in grado di indirizzare i browser/sistemi operativi più popolari con Silverlight e Windows dalla stessa base di codice è un enorme vantaggio IMO.

Se conosci Java, passare a C# è un gioco da ragazzi. E a meno che tu non stia usando uno dei simpatici IDE Java (non gratuiti), anche le versioni gratuite di Visual Studio saranno un miglioramento rispetto a quello a cui sei abituato. L'ostacolo imparerà il nuovo modo di fare le cose con XAML, ma è qualcosa di davvero interessante, quindi potresti godertelo.

0

Ho passato il weekend a giocarci. Non vedo nulla di utile in esso. È un'iterazione di swing/awt. Immagino che sarà bello per i dispositivi mobili, ma oltre a ciò non è utile.

Idealmente mi piacerebbe usare il flash ma trovo doloroso integrare un back-end di qualsiasi tipo.

+1

Non è solo per la programmazione GUI, è un linguaggio di programmazione/scripting in piena regola. Penso che descriva molto bene le cose brutte in Swing (codice listener hotplinder listener action). – helpermethod

8

Volevo solo aggiungere il mio $ .02 ... Ho lavorato in JavaFX per gli ultimi 4 giorni sul mio primo piccolo progetto secondario che lo utilizzava. Come sfondo, ho programmato professionalmente per circa 9 anni, a partire da C, e ho fatto Java e C# /. NET negli ultimi 6 anni.

IMO, JavaFX è più frustrante che dovrebbe essere. Qui ci sono alcuni aspetti negativi:

  1. La sintassi è proprio strano, a volte. Potrebbe facilmente essere più simile a Java, dal momento che il suo Java FX. Ma la sintassi non è una transizione facile da Java.

  2. Il ordine di elementi in un file .fx in realtà le cose, il che significa che si esegue in errori di riferimento circolare stupidi, e "oh non si può ancora usare questa variabile, perché non è stata inizializzata" problemi che il compilatore dovrebbe gestire con facilità, ma non lo fa.

  3. Le cose casuali non funzionano. Le azioni/eventi sui controlli di Swing non sempre funzionano, ad esempio non è possibile chiamare SwingSliderBar's onKeyPressed/released.

  4. La gestione degli errori è solo errata. Se si verifica un'eccezione che non viene gestita, non esiste un modo reale di dire altro rispetto alla console Java e gli elementi dell'interfaccia utente iniziano a reagire in modo divertente. Ad esempio, crea una casella SwingText e associa il suo valore a una variabile. Ora provare a modificare il valore nella casella di testo genera un'eccezione perché non puoi modificare la variabile associata. Tuttavia nell'interfaccia utente, la casella di testo inizia appena a far accadere cose divertenti.alcuni caratteri solo 1/2 pittura, a volte backspace non fa nulla, a volte cancella un carattere, a volte puoi premere 2 tasti sulla tastiera eh come "1" e "2" e la casella di testo finirà per avere "21" inserito in esso invece di "12", ecc ...

Anche se la mia assoluta # 1 problema con lo sviluppo JavaFX in questo momento è Netbeans. È pateticamente negativo a JFX. Non riesco a eseguire il debug, gli errori vengono visualizzati erroneamente nell'IDE (i commenti sono stati contrassegnati come errori!), L'intelligenza funziona solo il 40% delle volte, l'evento i modelli di codice sono preprogrammati nell'IDE per il trascinamento dei controlli aren '& t corretto. Dimentico quale, ma uno di questi rilascia uno "&" alla fine del codice inserito che non è mai valido e deve sempre essere cancellato manualmente ... è semplicemente orribile, ed è inaccettabile per un'azienda come Sun .

Un'altra lamentela è la documentazione generale. È solo carente. In qualche modo l'API JavaFX non viene nemmeno visualizzata come risultato della ricerca n. 1 su google durante la ricerca di metodi/classi. Le tonnellate di "esempi" disponibili sul Web non funzionano più, poiché ogni versione ha importanti modifiche di refactoring e le classi vengono rimosse o rinominate.

Nel complesso, ho dato a JFX un 4 su 10. I voglio piace, ma JFX 1.1 non lo taglia proprio ... non è sicuramente quello che considererei "produzione pronta".

+0

+1 La sintassi è davvero strana. Mentre a prima vista sembrano esserci molte somiglianze tra Java e JavaFX, ci sono un sacco di sottili differenze. – helpermethod

+0

Mentre la sintassi tra Java e JavaFX sono diversi ... l'interoperabilità è veramente buona. Chiamare Java da JavaFX è fantastico ... e dal momento che JavaFX è una tecnologia lato client ricca ... non c'è davvero bisogno di Java per chiamare JavaFX. E a mio modesto parere ... JavaFX è superiore al precedente SWING Java per lo sviluppo della GUI lato client. –

0

Bene, la sintassi di ActionScript e JavaFX sembra condividere molte somiglianze, quindi forse "Sì".

Sto imparando lo script JavaFX al momento e mi piace davvero. Ma ciò che non mi piace, ed è forse il più grande inconveniente, è una documentazione terribile, che spesso non è aggiornata o incompleta.

1

Sto sviluppando applicazioni Flash con Flex da circa 2 anni e ho deciso di provare JavaFX perché riceviamo costantemente lamentele da parte degli utenti che non possono utilizzare le applicazioni degli IPhone (e io amo Java).

Questo è uno sciopero per Flash (nessun supporto mobile largo).

Per essere onesti, sono rimasto molto impressionato da JavaFX (in un modo molto negativo).

  • La documentazione è incompleta.
  • La sceneggiatura è semplicemente orribile; è questo strano ibrido tra JSON e R con la sensazione di un Java-deja-vu.
  • Ho passato i primi 3 giorni a dipingere poligoni ea fare gradienti con CODICE ... WTF !!
  • Ho provato a convincere il mio reparto grafico a provarlo e non si limitano a capire come funzioni la suite di produzione, continuano a lamentarsi del fatto che la skin Flex è molto semplice e alla fine sembra migliore (il che è assolutamente vero).
  • Il "supporto CSS" è semplicemente un brutto scherzo.
  • In genere si prova come un mediocre tentativo di offrire un'opzione per il frontend RIA.

Posso solo pensare di un paio di cose positive:

  • Esso può essere eseguito da un iPhone/iPad e quasi tutti i dispositivi mobili.
  • Hai accesso a tutto il codice Java che desideri, considerando le limitazioni di ActionScript (nessun sovraccarico, nessun costrutto privato, ecc.). Questa è una grande cosa per noi programmatori, ma ricordiamo per un attimo che questa è una tecnologia di frontend/presentazione ... il che significa che gli utenti dovranno effettivamente vedere la cosa, quindi se non ha un bell'aspetto e se è bello animazioni/effetti non lo scaveranno.
  • Lo script è molto meno dettagliato dei file MXML (con il costo di essere incomprensibile).
  • Parlando di prestazioni ... Flash Player è questo enorme blob verde che continua a crescere e crescere fino a quando non viene rimossa RAM rispetto a come funziona JavaFX (JVM rocks! Purtroppo questo non ha nulla a che fare con l'effettiva JavaFX API è solo che il JVM ... beh, fa un salto!).
  • Ha questa interessante funzionalità in cui è possibile trascinare l'applet al di fuori del browser web.

Alla fine, Im felice ho una possibilità di andare mobile, ma questo è anni luce via del matureness che Flex/Flash ha compiuto per quanto riguarda le applicazioni RIA. Il futuro di Flex/Flash come una tecnologia web ampiamente distribuita non è chiaro (potrebbe finire per essere utilizzato solo per banner e giochi online fastidiosi), nessuno vuole dipendere da una tecnologia vicina come Flash Player, ecco perché l'intero La comunità Web sta cercando di far uscire Flash dall'immagine (supporto video HTML5, No Flash Player per dispositivi Apple, ecc.). Quindi, un tentativo di aprirlo è sempre ben accolto, è solo che JavaFX si sente come questa incompleta versione beta affrettata di qualcosa che Sun si sentiva obbligato a escogitare in un weekend durante una brutta sbornia.

Spero che questo sia utile a qualcuno (e offensivo a qualcuno in Sun/Oracle = p).

0

Ho lavorato a un'applicazione JavaFX da diversi mesi. Personalmente, amo la lingua. Mi sembravano aver preso delle decisioni molto intelligenti nella scelta della sintassi e dei costrutti linguistici (posso annoiarvi con una lista se volete). Ci sto programmando da alcuni mesi e mi sembra un linguaggio molto efficiente e persino piacevole da programmare.

Penso che il suo miglior utilizzo sia per le applicazioni desktop e/o per le applicazioni distribuite tramite webstart. Sul desktop ha un ricco set di funzionalità e può ancora utilizzare le altre funzionalità di Swing e il resto di Java. Da quello che ho sentito, le applet sono ancora lente su alcuni sistemi e, senza il supporto Android, le funzionalità mobili non sono caratteristiche. L'applet/mobile/TV/supporto web mi sembra più un bonus per gli sviluppatori desktop, quindi come caratteristiche chiave che ti permetteranno di usare la tecnologia.

Quindi tutto dipende davvero da cosa si prevede di usarlo. Se stai costruendo applicazioni desktop che vuoi eseguire su Java VM che possono utilizzare semplici comandi multimediali e controlli avanzati dell'interfaccia utente, penso che ci siano buoni motivi per considerare la lingua. WebStart è migliorato un bel po 'e costituisce un ottimo strumento di distribuzione. Se stai cercando di costruire applicazioni web, allora potrebbe essere interessante, ma per ora direi che HTML5/ajax sono più rilevanti (potresti voler dare un'occhiata a ZK in questo caso). Tuttavia, anche con l'ajax HTML5 ha i suoi limiti e se ti trovi a doverli scovare, allora JavaFX potrebbe offrirti delle opzioni. Per le piattaforme mobili non sarà rilevante fino a quando non vi sarà un supporto stabile per Android: in questo caso, per ora mi limiterò a utilizzare la piattaforma Android.