Fórum Root.cz
Hlavní témata => Vývoj => Téma založeno: noef 21. 09. 2015, 08:22:50
-
Přeji hezký den,
rád bych se zeptal místních, více zkušených, jaké jsou důvody nedoporučování JavaFX (https://en.wikipedia.org/wiki/JavaFX)? Viděl jsem hned v několika vláknech, že JFX je vnímáno jako špatné/nepoužitelné a je radši doporučena alternativa (většinou .NET věci, které osobně nemusím). Původně jsem si myslel, že je to mrtvé ve smyslu, že se to neupdatuje, to ale očividně podle wiki není pravda. Je to tedy o tolik horší než win-only konkurence, nebo v čem je zakopán pes?
Doufám v zajímavou diskuzi, pokud možno co nejdéle "on-topic" :).
-
java na desktope je viacmenej mrtva
vsak co su killer apps? eclipse, netbeans, idea :-)
a javafx po tych podivnych zmenach co zazila nema asi ani to
-
java na desktope je viacmenej mrtva
No, zajima me proc? Je to opravdu horsi nez .NET svet, nebo je to problem slepice a vejce? Nebo jde jen o vzhled (podle par screenshotu z googlu to nevypada spatne)?
vsak co su killer apps? eclipse, netbeans, idea :-)
Nejsem si 100% jisty, zda nejde o ironii. IDEA mi prijde jako velmi dobre IDE. Coz si ale tak trochu odporuje s tim, ze je to mrtve na desktopu ???. Nebo je to mysleno tak, ze Java ma z GUI veci jen tech par IDE a to je vse?
a javafx po tych podivnych zmenach co zazila nema asi ani to
Musim pohledat, netusim o co jde (s JFX jsem nikdy nic nedelal).
-
Aj mňa to zaujíma. Argument o killer app mi nepríde celkom relevantný, ja si napríklad nevybavujem žiadnu killer .net GUI app. Takže java je na tom ešte dobre.
-
jaké jsou důvody nedoporučování JavaFX (https://en.wikipedia.org/wiki/JavaFX)?
Zkusil bych položit otázku obráceně: Existuje nějaký důvod doporučit JavaFX pro nový projekt v roce 2015 ?
-
jaké jsou důvody nedoporučování JavaFX (https://en.wikipedia.org/wiki/JavaFX)?
Zkusil bych položit otázku obráceně: Existuje nějaký důvod doporučit JavaFX pro nový projekt v roce 2015 ?
No, z toho mala co sem o tom nasel: pusobi to stabilne (je to tu dlouho), je to aktualizovane, celkem hezky to vypada, je to multiplatformni. Proc tedy doporucit nemultiplatformni .NET reseni nad timhle? Jedine co me napada je, ze se s tim blbe vyviji (coz z wiki nezhodnotim), jinak (krome problemu slepice/vejce) me nic nenapada. Ale proto jsem zalozil tento topic - skoro nic o tom nevim, netusim tedy proc to tak je.
-
No, zajima me proc?
java desktop bol dlho swing. vyvoj api swingu je vsak vlak co uz X rokov brzdi (v java 6 sa vylepsilo api a opravovala vykonnost. v java 7 ogenerikovali modely. v java 8 ziadne nove api nepribudlo.)
javafx to mala zachranit ale tam tancovali s tym vlastnym jazykom a v javafx 2.0 zistili ze je to marne tak to cele resetli a zaclai nanovo od 2012. mne sa zda ze odvtedy sa to potaca a nevie odrazit od zeme. imho je to zacarovany kruh 'nik v tom nerobi, takze v tom nebudeme robit ani my'
na druhej strane asi kazdy kto ma sudnost a stale chce desktop, primarne pre interne tooly, uz teraz riesi rich client projecty: bud to co je na netbeans alebo v prahe bolo par pozicii na eclipse.
migracia na rcp vsak ma dost narocnu uciacu krivku. hlavne eclipse bol pred casom dost strasidelny ak ste nemali vlastnu knowledgebase.
popro tom netbeans rcp maju este uz celkom rozumnu dokumentaciu, a getting started knihy a hlavna vyhoda je, ze ked je najhorsie, spadnete do swingu, kde mate kopu matrosu
-
IMHO prvni verze a jejich zpusob prezentace nebyly uplne nejstastnejsi, ale s tim, co prislo s Java 8, se da uz velice dobre pracovat.
-
Dekuji za odpoved, zni to logicky.
IMHO prvni verze a jejich zpusob prezentace nebyly uplne nejstastnejsi, ale s tim, co prislo s Java 8, se da uz velice dobre pracovat.
To rad slysim. Zkusim se podivat, jak je to se Scala+JavaFX. Swing se Scalou (pres ten wrapper) mi neprisel prilis stastny, muselo se casto sahat na "low-level" veci.
-
No, z toho mala co sem o tom nasel: pusobi to stabilne (je to tu dlouho), je to aktualizovane, celkem hezky to vypada, je to multiplatformni. Proc tedy doporucit nemultiplatformni .NET reseni nad timhle? Jedine co me napada je, ze se s tim blbe vyviji (coz z wiki nezhodnotim), jinak (krome problemu slepice/vejce) me nic nenapada. Ale proto jsem zalozil tento topic - skoro nic o tom nevim, netusim tedy proc to tak je.
Popsal jste to správně, má to výhodu multiplatformnosti, na oplátku se v tom vyvíjí pomalu a dlouho. Jestliže mnoho firem nepotřebuje multiplatformnost desktop app, tak spíše dají přednost levnějšímu vývoji v .NET.
-
Zkušenost z JavaFX nemám. Pokud tam jde snadno nadefinovat vlastní komponenty, které budou mít vlastní vzhled, tak to nemusí být tak špatné. Pokud se ale jedná o nějakou sadu komponent typu klasické widget frameworky, kde vlastní vzhled rovná se překrytí nějaké metody na vykreslování, všechno tvrdě nahardkodit a to samé z handlováním eventů, tak to taková pecka nebude.
V podstatě neexistuje žádný solidní toolkit pro vytváření UI, které je kompletně vykreslované na grafické kartě, což je důležité zejména právě pro aplikace, které potřebují mít vlastní vzhled nebo aplikace, kde prostě je nutné použít opengl/direct3d pro vykreslování do hlavního okna. Tuším, že např. Qtčkovej OpenGLWidget to hackuje tak, že vytvoří nějaké skryté okno, jenom aby pro něho mohl vytvořit OpenGL kontext a následně renderovat do framebufferu, jehož obsah se potom zobrazí jako normální obrázek do hlavního okna, takže je možné tímhle "hackem" mít OpenGL obsah i v okně, kde mám jinak klasické widgety, nicméně pro nějaké appky typu game engine apod.. to asi není vhodné, protože je vykreslování jednoho frejmu tím pádem podstatně delší.
Qt QML je hodně dobrá věc, ale je to vhodně spíš pro appky, co mají bežet na nějakém embedded systému a potřebují mít vlastní vzhled. Na velké aplikace na desktopu to zřejmě vhodné není (někde jsem to četl).
Jsou tu nějako knihovny jako https://blogs.gnome.org/clutter/, ale ty jsou asi zase moc low level. Co jsem zatím viděl, tak všechny appky, co mají vzhled vykreslovaný na grafické kartě mají vytvořen nějaký vlastní framework, který je ale většinou příliš svázaný se zbytkem kódu appky, takže nejde jen tak ten tu část vzít a použít ji.
Závěř: pokud chcete vlastní vzhled apky, pravděpodobně JavaFX bude nejlepší volba, možná pak to QML.
-
... Závěř: pokud chcete vlastní vzhled apky, pravděpodobně JavaFX bude nejlepší volba, možná pak to QML.
No, nejak pribarvit si to de pres (jejich) css - http://docs.oracle.com/javase/8/javafx/api/javafx/scene/doc-files/cssref.html (ach, to je ale plachta). Jak je to s necim pokrocilejsim netusim.
-
V podstatě neexistuje žádný solidní toolkit pro vytváření UI, které je kompletně vykreslované na grafické kartě
neni to tak ze swing renderuje na windowse cez direct3d?
-
V podstatě neexistuje žádný solidní toolkit pro vytváření UI, které je kompletně vykreslované na grafické kartě
neni to tak ze swing renderuje na windowse cez direct3d?
Máte pravdu, podle https://docs.oracle.com/javase/8/docs/technotes/guides/2d/flags.html to vypadá, že je možné nechat Swing používat pro vykreslování 2D grafiky hw akceleraci. Nevidím tam nikde zmíňku jak je to na Apple, tam to zřejmě nejde. Nějaké animace třeba ve 3d pro vlastní komponenty (http://css3playground.com/3d-flip-cards/) či aplikaci vlastních shaderů s tím člověk zřejmě nesvede. Každopádně díky za info.
-
JavaFX je technicky dobra (.NET neznam) ...
Ale je to desktop Java -takze ten klasicky opruz: instalovat JRE nebo pres webstart, aktualizace a bugfixy pro JRE, nekdy webstart prestane fungovat (a nekdy ani reinstalace nepomuze), uzivatele jsou trochu zmateni, java aplikace jsem nakonec prepsal do QT5 ... QT5 je uzivatelsky preci jen prijemnejsi, jinak co do vlastnosti mi to prijde celkem podobny.
No a pak je tu pruser jmenem Oracle.
JavaFX mela byt portovana na Android (planovana prednaska na JavaOne 2014 ze dne na den zrusena), Oracle od toho ale dava jaksi ruce pryc, ze to nechava na komunite, pak najednou neni kde stahnout SceneBuilder, protoze to taky dal Oracle pryc a je na komnunite aby to nekde zbuildila atd ...
Nemam rad Oracle.
-
V JavaFX 2 se vyviji vcelku rychle, aplikace vypada rozumne a je multiplatformni.
Jak uz ale napsali prede mnou, pokud nemas pod kontrolou cilovy masiny tak dostat aplikaci k uzivatelum je hroznej opruz.
IMHO pokud nedelas specializovanou standalone aplikaci typu IDE, ale neco co jenom zobrazuje data ze serveru, tak stejne vsichni prechazeji z Javy i z .NETu na HTML, jakkoliv zatim byva vyvoj v tom HTML/JS chaosu mene efektivni.
-
Nevidím tam nikde zmíňku jak je to na Apple, tam to zřejmě nejde.
na mac ose je javafx akcelerovany, mozno aj swing. na linuxoch na nvidia driveroch
-
Negativně? Nikoliv, prostě je jenom přesycený trh podobnými technologiemi a pokud fungují kvalitně je protlačení nové těžší a těžší. Co je na tom k nepochopení.
Navíc původní určení JavaFX je RIA a nikoliv desktop applikace. Navíc který blbec by vyvíjel desktopový program a zkoušel jej prodávat v Javě když ti je někdo za 10 sekund dekompiluje přímo do zdrojového kódu? To by mohlo napadnou fakt jenom trotla. Zde je jenom šance v kombinaci s EE kdy business logika bude někde na serveru.
-
Delam v JavaFX par mesicu jeden projekt (vlastni IDE s vlastnim jazykem), resp. uz to bylo dost hotovy, takze bugfixing, new features.. Tudiz nejsem v JavaFX zadny expert. Je to jiny nez mych predchozich 15 let prgani GUI v MFC (C++).. :-D
Je to spis takovy webovy, editor v nasem projektu je ACE (coz je JS projekt), je tam hodne interakce prave Java--JavaScript, skinovani pres CSS, ikony SVG.. Celkovy vzhled se da dost customizovat, jede to na Macu i na Linuxu, a vypada to vsude celkem podobne/stejne.
Nicmene je to Java se vsemi plusy i minusy. Takze hodne streams+lambdas (Java 8), coz neni uplne zle, pomalejsi start, deployment je tam udelany nejak ze se k tomu vygeneruje .exe file (pro Win) a zrejme je u toho i JRE (nebo nutna cast), takze se to da cele vzit, nakopirovat a spustit (i kdyz na stroji neni zadna Java nainstalovana) - coz je fajn, ale je to trochu vetsi.
Co jsem cetl, tak se pocitalo s tim, ze ty JavaFX apky pobezi i na webu - nicmene pokud prohlizece nebudou podporovat Javu, tak to asi nepobezi, jestli to dobre chapu.
Ja osobne bych si dneska asi vybral spis Qt pro vyvoj multiplatformni GUI aplikace, mozna kvuli C++, nativnimu behu, myslim si ze i budoucnost podpory Qt bude lepsi. Vzpominam, jak zarizli puvodni pouzivani Swings v NetBeans 7.0.1 a muselo se prejit na neco noveho, pak zase JavaFX. Meni se to celkem rychle.. Tezko rici.
-
Ale je to desktop Java -takze ten klasicky opruz: instalovat JRE nebo pres webstart, aktualizace a bugfixy pro JRE, nekdy webstart prestane fungovat (a nekdy ani reinstalace nepomuze), uzivatele jsou trochu zmateni, java aplikace jsem nakonec prepsal do QT5 ... QT5 je uzivatelsky preci jen prijemnejsi, jinak co do vlastnosti mi to prijde celkem podobny.
Jak nekdo zminil, jedna moznost je pribalit JRE k aplikaci (s JavaFX jsem to nezkousel, ale jinak je to celkem spolehlive). Osobne potom moc z pohledu uzivatele nevidim rozdil - klasicky exe ke spusteni, trocha mista na disku (zanedbatelne), pamet uz taky nebyva takovy problem, ale tipuju ze vyvoj bude rychlejsi.
-
....
Je to spis takovy webovy, editor v nasem projektu je ACE (coz je JS projekt), je tam hodne interakce prave Java--JavaScript, skinovani pres CSS, ikony SVG.. Celkovy vzhled se da dost customizovat, jede to na Macu i na Linuxu, a vypada to vsude celkem podobne/stejne.
To jsem si všiml, že se teďka hodně používá ACE/CodeMirror jako základ nových editorů (Atom, Brackets). Měl jsem chvíli Brackets a když se mi to párkrát seklo úplně případně na delší dobu laglo, tak jsem se s tím rozloučil.
-
Zkusil bych položit otázku obráceně: Existuje nějaký důvod doporučit JavaFX pro nový projekt v roce 2015 ?
No, z toho mala co sem o tom nasel: pusobi to stabilne (je to tu dlouho), je to aktualizovane, celkem hezky to vypada, je to multiplatformni. Proc tedy doporucit nemultiplatformni .NET reseni nad timhle? Jedine co me napada je, ze se s tim blbe vyviji (coz z wiki nezhodnotim), jinak (krome problemu slepice/vejce) me nic nenapada. Ale proto jsem zalozil tento topic - skoro nic o tom nevim, netusim tedy proc to tak je.
Poloz si taky otazku, co to dneska znamena, kdyz se napise "multiplatformne".
-
Poloz si taky otazku, co to dneska znamena, kdyz se napise "multiplatformne".
Pokud narazite na mobilni zarizeni, tak ale .NET (s WPF?) je na tom snad uplne stejne jako Java s JavaFX, nebo ne?
-
Poloz si taky otazku, co to dneska znamena, kdyz se napise "multiplatformne".
Pokud narazite na mobilni zarizeni, tak ale .NET (s WPF?) je na tom snad uplne stejne jako Java s JavaFX, nebo ne?
Presne tak, ale ja se bohudik nemusim rozhodovat jen mezi JavaFX a .NET. Java v tomto dost zaspala, pred X lety (4-6?) jeste byla sance se s rozumnou licencni politikou dostat i na mobilni platformy, ale potom se to zabilo (viz kauza Dalvik a tak dale).
-
Poloz si taky otazku, co to dneska znamena, kdyz se napise "multiplatformne".
Pokud narazite na mobilni zarizeni, tak ale .NET (s WPF?) je na tom snad uplne stejne jako Java s JavaFX, nebo ne?
QT mi bezi pekne i na mobilu ...
-
No, z toho mala co sem o tom nasel: pusobi to stabilne (je to tu dlouho), je to aktualizovane, celkem hezky to vypada, je to multiplatformni. Proc tedy doporucit nemultiplatformni .NET reseni nad timhle?
Ta vysledna aplikace ale vubec multiplatformni byt nemusi. Specielne u firemniho softu v Jave, u ktereho zamestnanci nemuzou rict, ze to je !@#$ a nebudou to pouzivat, je bezne, ze vyzaduje k chodu X podminek pocinaje Windows a konce nejakym obskurnim nastavenim konkretni verze dalsiho softwaru (nejen ale taky Javy).
-
to je zase manageru co jednaji se zakazniky a rozumi vyvoji firemniho software.
Resite blbiny ale pokracujte, nezastavujte se, neni tu nic k videni.