Diskuze: Nejpoužívanější GUI framework na platformě JAVA
V předchozím kvízu, Online test znalostí Java, jsme si ověřili nabyté zkušenosti z kurzu.

Člen

Zobrazeno 10 zpráv z 10.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí Java, jsme si ověřili nabyté zkušenosti z kurzu.
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:
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,architektech 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í.
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...
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.
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
To že nic nepřinesla byla samozřejmě nadsázka. např. listenery v kolekcích, přehrávání mp3(audio),mkv(video), 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.....
Pěkné počteníčko. Děkuji všem za přispění do vlákna!
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?
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.
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:
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.
Zobrazeno 10 zpráv z 10.