Java [1242]

Zapisz się
Dodaj kartkę Dodaj bana
Powód wlepienia kartki
Wybierz wątek docelowy z listy lub wpisz jego ID
  • Pablo

    Cześć!

    Wiadomo, że swing i awt nie należą do najpiękniejszych bibliotek GUI dla Javy, jakie znacie alternatywy?

    Od siebie wrzucę te bardziej znane: SWT i GWT.

    Może znacie coś bardziej wymyślnego, jak np Elegant Ribbon dla .NET?

    Pozdrawiam
    Pablo
  • boska renia

    GWT to framework raczej webowy, nie desktopowy.
  • Ja nie istnieje (FURBY)

    desktop to nie jest królestwo javy
  • wojteks

    no szczerze mowiac to nic nie jest krolestwem javy juz. ani web, ani desktop, jeszcze tylko troche server side zostalo ale tez pewnie niedlugo wymrze :)
  • Koziołek [brat Javowiec]

    >wojteks napisał
    >no szczerze mowiac to nic nie jest krolestwem javy juz. ani
    >web, ani desktop, jeszcze tylko troche server side zostalo
    >ale tez pewnie niedlugo wymrze :)

    Ciekawe skąd takie wnioski... Zresztą nieważne bo to jak Bill G. zabrzmiało.

    Co do konkurencji dla Swinga. To przede wszystkim SWT. Jest to całkowicie od nowa napisany silnik na potrzeby wyświetlania grafiki, ze szczególnym uwzględnieniem "okienek". Od pewnego czasu paczka dystrybucyjna jest tak skonstruowana, że nie ma problemów z przenośnością (SWT wykorzystuje niewielkie ilości kodu natywnego, ale dzięki temu działa szybciej).
    Wschodzącą gwiazdą jest JavaFX Script, który ma znacznie większe możliwości i lepiej sprawdza się w dziedzinach takich jak animacja. Okienka też pisze się całkiem ładnie i co ważne znacznie szybciej.
    Jeżeli chcesz używać jako GUI przeglądarki to warto po pierwsze pomyśleć o którymś z "lekkich" frameworków. Lekki oznacza w tym przypadku brak obsługi np. EJB3, ale to nie jest potrzebne. W grę wchodzi Spring i ostatnio popularny Apache Wicket. Trzeba jednak pamiętać o kilku rzeczach. Przede wszystkim jest to www nawet jeżeli uruchamiane na serwerze lokalnym np. Jetty. Ma wszystkie zalety, ale też wady www. Należą do nich:
    - kompatybilne przeglądarki
    - ograniczenia w specyfikacji np. tworzenie wątków przez kontener
    - błędy sieciowe np. Connection Timeout przy dużych obliczeniach.
    Jeżeli dobrze znasz swinga to skłaniał bym się do pierwszych dwóch kandydatur SWT lub JFXScript.
  • boska renia

    Z tego co pamiętam z przyglądania się JavaFx, to jest to po prostu nakładka na Swinga, więc może stanowić dla niego konkurencję tylko od strony API -- łatwości/szybkości tworzenia widoków, ale na pewno nie wydajności.

    Frameworkami graficznymi sensu stricte są z powyższych jedynie Swing/AWT oraz SWT; obie te technologie posiadają własne silniki graficzne 2D, mapujące rysowanie komponentów "javowych" na operacje systemu operacyjnego (umożliwiając akcelerację sprzętową) a także inne modele wielowątkowości (Swing jest jednowątkowy).

    Zasadniczą różnicą między Swingiem a SWT jest model pamięci. SWT leży "niżej" na systemie operacyjnym niż Swing i wymaga czegoś dla Javy bardzo niestandardowego - tj. zarządania pamięcią z poziomu kodu użytkownika. Dlatego aplikacje SWT mają tendencję do memory leaków -- wspomnieć wystarczy tutaj chociażby Ecplipsa (mój potrafi dociągnąć do 800 MB po kilku dniach bez restartu), ale działają znacznie szybciej.
  • boska renia

    >wojteks napisał
    >no szczerze mowiac to nic nie jest krolestwem javy juz. ani
    >web, ani desktop, jeszcze tylko troche server side zostalo
    >ale tez pewnie niedlugo wymrze :)

    Królestwem Javy jest bez wątpienia standaryzacja w rozwiązaniach Enterprise. Czy .net doczekał się choćby jakiegoś rozsądnego rozwiązania OR/M z kilkoma niezależnymi implementacjami?

    Dotnety to jest jednak klasa ŚiMP. Oczywiście, można pisać w jednym z wielu języków, ale nasze dzieło uruchomimy jedynie pod windowsem (przytoczyć tu można anegdotę o czarnym fordzie T). VM pod windę to trochę mało jak na enterprise. Mono miało pomóc w tym temacie, ale rozwija się bardzo powoli, mimo dużej kasy od novella..
  • wojteks

    >boska renia napisał
    >>wojteks napisał
    >>no szczerze mowiac to nic nie jest krolestwem javy juz.
    >ani
    >>web, ani desktop, jeszcze tylko troche server side zostalo
    >>ale tez pewnie niedlugo wymrze :)
    >
    >Królestwem Javy jest bez wątpienia standaryzacja w
    >rozwiązaniach Enterprise. Czy .net doczekał się choćby
    >jakiegoś rozsądnego rozwiązania OR/M z kilkoma
    >niezależnymi implementacjami?

    Ladne buzzwordy wymieniasz ale jaka jest faktyczna korzysc z tego? Niewielka. EJB na poczatku bylo wielkim hitem itd, ale potem stopniowo ludzie sie przekonywali ze to jakas pomylka wielka i stopniowo od tego odeszli. Cale te standardy wygladaja jak napisane przez jakichs mega pasjonatow zeby stworzyc swiat idealny, a takie rzeczy nie maja prawa sie udac bo nie zyjemy w swiecie idealnym :)

    Natomiast faktem jest ze standardy np kolejkowania to dobra rzecz i w swiecie innych jezykow momentami brakuje implementacji opartych o takie wlasnie standardy. Tyle ze Sun z ta standaryzacja mocno przesadzil i zeby czegokolwiek uzyc trzeba zrobic 500 zbednych krokow ktore dopiero nowoczesne IDE wyeliminowaly.

    >
    >Dotnety to jest jednak klasa ŚiMP. Oczywiście, można
    >pisać w jednym z wielu języków, ale nasze dzieło
    >uruchomimy jedynie pod windowsem (przytoczyć tu można
    >anegdotę o czarnym fordzie T). VM pod windę to trochę
    >mało jak na enterprise. Mono miało pomóc w tym temacie,
    >ale rozwija się bardzo powoli, mimo dużej kasy od
    >novella..


  • Koziołek [brat Javowiec]

    >wojteks napisał
    >>boska renia napisał
    >>>wojteks napisał
    >>>no szczerze mowiac to nic nie jest krolestwem javy juz.
    >>ani
    >>>web, ani desktop, jeszcze tylko troche server side
    >zostalo
    >>>ale tez pewnie niedlugo wymrze :)
    >>
    >>Królestwem Javy jest bez wątpienia standaryzacja w
    >>rozwiązaniach Enterprise. Czy .net doczekał się
    >choćby
    >>jakiegoś rozsądnego rozwiązania OR/M z kilkoma
    >>niezależnymi implementacjami?
    >
    >Ladne buzzwordy wymieniasz ale jaka jest faktyczna korzysc z
    >tego? Niewielka. EJB na poczatku bylo wielkim hitem itd,
    >ale potem stopniowo ludzie sie przekonywali ze to jakas
    >pomylka wielka i stopniowo od tego odeszli. Cale te
    >standardy wygladaja jak napisane przez jakichs mega
    >pasjonatow zeby stworzyc swiat idealny, a takie rzeczy nie
    >maja prawa sie udac bo nie zyjemy w swiecie idealnym :)
    >
    >Natomiast faktem jest ze standardy np kolejkowania to dobra
    >rzecz i w swiecie innych jezykow momentami brakuje
    >implementacji opartych o takie wlasnie standardy. Tyle ze
    >Sun z ta standaryzacja mocno przesadzil i zeby czegokolwiek
    >uzyc trzeba zrobic 500 zbednych krokow ktore dopiero
    >nowoczesne IDE wyeliminowaly.
    >

    Kolega dawno w Javie nie pisał i nie do końca wie o czym jest mowa.

    Co do standardów to jest jeszcze JSR 296: Swing Application Framework. Taka nakładka na swinga ułatwiająca życie.
  • Ja nie istnieje (FURBY)

    no i swing m budowe MVC i jest rozszerzalny ale do tego trzeba troche pomyslec.
  • boska renia

    > Ladne buzzwordy wymieniasz ale jaka jest faktyczna korzysc z tego? Niewielka. EJB na poczatku bylo wielkim hitem itd, ale potem stopniowo ludzie sie przekonywali ze to jakas pomylka wielka i stopniowo od tego odeszli.

    Zgadzam się; EJB, jak i cały zestaw technologii około Java EE nie do końca jest dla ludzi. Robienie nawet tak szacownych portali jak niniejszy, w JavaEE byłoby najpewniej bez sensu, ale to wcale nie znaczy technologii tych się nie używa. Jeśli nie widać ich na front endzie w internecie, to nie znaczy że ich nie ma i dawno umarły. Z optyki pięciozerowego polskiego Internetu, w którym systemy transakcyjne robi się w PHP, rzeczywiście można mieć wrażenie, że skrypty to $$$, a cała reszta to hoax.

    A co do standaryzacji, to proponuję zajrzeć na http://jcp.org/en/jsr/all <<-- można się zorientować co się w świecie Javy dzieje i zobaczyć jakie firmy pracują nad tymi specyfikacjami.
  • Koziołek [brat Javowiec]

    >boska renia napisał
    >> Ladne buzzwordy wymieniasz ale jaka jest faktyczna korzysc
    >z tego? Niewielka. EJB na poczatku bylo wielkim hitem itd,
    >ale potem stopniowo ludzie sie przekonywali ze to jakas
    >pomylka wielka i stopniowo od tego odeszli.
    >
    >Zgadzam się; EJB, jak i cały zestaw technologii około
    >Java EE nie do końca jest dla ludzi. Robienie nawet tak
    >szacownych portali jak niniejszy, w JavaEE byłoby
    >najpewniej bez sensu, ale to wcale nie znaczy technologii
    >tych się nie używa. Jeśli nie widać ich na front endzie
    >w internecie, to nie znaczy że ich nie ma i dawno umarły.
    >Z optyki pięciozerowego polskiego Internetu, w którym
    >systemy transakcyjne robi się w PHP, rzeczywiście można
    >mieć wrażenie, że skrypty to $$$, a cała reszta to hoax.
    >

    Nie do końca mogę zgodzić ze stwierdzeniem dotyczącym EJB. Stare EJB (1-2.1) było rzeczywiście strasznie toporne. EJB 3 jest już znacznie lepsze i przy niewielkich kosztach można tworzyć cuda. Co do grona. NO tak do pisania zabawek warto uzywać zabawek phytona lub ruby...
  • boska renia

    Oczywiście, EJB3 jest znacznie bardziej dla ludzi niż poprzedniki, ale mimo pozornej łatwości ma w sobie sporo niespodzianek - zakamarków, których trzeba być świadomym i których nie ma opisanych w kilkustronicowych tutorialach (objawiających się na przykład sypaniem RuntimeExceptionami w najdziwniejszych miejscach). Dla programisty przyzwyczajonego do zabawek PHP-owych i operacji na SQL-u może to już być trochę za dużo jak na poznawanie nowej technologii.
  • Koziołek [brat Javowiec]

    Tekst zasłyszany na JUGu "EJB3 Uczymy sie ze specyfikacji". To się sprawdza, bo specyfikacja jest napisana bardzo dla ludzi i nie ma w niej za dużo bełkotu.
  • boska renia

    chwała najwyższa temu, ktory przeczyta specyfikację;) amen!
  • boska renia

    ... zapomniałem dodać: aj waj;)
  • sergi


    Wiadomo, że swing i awt nie należą do najpiękniejszych bibliotek GUI dla Javy, jakie znacie alternatywy?

    Jeżeli chodzi o wygląd aplikacji okienkowych (nie programuje rzeczy web'owych już długi czas), to swing wygląda dokładnie tak jak go sobie każdy ubierze.
    Tu jest ładny i darmowy L&F: https://substance.dev.java.net/ (żeby komponenty wyglądały ładnie)
    A tutaj layout: http://www.miglayout.com/ (żeby względnie łatwo i bez większych ograniczeń można było je porozmieszczać)

    I idąc krok dalej, jeżeli potrzeba bajerów niewielkim kosztem (na bazie substance):
    http://weblogs.java.net/blog/kirill...

  • Anonim

    >Pablo napisał
    >Cześć!
    >
    >Wiadomo, że swing i awt nie należą do najpiękniejszych
    >bibliotek GUI dla Javy, jakie znacie alternatywy?
    >
    >Od siebie wrzucę te bardziej znane: SWT i GWT.
    >
    >Może znacie coś bardziej wymyślnego, jak np Elegant
    >Ribbon dla .NET?
    >
    >Pozdrawiam
    >Pablo

    Brzydki wygląd oraz kiepska responsywnośc Swinga jest mitem, który niestety wciąż jeszcze pokutuje w świadomości programistów. Owszem, kiedyś tam w przeszłości, kiedy trzeba było wybierać między Motifem a Metalem, a komputery były same w sobie dużo wolniejsze, nie wyglądało to najlepiej. Teraz jednak jest zdziebko inaczej. Swing działa znacznie szybciej (w szczególności na Mustangu), potrafi dobrze naśladować natywny look & feel, tak iż laik nie będzie w stanie nawet stwierdzić, że ma do czynienia z Javą, a wymęczony Ocean zostanie niedługo zastąpiony fantastycznym, całkowicie wektorowym Nimbusem. Zresztą weźmy choćby takie Netbeansy - doskonały przykład tego co można zrobić przy użyciu Swinga, a dla mnie prywatnie najestetyczniejsze IDE jakie istnieje.
    To tyle jeśli chodzi o Swinga.

    SWT/JFaces z racji topornego API i konieczności babrania się z zasobami nie polecam - no chyba, że chcesz coś pisać na Eclipsie.

    A z innych toolkitów sugeruję rzucić okiem na Qt Jambi - osobiście miałem trochę do czynienia ze zwykłym Qt, ale znając skandynawską praktyczność producenta, mogę w ciemno stwierdzić że ten bindings jest także mniej lub bardziej udany. Jedynym problemem mogą być tutaj kwestie licencyjne.

    Serdecznie pozdrawiam