Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: Nejpoužívanější GUI framework na platformě JAVA

Aktivity
Avatar
Zelená Veverka:27.4.2019 11:45

Zdravím,
jaké je podle Vás nejpoužívanější GUI framework v JAVE? V čem děláte v práci, doma...Co vidíte do budoucna? Vaše názory.

Editováno 27.4.2019 11:45
Odpovědět
27.4.2019 11:45
Oblíbený Editor: Microsoft NotePad Destructor; HW sestava: AMD Kalašnikov; Literatura: Evžen Oněgin - Linux přichází;...
Avatar
Samuel Kodytek
Tvůrce
Avatar
Samuel Kodytek:27.4.2019 16:48

Ahoj,

Obecně zastávám názoru, že desktopové aplikace jsou dost nepoužitelné. např. zrovna v Javě, skoro každým většim updatem něco změní... např. od Java 9+ není nativně v JRE zabudovaná JavaFX. Musíš si jí stáhnout jako externí knihovnu.

Dle mého názoru a to co i vídám v praxi, je mnohem lehčí vyvíjet web aplikace. Např. Form Factory (posilka), maji jejich systém, který používají u pokladen, napsaný jako web aplikaci. Dneska je to už i lehčí z hlediska "cross platofrmnosti", web ti poběží na každém OSku, mezitím co nějaká GUI knihovny ti třeba nepoběží na OS X. Minimálně tam bude téměř vždy nějaký malý rozdíl v tom jak se chová.

Abych ti zodpověděl tvoji otázku:

  • JavaFX - Už bohužel není součástí JRE. Podporuje nějaké CSSko a má i vlastní XML formát. Připomíná to v hodně věcech WPF aplikace v C#.
  • Swing
  • AWT
Nahoru Odpovědět
27.4.2019 16:48
There is more than one way to screw it
Avatar
Robert Michalovič:28.4.2019 6:39

Pro čistou(core) JavuSE pořád dominoval a dominuje Swing. Legacy systémy na tom krásně jedou, většina chyb je ze Swingu za danou dobu plně vychytaná. Vypadá to, že budoucnost je rozhodně Swing nebo něco co z něj vychází. Look and Feel vám umožnuje měnit uživatelské rozhraní bez změny kódu, kromě gest pro dotykovou obrazovku má Swing naprosto vše.

Neúspěch JavaFX byl hlavně v konceptu MVC tvz. FXML a v novém API, který se nikomu nechtěl prakticky učit ( nemluvím o začátečnících ale o seniorech,archi­tektech a odbornících ). Proč něco měnit, že? Když to funguje a to nové nic nového to nepřináší. A to JavaFX dělala, řešila to samé úplně jinak. Navíc na ni ještě ležel neúspěch v tom, že vycházela z JavaFX1.0, která na Java SE ani neběžela.( rok 2010 ).

2Samuel : Od Java 11 není JavaFX součástí JDK. V Java9 i 10 je plně funkční.

 
Nahoru Odpovědět
28.4.2019 6:39
Avatar
Samuel Kodytek
Tvůrce
Avatar
Odpovídá na Robert Michalovič
Samuel Kodytek:28.4.2019 8:44

Dík za upřesnění, my bad... ale nesouhlasím s tím, že JavaFX nepřináší nic nového. Co takový binding properties? pokud se nemýlím tak swing nic takového nativně nemá ne? I to cssko je docela powerful "featura". A určitě bych byl schopný najít víc rozdílů.

Přístup, když to funguje tak není důvod upgradu, se mi nelíbí. S tímhle přístupem by spoustu programátorů zůstalo u delphi... :p

I Microsoft přišel na to, že je důležité inovacím a začali s vývojem open sourcového .net core, který je mnohem víc lightweight než jejich starý .net.

Editováno 28.4.2019 8:47
Nahoru Odpovědět
28.4.2019 8:44
There is more than one way to screw it
Avatar
Atrament
Tvůrce
Avatar
Odpovídá na Samuel Kodytek
Atrament:28.4.2019 12:46

JavaFX funguje normálně i teď, jenom je ji teď třeba přidávat jako jakoukoliv jinou knihovnu třetí strany. S pomocí Mavenu to ale není žádný velký problém.

Celé roky se mluví o tom jak JavaFX nahradí Swing, ale Oracle to vedl tak, že byla celé roky pořád lepší volba ten Swing a je jí pořád i dnes. Swing už je prostě odzkoušený, vyladěný (i když zdaleka ne bezchybný), výborně zdokumentovaný a má parádní podporu v Netbeans IDE a v Netbeans Platform, což jsou podle mně dva ultimátní nástroje pro vývoj javovské desktopové aplikace.

Nicméně si myslím, že je současný stav (odloučení od Oracle, otevření pro další vývojáře) pro JavuFX požehnáním, a že se konečně věci dají do pohybu, protože hůř než pod vedením Oraclu na tom snad JavaFX ani být nemohla. Teď teprve imho začíná ta pravá éra JavaFX. Škoda že s téměř desetiletým zpožděním :(

 
Nahoru Odpovědět
28.4.2019 12:46
Avatar
Odpovídá na Samuel Kodytek
Robert Michalovič:29.4.2019 6:28

To že nic nepřinesla byla samozřejmě nadsázka. např. listenery v kolekcích, přehrávání mp3(audio),mkv(vi­deo), podpora kodeku h264 apod, to všechno standardní Java nemá. Myslel jsem to tak, že nic zásadního a revolučního.

O C# nevím nic takže k tomu se nevyjadřuji. Co se týče inovací, né každá inovace co se tak tváří je skutečná inovace. ( šetřící náklady, zdroje, čas, apod.. )

2Attrament : Skutečně není vhodné konstatovat zjevné (tvůj první odstavec). Nebavíš se s niemandy. Mimochodem, už sis to vyzkoušel v Java11 ? Modulární vs nemodulární řešení? Tím jak upravily JVM v 11tce, kdy je nutno při spuštění dávat spouštěcí parametry k modulům i pro nemodulární řešení tomu rozhodně nepomohly. Přestal fungovat double-click na spuštění v GUI u JavaFX oproti Swingu. Samozřejmě se to dá obejít ale je to zbytečně komplikované, což začátečníky zase přesune spíš ke Swingu.

Závěr: autor se zeptal, já svůj názor napsal. Tím jsem v tomto vláknu hotov. Tak zatím.....

 
Nahoru Odpovědět
29.4.2019 6:28
Avatar
Zelená Veverka:29.4.2019 9:48

Pěkné počteníčko. Děkuji všem za přispění do vlákna!

Nahoru Odpovědět
29.4.2019 9:48
Oblíbený Editor: Microsoft NotePad Destructor; HW sestava: AMD Kalašnikov; Literatura: Evžen Oněgin - Linux přichází;...
Avatar
Lubor Pešek
Člen
Avatar
Lubor Pešek:29.4.2019 10:07

Osobně mám zkušenost pouze s web api přes JSP (v podstatě jde o Spring MVC framework, který komunikuje přes controller s JSP (Java Server Page). Tam už používáš jak HTML, tak CSS, ale můžeš i JS a hlavně právě JSP syntaxi, která je takový hibryd mezi Javou a skriptovacícími jazyky (kupříkladu formuláře se dělají přes tagy form a ty se různě rozšiřují).

Jak říkal Samuel na začátku. Desktopové aplikace jako takové jsou už pasé. Podívej se na sebe - co používáš? Používáš aplikace, které si stáhneš a jedeš na nich offline nebo většinou chceš webovou appku? Případně mobilní appku.

Takže jestli ti můžu dát typ - nauč se Spring. Aspoň nějaký základ (můžeme se domluvit a jestli máš základy Javy a ovládáš OOP, tak ti můžu poslat príma tutoriál, kterým step by step vytvoříš webovou aplikaci a dokonce se naučíš Spring + Hibernate).

Ubírej se mobilními a webovými aplikacemi. A pamatuj i do budoucna - uč se to, co je žádané na trhu, abys to mohl využít i v praxi. Ty by ses mohl naučit dneska Javu FX, ovládal bys ji, ale k čemu, když to od tebe nikdo nebude moc požadovat.

Ale pochopitelně najdou se i firmy, které dokonce jedou dneska i na swingu, ovšem to je už výjimka.

Mimochodem - věcná k tématu... Nevíte, proč byla JavaFX vyhozena ze standardní knihovny, ale swing tam zůstává dokonce i v Javě 11?

Nahoru Odpovědět
29.4.2019 10:07
Existují dva způsoby, jak vyřešit problém. Za prvé vyhoďte počítač z okna. Za druhé vyhoďte okna z počítače.
Avatar
Zelená Veverka:29.4.2019 10:35

Já osobně jedu desktop aplikace. Komunikace s elektronikou přes seriovou linku. Nevím v čem by mi mohlo být programovaní pro web přínosem v tomto směru. Kvůli práci jsem se učil pascal, ta padla, takže teď se rozhoduju mezi c++ a javou.

Jinak jak to je s javou a webem? Domníval jsem se, že od toho je JAVAscript -front, PHP back.

Nahoru Odpovědět
29.4.2019 10:35
Oblíbený Editor: Microsoft NotePad Destructor; HW sestava: AMD Kalašnikov; Literatura: Evžen Oněgin - Linux přichází;...
Avatar
Lubor Pešek
Člen
Avatar
Odpovídá na Zelená Veverka
Lubor Pešek:29.4.2019 10:58

Java jako taková není webový jazyk. V podstatě se Java využívá pouze na backendu a potom přes frameworky provolává frontedové třídy, které umožní zozbrazit HTML kód (pro statiku) případně JS (pro dynamiku). Potom už jsi přímo v Javascriptu a můžeš využívat jeho frameworky.

Takže Java je v podstatě takový mozek, který na backendu:

  • řeší komunikaci s databází
  • řeší ukládání/načítání z různých souborů
  • pracuje se zdrojovými soubory (fotky, configy, cascady, jazyková notace atd.)
  • řeší, která stránka se zobrazí, jak budou spolu stránky komunikovat atd. (myslím tím, že řeší třeba i sessiony a tím i předávání dat, která uživatel vloží)
  • současně Java mimo jiné definuje právě služby (service), které dává k dispozici i jiným aplikacím. Takže to funguje tak, že veškerá logika je uzavřená uvnitř Javy a ta vystaví služby. No a to, jestli ty služby využije aplikace C++, .NET, PHP nebo přímo webový framework Javy, to je už na dohodě firmy a na programátorovi, co komu umožní.

Osobně třeba teď experimentuju s projektem, který má backend v Javě, je propojen přes Hibernate s databází, kromě toho dokáže generovat CSV, XML, JSON, XLSX formáty, vystavuje služby, které jednak dokážu zobrazit online přes Spring MVC framework na web a současně offline přes JavaFX aplikaci (řeším díky tomu synchronizaci dat - opět přes Javu) no a další rozšíření bude pro mobilní aplikace.
Veškerá logika aplikací bude v Javě a já už jen dodám jak webu, tak javě FX tak i mobilní aplikaci potřebná data a oni už si to pouze nějak zobrazí.

To je celá úloha Javy na webu:) Prostě taková centrála, která všechno zpracuje a pak to jen předá komukoliv na zlatém podnose.

Nahoru Odpovědět
29.4.2019 10:58
Existují dva způsoby, jak vyřešit problém. Za prvé vyhoďte počítač z okna. Za druhé vyhoďte okna z počítače.
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 10 zpráv z 10.