Aplikacje desktopowe w Javie ?

0

Witam. Czy w Javie, obecnie tworzy się (komercyjnie) aplikacje desktopowe z GUI ?
Od pewnego czasu interesuję się tym językiem, ale coraz częściej spotykam się z opinią że aplikacji desktopowych nie pisze się już w Javie ?! Co mnie trochę zmartwiło, bo chciałem właśnie takie tworzyć wraz z wykorzystaniem GUI. Jakie jest wasze zdanie na ten temat ? Jaki język jest obecnie najczęściej wykorzystywany do takich aplikacji ? I czy Java w połączeniu z jakąś inną technologią może z powodzeniem być stosowana do tworzenia powyższych aplikacji ? Pozdrawiam.

1

C# z NET CORE
C++

Pamiętaj,

JAVA TO ZŁO

1
whiplash napisał(a):

Witam. Czy w Javie, obecnie tworzy się (komercyjnie) aplikacje desktopowe z GUI ?
Od pewnego czasu interesuję się tym językiem, ale coraz częściej spotykam się z opinią że aplikacji desktopowych nie pisze się już w Javie ?! Co mnie trochę zmartwiło, bo chciałem właśnie takie tworzyć wraz z wykorzystaniem GUI. Jakie jest wasze zdanie na ten temat ? Jaki język jest obecnie najczęściej wykorzystywany do takich aplikacji ? I czy Java w połączeniu z jakąś inną technologią może z powodzeniem być stosowana do tworzenia powyższych aplikacji ? Pozdrawiam.

NASA nie ma problemów z pisaniem w JavieFX.
https://jaxenter.com/netbeans/developing-nasas-mission-software-with-java

3

Statystyki (indeed.com, cała Polska):

  • TkInter: 0 ofert
  • wxWidgets: 4 oferty
  • electron javascript developer: 6 ofert
  • Delphi developer: 6 ofert
  • Java Swing: 21 ofert
  • JavaFX: 23 oferty
  • WinForms programista: 30 ofert
  • Qt programista: 31 ofert
  • WinForms developer: 34 oferty
  • Programista Delphi: 35 ofert
  • C++ Qt developer: 39 ofert
  • Qt developer: 41 ofert
  • WPF programista: 73 oferty
  • WPF developer: 113 ofert

Jeśli coś pominąłem to proszę o poprawkę.
Wnioski można wyciągać samemu (np. dlaczego jest taka różnica między słowem "programista" a "developer" w środowisku Delphi).

0

Dzięki Wam za informację. Muszę jeszcze głębiej wejść w temat, ale czy tak czy inaczej zostaje przy Javie. Podsyłam jeszcze statystyki https://spectrum.ieee.org/static/interactive-the-top-programming-languages-2018 i obszary zastosowania - bardzo ogólny draft.

Macie jakiś przykłady aplikacji okienkowych wykonane w Java oraz info jakie technologie zostały użyte w wyk. projektach ?

1

IDE w Javie:
IntellIJ/PyCharm/... w Swing
NetBeans
Eclipse

3
whiplash napisał(a):

Macie jakiś przykłady aplikacji okienkowych wykonane w Java oraz info jakie technologie zostały użyte w wyk. projektach ?

Robiłem w Swingu aplikację do generacji raportów (wejście: JDBC, wynik w HTML + GUI).
Polecam Netbeans do takich rzeczy.
Wynik może nie jest tak ładny jak w Delphi, budowanie GUI w IDE trochę mniej wygodne, ale Netbeans działa całkiem znośnie.
Najbardziej wkurzający element: okno dialogowe do wyboru pliku.
Prawie jak Windowsowe, ale jednak nie do końca (mimo używania systemowego look & feel AFAIR) .

0

A co sądzicie o połączeniu JavaFX + BD Oracle 12c (obecnie używam w pracy). Prywatnie chcę stworzyć aplikację okienkową łączącą się z baza danych, coś w rodzaju "aplikacji sprzedażowej" obsługiwanej z okna aplikacji w systemie Windows. Główne założenie, to trzymać się Javy, dodatkowe technologie i rozwiązania, mile widziane (in plus).

0

@whiplash: Naprawdę chcesz walić z takiej armaty ? Wybierz może sobie coś co jest łatwiejsze w utrzymaniu. A od oracla to chyba wszystko będzie przyjemniejsze xD.

1

Ja polecam Swing (pracowałem w tym komercyjnie przez 3 lata - naście lat temu) + postgres - u mnie na windows 10 nic nie waży, nawet nie zauważam że jest odpalony w tle.

1
  1. Generalnie aplikacji desktopowych tworzy się dziś mniej, na rzecz aplikacji webowych, szczególnie w konekście softu "enterprise"
  2. @gspansky o niczym to nie swiadczy ;) ESA swego czasu (względnie niedawno) postanowiła zrobić fajną rzecz -> European Ground Systems Common Core, wspólną infrastrukturę dla naziemnych systemów telemetrycznych wszystkich europejskich misji. Świetna sprawa, tylko projektowaniem zajęli się średnio rozgarnięci ludzie i wydumali że najlepiej zrobić to za pomocą ESB, OSGi i CORBY ;)
  3. JavaFX jest martwa i nic tego nie zmieni. Moim zdaniem to jest wasted effort.
0
Shalom napisał(a):
  1. JavaFX jest martwa i nic tego nie zmieni. Moim zdaniem to jest wasted effort.

A Twoim zdaniem jest bardziej martwa od swinga czy mniej martwa od swinga?

0

W nowym kodzie równie martwa. Różnica taka że w Swingu są jeszcze jakieś aplikacje do utrzymania, ale z perspektywy pracy to olałbym i jedno i drugie.

1

Czyli w czym tworzylbys GUI do aplikacji w Javie?

3

Dobre pytanie to w czym w ogóle tworzyć aplikacje desktopowe? GUI.

Jedyne dobre środowisko jekie znałem to dawno temu było Delphi /Builder.
Potem Swing z Netbeansem, który miał trochę wad (nie nadawał się dla początkujacych), ale i zalet (w Netbeans w miarę rozwiązano problem pracy grupowej nad GUI, co w Delphi/Builder było pełne pułapek).

Sam do GUI wybrałbym Netbeans/Swing - bo ciągle pamiętam jak to się robi. Nowych programistów nie wiem czy bym na Swinga wpuścił - chyba tylko po zapewnieniu, że przejdą tygodniowy gruntowny kurs swinga. Inaczej zrobią te aplikacje tak jak 95% aplikacji w Swingu, czyli bedą działać jak rzygi.

JavaFX wyglądało obiecująco w wersji 1 i zapowiadało się na konkurencjedla Flasha. Ale od kiedy Oracle oświadczył, że koncentruje się na aplikacjach biznesowych to generalnie cały czar prysł.
Stworzono konkurencje dla Swinga... nie do końca potrzebną i do tego nie do końca dorobioną. Działa, ale dokumentacja nadal ssie. SceneBuilder do tego wygląda jak jakiś żart (to musieli robić jakiejś wysokiej klasy specjaliści z Oracle, bo nawet studenci nie potrafią tak spartolić).
Co ciekawe Flash w międzyczasie też umar.

Alternatywą jakąś byłoby QT, gdyby nie język - C++. Nie chce mi się po raz kolejny babrać z ludźmi, którym trzeba tłumaczyć, że void* to nie jest szczyt osiągnięć IT.

1

nie tworzyc, jesli juz to w swingu. ale duzo przyjemniejsze sa jednak technologie od konkurencji, mowie o winforms/wpf, przesiadka na c# nie powinna byc wiekszym problemem.

0

@katelx: fakt, są przyjemne ale WinForms i WPF nie są już rozwijane, a UWP to niewypał, w którym roboty, przynajmniej w Polsce, nie ma. Powstaje co prawda twór o złowieszczym skrócie PWA ale z tym także na dobrą sprawę nie wiadomo jak będzie, bo to w sumie webówka ubrana w kilka desktopowych ficzerów.

Na krajowym rynku WinForms i WPF to głównie utrzymaniówka albo poszukiwanie programisty dlatego, że trzeba przepisać projekt do weba. Może nie jest to rynek desktopowy tak martwy jak w Javie, bo zdarza się, że są tworzone nowe apki w WPF, ale jednak bez świetlanej przyszłości.

Cóż... desktop zwyczajnie umiera i trzeba się z tym pogodzić.

0

@grzesiek51114: ale systemy napisane w nich sa ciagle rozwijane, nawet w jednym duzym banku (bodajze barcap) zaczeli ostatnio greenfield w winformsach wiec nie jest tak zle dla kogos kto sie w tym specjalizuje.

0

@katelx: oczywiście masz rację, jednakże jest to zdecydowana mniejszość ofert na krajowym rynku pracy. Tak jak wspomniałem, może nie jest to tak wielka posucha jak w Javie ale jednak tendencje są mocno spadkowe. Tym bardziej, że są to już po prostu nierozwijane/porzucone technologie.

1

Ja pracowałem w swingu kilka lat, jako rozwojowieć pewnego systemu.
Developerke wspinam dobrze, duża zatysfakcja i szybkie efekty. Wydaje mi się ,że szybciej się pisało niż teraz w angularze 5.
A przecieŻ był tam backend i frontend.

Problem z tego typem aplikacji jest taki ,że albo trzeba je instalować u urzytkownika lub wystawiać jako zasób zdalny powiązany np. z active directory.
U mnie tak było ,że każdy user na swoim kompie miał swoje logi. W przypadku awarii trzeba było dostać się do tych logów, co stawrzoło problem jak user miał wyłączony komputer.
Zapewne da to się rozwiązać przez wysyłanie logów np. kafką ale kiedyś tego nie było i do dziś te systemy na swingu tak działają.

Drugi problem to połączenia JDBC do bazy danych. Nie ma tu serwera aplikacji ,który zarządza pulą połączeń. Tak więc u nas w praktyce wyglądało to tak, że każda odpalona instancja to jedno otwarte połączenie do bazy.
Co dla skali kilku set userów robi się problem po stronie bazy danych. Admin u nas zwiększał pulę połączeń.

Następny problem to już praca usera przy tej palikacji. Gdy odchodziłem aplikacjia potrzebowała 1gb ramu pamięci. Co dla kompów co miały 2gb ramu był problem i następował outOfMemory.
Sprawa optymalizajci wyglądało słabo.

0
Mistrzowski Polityk napisał(a):

Drugi problem to połączenia JDBC do bazy danych. Nie ma tu serwera aplikacji ,który zarządza pulą połączeń. Tak więc u nas w praktyce wyglądało to tak, że każda odpalona instancja to jedno otwarte połączenie do bazy.
Co dla skali kilku set userów robi się problem po stronie bazy danych. Admin u nas zwiększał pulę połączeń.

To akurat nie ma nic wspólnego ze Swingiem, sami sobie takiego RAKa zrobiliście. Zrobiłem kilka swingowych aplikacji z bazą danych. Nigdy nawet do głowy mi nie przyszło, żeby nie było serwera i żeby łaczyć się bezpośrednio do bazy danych. Ale znam takie praktyki.
Btw. swego czasu głównie łaczyłem się przez EJB/ RMI ... nawet było całkiem nieźle.

0

Ja bym stworzył aplikacje okienkową w Rust.
https ://azul.rs/

0
grzesiek51114 napisał(a):

@katelx: fakt, są przyjemne ale WinForms i WPF nie są już rozwijane

Może nie są rozwijane w jakimś zawrotnym tempie, ale to nie znaczy że zostały zarzucone albo że należy ich unikać.

Microsoft po prostu postawił na te beznadziejne kafelki, które na szczęście słabo się przyjmują.

0

Na stronie NetBeansa jest wypisana lista aplikacji opartych o NetBeans Platform i jest całkiem długa: https://netbeans.org/features/platform/showcase.html Są to jednak dość wyspecjalizowane aplikacje, a nie apki dla typowego Kowalskiego.

1

Przykład, dość szybki, że prosta aplikacja w Swing nie musi wyglądać jak kupa. (choć cudów tez nie ma):

0

Trochę to smutne że według Waszych opinii okienkowe GUI umiera. Jestem trochę do nich przyzwyczajony i trudno jest mi sobie wyobrazić iż możne być mały na nie popyt, do tego stopnia że JavaFX może się w ogóle nie przyjąć. Bardzo uparłem się na Javę i chcę kontynuować naukę właśnie tego języka, wspierając ją projektowaniem właśnie aplikacji okienkowej (a nie klepać wszystko do konsoli) z myślą że może w przyszłości przyda się ta wiedza do komercyjnych projektów.

Znakiem tego w jakim kierunku zmierza Java ? Z jakimi technologiami najlepiej obecnie współpracuje, gdzie znajduje zastosowanie ? na jakie jest popyt i realne szanse, że za kilka lat połączenie Javy z tymi technologiami będzie nadal popularne i warto się ich uczyć ?

P.S. Dzięki wszystkim za żywą dyskusje !
Wasze opinie są dla mnie niezwykle cenne i uświadamiają mi jak wiele się zmieniło przez te wszystkie lata, po których postanowiłem wrócić do najwspanialszej dziedziny IT jakim jest właśnie programowanie.

0

Programy okienkowe w Javie są okropne, a GUI wcale nie umiera, po prostu mniej się ich teraz pisze bo hype jest na sieć i urządzenia mobilne. Nadal żeby móc tworzyć programy potrzebne jest IDE, czy nawet posłuchać muzyki, jakiś antywirus, notatnik itp. To wysyłanie wszystkiego w chmurę jeszcze się im przeje, zobaczą jakie to bezpieczne. Dopóki będzie istniał desktop, konsole, programy GUI zawsze będą tworzone.

1

Nie buduje się statków z cegieł. :)

0

Seliga facet który tyle wymaga od juniora, a sam nie potrafił dobrze nauczyć się Scali, więc wolał ją skrytykować. Ach cebulowy Janusz!

0

Tak naprawdę to nawet w czasach świetności Delphi widziałem już próby generowania dynamicznego interfejsu (coś jak w Angular).
W efekcie końcowym GUI dzisiaj sprawdza się przede wszystkim tam gdzie jest potrzebna wysoka responsywność (monitorowanie samolotów czy tam innych statków powietrznych itp).
A REST/Angular w większości enterprajsowych apek w zupełności wystarcza.

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