Jak nejlépe programovat GUI v Javě?

noname

Jak nejlépe programovat GUI v Javě?
« kdy: 29. 12. 2013, 01:18:14 »
Zdravím všechny.

Před nějakou dobou zde bylo založeno téma, ve kterém se autor dotazoval, proč jsou programy v Javě pomalé (což je bohužel také má zkušenost), ze kterého mimo jiné vyplynulo, že programování ve SWINGu je nevhodné. Jelikož jsem pokročilejší začátečník a chci se naučit programovat GUI (nejen) v Javě, potřebuji poradit, jak v ní programovat efektivně, jaké programovací techniky využít (práce s pamětí), a také co za knihovny vkládat místo pomalého SWINGu, aby programy ve zmíněném jazyce stály za to. Věřím, že se zde dozvím spoustu zajímavých informací a samozřejmě budu vděčný za každý příspěvek.

Děkuji Vám předem.


PANKapitanRUM

Re:Jak nejlépe programovat GUI v Javě?
« Odpověď #1 kdy: 29. 12. 2013, 01:25:37 »
Java na desktopu je mrtvá, takže to je naprosto fuk.

Vojta

Re:Jak nejlépe programovat GUI v Javě?
« Odpověď #2 kdy: 29. 12. 2013, 02:26:17 »
Nic moc lepšího než SWING veřejně dostupné není, co já vím. Třeba taková platforma Netbeans jede celá na SWINGu. InteliJ jako IDE takové je taky čistý SWING s vlastním LookAndFeel. Počíst si můžeš tady:
stackoverflow.com/questions/7358775/java-gui-frameworks-what-to-choose-swing-swt-awt-swingx-jgoodies-javafx

Pokud musíš takhle ptát, tak začni se SWINGem, je široce podporovaný a léty ověřený, nauč se dělat GUI a pak můžeš přejít na něco jiného, co tu bude jako programátorovi víc vyhovovat.

Nevím co by si u GUI v Javě chtěl dělat se správou paměti. ;)

noname

Re:Jak nejlépe programovat GUI v Javě?
« Odpověď #3 kdy: 29. 12. 2013, 03:08:21 »
Nic moc lepšího než SWING veřejně dostupné není, co já vím. Třeba taková platforma Netbeans jede celá na SWINGu. InteliJ jako IDE takové je taky čistý SWING s vlastním LookAndFeel. Počíst si můžeš tady:
stackoverflow.com/questions/7358775/java-gui-frameworks-what-to-choose-swing-swt-awt-swingx-jgoodies-javafx

Pokud musíš takhle ptát, tak začni se SWINGem, je široce podporovaný a léty ověřený, nauč se dělat GUI a pak můžeš přejít na něco jiného, co tu bude jako programátorovi víc vyhovovat.

Nevím co by si u GUI v Javě chtěl dělat se správou paměti. ;)

Původně jsem chtěl položit otázku obecnějším způsobem, asi jsem se nevhodně vyjádřil. Jednak mě zajímá programování GUI, ale také programování obecně. To co chci je, abych programoval kvalitně v Javě a aby hotové aplikace byly rychlé a efektivní, protože vím, že toto je často jejich hlavní problém. V předchozí diskusi někteří diskutující např. naznačovali něco o nastavování haldy a byla tam zmíněna spousta jiných zajímavých myšlenek, ale obávám se, že jsem to v tom flamu dostatečně nepochytil a přestože na Javu jako programovací jazyk nemám úplně nejlepší názor, tak se chci především vyvarovat začátečnických chyb a kvalitněji se ji naučit, než ji budu jakkoliv hodnotit, protože mé znalosti v tomto ohledu považuji za nedostatečné. GUI jsem zmínil hlavně proto, že se jednalo o jednu ze záležitostí, které byly kritizovány pro svou pomalost (SWING) a někdo zde naznačoval, že existuje daleko lepší a rychlejší řešení. Tímto ale nechci zastínit další možnosti optimalizace, které očividně neznám, ale také je nutné mít o nich dostatečné povědomí.

Re:Jak nejlépe programovat GUI v Javě?
« Odpověď #4 kdy: 29. 12. 2013, 08:24:38 »
Java na desktopu je mrtvá, takže to je naprosto fuk.
NetBeans používam denne, na mojom 6-ročnom notebooku nemám žiadne problémy s výkonom, hoci samozrejme na silnejšokm desktope šlape rýchlejšie. Teraz som bol pár dní mimo a vyskočilo na mňa plno updates. Až teraz som pochopil, že to je preto, lebo Java je na desktope mŕtva..


D4VID123

Re:Jak nejlépe programovat GUI v Javě?
« Odpověď #5 kdy: 29. 12. 2013, 08:44:18 »
Co myslite tim ze je Java na desktopu mrtva? To uz se nasla nejaka lepsi alternativa, ktera pobezi na Win/Linux/Mac (treba C++/Qt5.2) ?

Re:Jak nejlépe programovat GUI v Javě?
« Odpověď #6 kdy: 29. 12. 2013, 09:15:46 »
Java na desktopu je mrtvá, takže to je naprosto fuk.

Minecraft neni desktopova aplikace?

omg

Re:Jak nejlépe programovat GUI v Javě?
« Odpověď #7 kdy: 29. 12. 2013, 09:31:37 »
Věřím, že se zde dozvím spoustu zajímavých informací a samozřejmě budu vděčný za každý příspěvek.
desktop je skoro mrtvy, takze je potreba uvazovat o tom, ze gui bude bezet i na mobilni platforme a tam plati, ze 3D grafika odlehci procesoru a urychli aplikaci.

noef

  • *****
  • 897
    • Zobrazit profil
    • E-mail
Re:Jak nejlépe programovat GUI v Javě?
« Odpověď #8 kdy: 29. 12. 2013, 09:35:06 »
Java na desktopu je mrtvá, takže to je naprosto fuk.

Neni i OpenOffice v Jave?

andy

Re:Jak nejlépe programovat GUI v Javě?
« Odpověď #9 kdy: 29. 12. 2013, 09:52:52 »
Ale kto by sa paral s c++? Spominana alternativa ku swingu boli javafx a swt. SWT zaobaluje systemove GUI (http://en.wikipedia.org/wiki/Standard_Widget_Toolkit) a javafx je taky pokus oraclu zautocit na flash. Je to cele cacane, ale demo mi bezalo tak 5fps, tak neviem.
Moja skusenost so swingom je, ze je rychly a netreba to riesit. Skor si pozri ako sa da leakovat pamat cez listenery.

Otazne je, co myslis tym ze "stali za to"?

OpenOffice neni v jave ale v c++.

Pupi_1

Re:Jak nejlépe programovat GUI v Javě?
« Odpověď #10 kdy: 29. 12. 2013, 09:58:58 »
NetBeans používam denne, na mojom 6-ročnom notebooku nemám žiadne problémy s výkonom, hoci samozrejme na silnejšokm desktope šlape rýchlejšie. Teraz som bol pár dní mimo a vyskočilo na mňa plno updates. Až teraz som pochopil, že to je preto, lebo Java je na desktope mŕtva..

no neviem ci je celkom pravda, ze netbeans slape celkom v pohode. Ja som pouzival Netbeans na ubuntu na skolsky projekt robeny v C++. Neslo o ziadny extra velky projekt. A poviem dost to sekalo a islo pomaly. :/

inac ak nieco na desktop tak jednoznacne .net(wpf, winforms) to nie su ziadne pofiderne frameworky. Mozno este c++ a mfc, ale to uz asi ide do uzadia. Jedno treba uznat, ze MS to s tymito vecami vie a da si zalezat.

Andrej

Re:Jak nejlépe programovat GUI v Javě?
« Odpověď #11 kdy: 29. 12. 2013, 10:01:52 »
Java na desktopu je mrtvá, takže to je naprosto fuk.

Vzhľadom na to, že Java na desktope je mŕtva tak NetBeans je napísaný a stále aktívne vyvíjaný v Swingu, rovnako je na tom InteliJIdea, presne rovnako na tom je jedno z najrozšírenejších účtovnictiev (FlexiBee). A stovky ďaľších aplikácií - a to len a len kvôli tomu, že Java na Desktope je mŕtva. Alebo aby Java na Desktope chcípla je len zbožné prianie konkurentov pretože v súčastnosti neexistuje iné použiteľné riešenie ktoré by aspoň rozumne bežalo na všetkých hlavných platformách (Mac/Win/Lin) a množstve ďaľších kde je JVM podporovaná?

Za pár dní tu bude pekný flame...

Andrej

Re:Jak nejlépe programovat GUI v Javě?
« Odpověď #12 kdy: 29. 12. 2013, 10:04:48 »
NetBeans používam denne, na mojom 6-ročnom notebooku nemám žiadne problémy s výkonom, hoci samozrejme na silnejšokm desktope šlape rýchlejšie. Teraz som bol pár dní mimo a vyskočilo na mňa plno updates. Až teraz som pochopil, že to je preto, lebo Java je na desktope mŕtva..

inac ak nieco na desktop tak jednoznacne .net(wpf, winforms) to nie su ziadne pofiderne frameworky. Mozno este c++ a mfc, ale to uz asi ide do uzadia. Jedno treba uznat, ze MS to s tymito vecami vie a da si zalezat.

A bude to bežať aj na Mac/Lin? Pretože naši zákazníci majú kancelárske mašiny na Lin, ich grafik má Mac a tiež by radi tú aplikáciu v .NET používali.

r23

Re:Jak nejlépe programovat GUI v Javě?
« Odpověď #13 kdy: 29. 12. 2013, 10:09:02 »
C#, mono, Xamarin

Re:Jak nejlépe programovat GUI v Javě?
« Odpověď #14 kdy: 29. 12. 2013, 10:11:13 »
Zakladni trik je nedelat ve Swingu nic, co by zablokovalo thread, ve kterem se ridi GUI (event dispatch thread).

Precti a aplikuj http://docs.oracle.com/javase/tutorial/uiswing/concurrency/ Tim mas za sebou 80% k uspechu.
Do tech 20% se ti casem prida nutnost nastavit GC, aby nedelal stop-the-world a dalsi drobnosti, ale to nejdulezitejsi je delat cokoli jen trochu delsiho ve vlastnim threadu (ne nutne rucne spoustenem, ruznych toolu, co ti v tom pomohou je v jave kopec, staci si jenom vybrat).