Autor Wątek: WPF kontra środowiska multiplatformowe GUI na przykładzie banalnej aplikacji  (Przeczytany 2879 razy)

Offline vashpan

  • Użytkownik
    • Strona

# Marzec 12, 2010, 23:07:12
WPF to dla mnie niestety porazka :) Idea moze i fajna, interfejs moze i znosny, ale wykonanie i wydajnosc - fatalna. Moze w .NET 4.0 cos zmienia. Podobny ideowo UI jest natywnie pod Mac OS X, dziala to o wiele szybciej i zajmuje zdecydowanie mniej pamieci i do tego jest "jedynym slusznym standardem"... Ja za WPF podziekuje... wolalbym juz rzeczywiscie Jave.

Offline Mr. Spam

  • Miłośnik przetworów mięsnych

Offline sir_xeno

  • Użytkownik

# Marzec 13, 2010, 12:01:36
Pytanie: załóżmy, że chciałbym to napisać w jakimś środowisku multiplatformowym, tak żeby wynikowy exec uruchamiał się na Windzie i na Linuxie (powiedzmy 5 pierwszych dystrybucji z distrowatch.com) bez instalowania jakichkolwiek bibliotek - wszystko co potrzebne powinno być linkowane statycznie.
Mam nadzieję, że masz na myśli dwa różne exec'ki. Jeśli nie, to java (a i wtedy zdarzają się podobno problemy).
W innym przypadku w pierwszej odpowiedzi powinno paść pytanie: po co tak kombinować?
Pisząc gui w gtk, do instalatora dodajesz paczkę gtk, która instaluje się w razie potrzeby (jak np. gimp). Qt zazwyczaj jest jako dll-ki.
Pod linuksem praktycznie każdy ZU ma gtk (qt może trochę rzadziej), bo opierają się na nich najpopularniejsze środowiska graficzne. Jeśli użytkownik jest hardkorowcem i używa tylko programów pisanych pod Wmakera/TWM, czy coś w tym stylu, automatycznie możesz założyć, że będzie wiedział co robić.
Poza tym, pamiętaj, że linkując statycznie jakąkolwiek libkę gpl/lgpl, Twój program musi zostać upubliczniony na takiej samej licencji.

: )
« Ostatnia zmiana: Marzec 13, 2010, 12:50:32 wysłana przez sir_xeno »

Offline owyn

  • Użytkownik

# Marzec 13, 2010, 13:18:50
Drugie pytanie: jak nazywa się technologia do pisania UI w Javie? Bo C# to nie WPF. Przypuszczam, że tworzenie UI w tej technologi filozofią przypomina Windows Forms?
Obecnie najpopularniejsze są Swing i SWT. Nie pisałem nigdy nic w Windows Forms, więc nie mogę tego porównać. Informacje o tych API można znaleźć choćby na Wikipedii.
Cytuj
Trzecie pytanie: jak dużo kodu UI klepie się ręcznie w porównaniu z takim WPF? Przykładowo w powyższej aplikacji mam coś takiego:
Serializacja przy pomocy JAXB wygląda podobnie. Co do automatycznego upadate'u elementów interfejsu, to nie ma czegoś takiego. Standardowo kolekcje w Javie nie wysyłają żadnych zdarzeń - UI trzeba albo aktualizować ręcznie, albo znaleźć / napisać jakieś wrappery, które będą to robiły same.
Taka funkcjonalność jest dostępna w języku Flex, ale on z innych powodów nie za bardzo nadaje się do pisania aplikacji desktopowych.

Offline Kos

  • Użytkownik
    • kos.gd

# Marzec 13, 2010, 13:24:04
SWT to fajna biblioteka do suchych widgetów i eventów, jest jeszcze lib JFace który automatyzuje dużo rzeczy (podpięcie modelu danych pod kontrolkę, abstrakcyjna koncepcja akcji i takie tam). Polecam używać ich razem.

Swing to monolit zawierający zarówno same widgety, jak i jakieś mechanizmy abstrakcji. Ogólnie za nim za bardzo nie przepadam, choć nie jest zły :)