Sens nauki Swinga?

0

Cześć, czy jeżeli chcę w przyszłości zawodowo programować w Javie, to powinienem nauczyć się Swinga? Czytałem, że następcą Swing jest JavaFX i nawet Oracle zaleca, aby wszystkie aplikacje posiadające GUI tworzyć już tylko na JavaFX. Jednak z drugiej strony dużo napisanych programów zostało stworzonych z wykorzystaniem Swinga i podobno powinno się go znać przynajmniej na średnim poziomie, bo może się kiedyś zdarzyć, że w pracy trzeba będzie zmodyfikować/ulepszyć program napisany w Swingu.
Jak z tym jest?

2

Sens nauki Swinga jest tylko taki ze możesz potrzebować supportować napisane w nim aplikacje, tak jak sam zauważyłeś. Sensu nauki JavaFX nie ma wcale, bo takich aplikacji praktycznie nie ma i nie będzie. JavaFX wypadła nawet z JDK i jest teraz dodatkową, niezależnie rozwijaną biblioteką...

1

Po co się uczyć tego na zapas? JavaFX i Swing to nisza, większość to jednego aplikacje webowe i tutaj warto zainwestować czas. Jak kiedyś gdzieś trafisz i będziesz musiał coś pisać w Swingu to wtedy się nauczysz :)

0

A czy w Javie pisze się często aplikacje desktopowe z GUI?
Np taka biblioteka, jaką zrobił ten koleś na zakończenie całego kursu: link

1

Często - tak, jako jakieś aplikacje na zaliczenie na studiach

Często komercyjnie - nie, bo po co robić aplikację z topornym GUI (w Swing) lub znośnym, ale nie fancy GUI w czymś, czego prawie nikt nie używa, skoro można zrobić to samo w Springu i wystawić przez weba, bez zmuszania ludzi do ściągania jakiś jarów lub instalatorów? ;)

1

A ja myślę że jak uczysz się programować w Javie to wcale nie jest to pozbawione sensu napisania aplikacji w Swingu czy JavaFX. Owszem, komercyjnie tego nie będziesz używał, ale będzie to dobra okazja poćwiczyć pewne elementy z programowania które może przykrywać taki Spring, jak naprzykład wielowątkowość czy operacje IO :)

0

Hej. Może powiem jak to wygląda z mojej perspektywy - trenera programowania:) Zdecydowanie polecam chociaż pobawić się Swingiem, ale nie dlatego, że pisanie aplikacji okienkowych będzie Ci jakoś bardzo przydatne w pracy. Podczas nauki programowania Swing jest świetnym poligonem do zabawy z obiektowością w praktyce + Swing jest względnie łatwy i przyjemny dla początkującego. Dodatkowo częściowo oswajasz się z wzorcami projektowymi (listener -> observer). No i przede wszystkim aplikacja z wyskakującym okienkiem daje o wiele więcej satysfakcji, niż konsolowa:) JavaFX jest równie mało przydatna w pracy komercyjnej, ale do tego jest jeszcze strasznie ciężka do opanowania na początek.

0

Panowie, żeby nie zaśmiecać forum innym tematem, to jeszcze tutaj dopytam: skoro Java nie jest wykorzystywana do pisania aplikacji desktopowych to... do czego jej się używa? xd
Pewnie głównie do pisania aplikacji mobilnych na androida, a także przetwarzania danych na serwerze, czyli backendu (dobrze myślę? xd). Czy jest coś jeszcze?

0
kario97 napisał(a):

Panowie, żeby nie zaśmiecać forum innym tematem, to jeszcze tutaj dopytam: skoro Java nie jest wykorzystywana do pisania aplikacji desktopowych to... do czego jej się używa? xd
Pewnie głównie do pisania aplikacji mobilnych na androida, a także przetwarzania danych na serwerze, czyli backendu (dobrze myślę? xd). Czy jest coś jeszcze?

Do napisania minecrafta. Reszta zastosowań to jakieś nieważne śmieci.

1

Do pisania backendu, jednak backend to nie tylko "przetwarzanie danych na serwerze". Z pomocą Javy pisze się rdzeń działania większości aplikacji. To nie tylko przetwarzanie danych, ale też mechanizmy logowania, zapisywanie do bazy danych, zwracanie danych połączonych z kilku różnych źródeł a do tego zawsze można dodać "front" czyli HTMLa, który jest wypełniany danymi z aplikacji. Do tego połączenia z zewnętrznymi serwisami, praca kilkunastu aplikacji jako jeden spójny system i w sumie wiele innych:) Większość systemów informatycznych ma pod spodem Javę. Do tego oczywiście Android + desktop - nie chodzi o to, że nie pisze się go w Javie tylko generalnie teraz powstaje bardzo mało aplikacji desktopowych w porównaniu do webowych.

Co do samego "przetwarzania danych" bo możesz to trochę błędnie pojmować - każda Twoja interakcja z dowolnym systemem to dane. Wysłanie formularza rejestracji, kilknięcie "lajka" na fejsbuku, otworzenie posta na forum to operacja przetwarzania danych - coś jest zwracane/wyszukiwane, zapisywane, aktualizowane etc. Java jest odpowiedzialna właśnie za to - nie rozum przypadkiem przetwarzania danych jako jakiegoś liczenia statystyk w tle na serwerze.

0

Jeśli uczysz się Javy to swing jest spoko, a jeśli chcesz się nauczyć robić desktopowe aplikacje i pracować w tym komercyjnie to liczy się chyba tylko .NET WPF i stare już WinForms, oraz UWP (chociaż to też nisza). Ja tak zaczynałem i nie miałem później problemu z przesiadką na Jave i backend

1 użytkowników online, w tym zalogowanych: 0, gości: 1