W jakim języku i frameworku zacząć pisać aplikacje okienkowe?

0

Dzień dobry,
Pytanie tak jak w temacie. Jaki język i do niego framework polecacie do pisania okienek? Potrafię C++ i robiłem w bibliotece SFML jednak w moim odczuciu, to prędzej zabawa, niż robienie czegokolwiek porządnego. Oczywiście nie musi być to C++, choć z tego co czytałem to właśnie on, C# i Java górują w tym temacie. Z góry dzięki za każdą odpowiedź.

1

Jak C++ to Qt, trochę w tym pisałem hobbistycznie/na uczelnie i było fajne.
C# też może być ale AFAIK to desktop w C# może być tylko na Windowsa...

2

C#, WPF

1

Ja tak jak wyżej @scibi_92 kiedyś w C++/Qt tak dla fun i całkiem fajnie to się ogarniało, widok w Qt Designerze i potem podpinało się to pod logikę, sloty i sygnały ;)

Pisałem też ciutkę (dosłownie ciutkę) w Javie z JavaFX i podobnie to działa. Widok w Scene Builderze robisz, potem podpinasz kontrolery w Javie i gotowe.

Pytanie zasadnicze. Chcesz pisać dla siebie czy znaleźć w tym pracę?

1

C++/Qt
Java/JavaFX lub Java/Swing
C#/WinForms lub C#/WPF (od UWP i innych wymysłów na raziem bym się trzymał z dala)
JS/Elektron

To są rozsądne opcje. Qt to najlepszy wybór jak znasz C++, tyle że oni nie mają 100% wolnej licencji, jeżeli chcesz zarabiać na tej apce to będzie ciężko.

Najważniejsze pytanie po co ci okienka w 2021? To ma być jakaś apka w stylu kalkulator nadwagi? Rozważ apki webowe lub mobilne, desktop is dead w 2021 no chyba że coś mocno związanego ze sprzętem robisz.

Tu masz przykład minitool który tłumaczy opcje z GUI na polecenie find, napisane w Angularze wiele lat temu - https://blog.marcinchwedczuk.pl/assets/apps/findform/ Inna apka - wieże hanoi animacja również jako JS - http://blog.marcinchwedczuk.pl/assets/apps/hanoi/index.html

Ostatnio pisałem mini toola w JavaFX (https://github.com/marcin-chwedczuk/img2h) i doszedłem do wniosku że 10x lepiej i dla mnie i dla użytkowników jakby to było w React jako strona www. Nic nie trzeba instalować a zrobiło by taką samą robotę...

Oczywiście nie wszystko będzie tak wygodnie jak strony www, programy graficzne, odtwarzacze multimedialne, archiwizery nadal są lepsze w opcji GUI. Ale już apki w stylu wypełnij mi PIT czy śledź móje postępy na siłce spokojnie dają radę jako webówki.

EDIT: JavaFX, Swing, Qt i Elektron działają na wszystkich systemach. WinForms & WPF tylko na Win. W przypadku Java i C# użytkownik musi mieć zainstalowany .net framework lub jvm'a, także ciężko się takie apki dystrybuuje. JavaFX - trudno wygenerować paczkę instalacyjną jeżeli jest się początkującym, C# o wiele łatwiej. Elektrona nie używałem więc nie wiem jak jest z dystrybucją...

1

Nie uczyć się pisania aplikacji okienkowych, od razu pójść w konkretny frontend i dać sobie spokój. Pracy przy pisaniu apek okienkowych jest tyle co kot napłakał a jak już są to jakieś utrzymanie starego szmelcu.

1

Ja do okienek polecam JavaFX, Swing imo jest mniej elastczny. Pisałem tylko dwie małe apki desktopowe także nie mam w tym dużego doświadczenia ;)

2

JavaScript + Electron

zalety:

  • duży ekosystem JS
  • duże możliwości samego JavaScript/HTML/CSS jeśli chodzi o tworzenie GUI. Dodaj do tego frameworki takie jak React czy Vue, gdzie piszesz w deklaratywny sposób. Pisze się przyjemnie.
  • multiplatformowość
  • możesz łatwo zrobić wersję webową/online z tego (o ile od początku będziesz o tym myślał i będziesz miał sensowną architekturę w projekcie i stosował separation of concerns, a nie big ball of mud jak w niektórych projektach, gdzie kod korzystający z Electrona wala się wszędzie po projekcie i przeportowanie do wersji online staje się trudne).

wady:

  • twoja apka zapewne będzie mniejszym lub większym zamulatorem i pożeraczem pamięci, bo apki na Electronie nie słyną z wydajności. I to jest największą bolączką tego rozwiązania.
  • ta multiplatformowość też nie jest out of the box, mogą wystąpić jakieś problemy z tą czy inną platformą

Tym niemniej pytasz o to "W jakim języku i frameworku zacząć pisać aplikacje okienkowe?", a może Electron nie musi być najlepszą opcją na produkcję (nie wiem, jaka jest najlepsza), to myślę, że łatwo w nim zacząć.

0

Przedstawię ci co znam z perspektywy mego doświadczenia w ANSI C w środowiskach UNIX.

  • Jeśli szanujesz zrównoważenie psychiczne - to w OpenMotif. Wiem, że stare, ale to w zasadzie jedyny sposób na programowanie okienek, którego projektanci uzywali mózgu w czasie projektowania.
  • Jeśli uwielbiasz c**** dokumentację z której niewiele wynika co ma być robione w jakiej kolejności aby w ogóle wyświetliło się okienko, to polecam gtk.
  • Jeśli lubisz BDSM i zawsze podpisujesz kontrakt, że mogą z tobą zrobic na sesji co tylko im się podoba, to popróbuj programowania aplikacji okienkowych w gołym Xlib. Miłosnicy bólu i cierpienia kochają takie figle.

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