Web vs desktop

5

Żeby nie zaśmiecać tematu Desktop + swing - propozycja pracy tworzę kolejny

@katakrowa:

Moim zdaniem robienie wszystkiego jako WEB to chwilowa moda. Pociągająca jest pewna ogólność tego typu rozwiązań ale praktyka pokazuje, że nie zawsze jest to potrzebne a coraz częściej okazuje się zbyt kosztowne.

W jaki sposób jest to zbyt kosztowne? Znaczna częśc systemów ma backend w którym jest zawarta pewna logika + persystencja stanu. Przykładowo, robiąć przelew musi być odpowiednia walidacja środków na koncie itp która musi być zrobiona na serwerach banku ze względu na bezpieczeństwo oraz to że w aplikacji desktopowej nie obsłużysz chociażby sensownie Kafki.
Dodatkowo dochodzi fakt że backend umożliwia bezpieczne trzymanie danych, wygodną replikację itp. Tak więc backend tak czy owak jest potrzebny w znacznej części, a aplikacje desktopowe to byłby po prostu zupełnie inny rodzaj frontu, i tyle. Dodatkowo bardziej upierdliwy, ze względu na trudniejsze przeprowadzenie aktualizacji.

Warto spojrzeć na aplikacje mobilne... w większości bliżej im do architektury desktopowej z komunikacją z serwerem niż do typowych aplikacji WEB.

Aplikacje mobilne często mają inne zastosowanie.
Po pierwsze, na początku urządzenia mobilne miały o wiele gorszą wydajność i możliwości sprzętowe (ram, procesor). Natywne aplikacje mobilne umożliwiały lepsze wykorzystanie tego.
Po drugie, dochodzi całe to działanie w tle i pushe notyfikacyjne, a ludzie mają telefony na ogół przy sobie.
Po trzecie, chodzi o cachowanie danych i tryb offline. Jeśli masz aplikację mobilną taką jak Anki, to możesz wykorzystać tryb offline nawet na szczycie Tatr, bo tam bierzesz komórkę, dziala ona w trybie offline, a laptopa tam nie weźmiesz.
Ale to tez ma swoje koszty, bo taka aplikacja mobina pozwalająca na lokalny zapis danych i późniejszą synchronizację z backendem który trzyma stan jest w praktyce multi-leader database. Trzeba rozwiązywać konflikty, przykładowo, użytkownik przejszy flashcardy z danego dnia na komputerze, następnego dnia wykorzysta do tego aplikacje mobilną której wczesniej nie synchronizował bo nie włączył neta. Przejrzy również te flashcardy z dnia poprzedniego, włączy internet i spróbuje dokonać aktualizacji. I cyk, konflikt zapisu.

6

no dobra, to od początku:
Aplikacje desktopowe/mobilne tworzy się prościej niż aplikacje web'owe. Powody to:

  • Możliwość wykorzystania natywnych kontrolek systemowych. Na przykład, jakiegoś guzika z Windowsa, czy Androida.
  • Ma się większe możliwości wykorzystania API systemu, co w przypadku przeglądarek jest niemożliwe ze względu bezpieczeństwa.
  • Znacznie wydajniejsze narzędzia do tworzenia UI. Przeciągnięcie kontrolki z palety do jakiegoś tam layoutu jest prostsze i szybsze niż klepanie DIV'ów w WWW.
  • Wydajność jest kluczowym problemem w niektórych zastosowaniach. Nie piszę o jakimś ERP'ie, ale np. możliwości wykorzystania GPU w edytorze grafiki.
  • Można (zwykle) utrzymywać wspólny stack technologiczny dla frontu i backendu. Np. Swing na froncie ze Spring na backend, albo C# w .NET

Aplikacje OPA to skutek powolnej ewolucji HTML, CSS, JS i patrząc po tempie z jakim zmieniają się frameworki frontendowe daleko jeszcze do osiągnięcia stabilnego rozwiązania. To tempo jest skutkiem braku naprawdę sensownych rozwiązań na rynku. Bo o ile aplikacje GUI są z nami od jakiś 50 lat, to całe WWW ma raptem 30, JS 25, koncepcja, ze można zmieniać jedynie fragmenty wyświetlanego dokumentu (AJAX) powiedzmy 15. Koncepcja aplikacji działającej w przeglądarce w obecnej formie, to pewnie coś koło 10 lat, wcześniej mieliśmy przecież jakieś ActiveX, JavaApplets, Adobe Flash i to drugie, Silverlight, JavaFX.

Udostępnienie jakiejś funkcjonalności przez przeglądarkę ma natomiast od groma zalet, które w większości przypadków przewyższają wady takiego rozwiązania:

  • Brak potrzeby instalacji. Wrzucasz na jakąś już istniejącą stronę link do twojej aplikacji, użytkownik wchodzi, klika "zalkoguj przez Google/Facebook/..." i koniec
  • Brak problemu kompatybilności wstecznej. Mając zewnętrzną aplikację trzeba myśleć o wszystkich wersjach, które użytkownicy mają u siebie. W przypadku OPA wystarczy zgrać moment publikacji komponentów.
  • Bezpieczeństwo - wypuścisz wadliwą wersję aplikacji desktopowej - podatność będzie wieczna. W przypadku wersji przeglądarkowej, luka zostanie załatana przy najbliższym deployu.
  • Możliwości sprzedaży. To co działa ostatnio to SaaS. Użytkownicy indywidualni nie podchodzą do tego z entuzjazmem (chcę zapłacić i mieć), ale instytucje już postrzegają to jako zbawienie. Podpisuję umowę, płacę wdrożenie zakończone. Nie muszę nikogo zatrudniać do utrzymania infrastruktury, zarządzać zmianami produktu i co najważniejsze jak coś się rypnie, to nie będzie to moja wina. Użytkownicy korporacyjni nie mają problemu z "kasą". Mają problem ze zrobieniem czegokolwiek użytecznego w sensownym czasie. Jeżeli mogą mieć gotowe rozwiązanie za 2 bańki, albo coś własnego za bańkę, ale za 2 lata, to w 90% przypadków wybiorą bramkę nr 1.

Czyli, podsumowując, moje prognozy są takie:

  • Użytkownicy instytucjonalni będą wybierać całościowe aplikacje w modelu SaaS. => aplikacje przeglądarkowe.
  • Użytkownicy indywidualni podejdą do tego z większą ostrożnością, bo mają przyzwyczajenie do "posiadania czegoś", a nie "korzystania z czegoś". Jednak na rynku już widać trend przechodzenia do modelu SaaS gdzie się da => aplikacje przeglądarkowe. Bronią się jeszcze kawałki rynku, gdzie wydajność/latencja jest kluczowa. Pakiety graficzne, gry. Ale coraz bardziej idzie to w kierunku modelu przeglądarkowego. Chcesz sobie pograć w najnowszą grę w momencie jej premiery? Odpalasz na czymkolwiek url, płacisz grasz. Masz potrzebę zrobienia jakiegoś obrazka? To samo.
  • Producenci oprogramowania też prą w kierunku świadczenia usług, bo odpada im masa kłopotów z cyklem życia produktu, stabilnością dochodów, zabezpieczeniami antypirackimi itd.
1

ale np. możliwości wykorzystania GPU w edytorze grafiki.
Można (zwykle) utrzymywać wspólny stack technologiczny dla frontu i backendu. Np. Swing na froncie ze Spring na backend, albo C# w .NET

Niewątpliwie, CAD zdecydowanie nadaje się bardziej na desktop, tylko ze jest to raczej mniejsza część softu.

Ma się większe możliwości wykorzystania API systemu, co w przypadku przeglądarek jest niemożliwe ze względu bezpieczeństwa.

Z punktu widzenia mnie jako odbiorcy systemu to na ogół jest wada i dlatego preferuje aplikacje przeglądarkowe bo wiem że aplikacja w takim sandboxie jakim jest przegladarka może mniej.

4

Desktop to już dawno jest nisza z powodów, o których już napisano wyżej. Czy aplikacje pod desktop tworzy się łatwiej? Nie wiem, czy łatwiej, na pewno inaczej. Chociaż przejście z desktop na web wymaga sporo nauki.
Ja to widzę tak: obecnie 80% to web, 20% mobile a desktop to granica błędu statystycznego. Web wlewa się też na mobile - mowa o tych pseudo mobilnych aplikacjach pwa, ale słabo się to póki co przyjmuje.

2

@scibi_92: Jak patrzę na Fusion 360, to mam wrażenie, ze dużo im do przejścia na WWW nie zostało. Co do bezpieczeństwa - 99% użytkowników (użyszkodników), ma na to kompletnie wyrąbane. U nich WWW rozwiązuje zupełnie inny problem - zainstalowanie aplikacji, składające się z więcej niż kliknięcie "install", no może jeszcze "next" jest dla nich mission impossible. Ostatecznie "wchodzę na stronkę i działa" jest argumentem przebijającym wszystko.

7
gajusz800 napisał(a):

Ja to widzę tak: obecnie 80% to web, 20% mobile a desktop to granica błędu statystycznego.

To, że coraz więcej ludzi używa komputera jedynie do przeglądania Internetu i YT nie oznacza, że ilość używanych aplikacji typu desktop zmalała.

  • nie zmalała ilość używanych IDE a wręcz przeciwnie... wzrosła ;
  • nie zmalała ilość osób tworzących muzykę w offline a wręcz przeciwnie... wzrosła ;
  • nie zmalała ilość osób obrabiających Video w offline a wręcz przeciwnie... wzrosła ;
    itp... itd..

W desktop ciągle mamy:

  • gry ;
  • środowiska IDE ;
  • kompilatory ;
  • programy graficzne ;
  • przeglądarki zdjęć ;
  • nie wspominając o samej przeglądarce, która jest aplikacją desktop ;
  • programy do tworzenia / obróbki muzyki ;
  • komunikatory ;
  • edytory tekstów ;
  • systemy raportowe do baz danych ;
  • excele itp...

Procentowy udział ilości aplikacji desktop w globalnej funkcji czasu ich używania może zmalał ale ilościowo desktop jest wciąż rynkiem rosnącym i rozwijającym się.
Rozwijane są narzędzia do tworzenia aplikacji desktop na coraz to nowe platformy i środowiska a także mamy coraz więcej aplikacji stosowanych w nowych obszarach.

5
katakrowa napisał(a):
gajusz800 napisał(a):

Ja to widzę tak: obecnie 80% to web, 20% mobile a desktop to granica błędu statystycznego.

To, że coraz więcej ludzi używa komputera jedynie do przeglądania Internetu i YT nie oznacza, że ilość używanych aplikacji typu desktop zmalała.

Zaklinasz rzeczywistość, albo masz kompletnie inną perspektywę niż moja.

W desktop ciągle mamy:

  • gry ;

Google stadia nvidia coś tam.... Jeszcze wymagają instalacji "klienta", ale to raczej przejściowa sytuacja.

  • środowiska IDE ;

No tutaj masz już od dłuższego czasu przeglądarkowe alternatywy. VSCode, Jetbrains coś tam...

  • kompilatory ;

Raczej ciężko nazwać je programami desktopowymi.

  • programy graficzne ;

Adobe od dłuższego czasu idzie w kierunku przeglądarek. Photoshop pewnie jeszcze długo zostanie rozwiązaniem desktopowym, ale już taki Lightroom ma wersję przeglądarkową i przynajmniej wg. producenta to właśnie ona ma być tą wiodącą.

  • przeglądarki zdjęć ;

e... naciągane. Usług do przeglądania, korekty i przechowywania zdjęć masz od groma. Gdyby nie to, że się trochę lubię pobawić fotografią, to spokojnie by mi wystarczyły rozwiązania typu google photos.

  • nie wspominając o samej przeglądarce, która jest aplikacją desktop ;

No, trochę to jednak poza konkurencją...

  • programy do tworzenia / obróbki muzyki ;

Zależy jakie.

  • komunikatory ;

Przeszłość. Dzisiaj trudniej spotkać komunikator, który nie ma wersji www, niż taki, który nie ma wersji desktop. Oczywiście wersje mobilne się bronią.

  • edytory tekstów ;

Google docs, office 360

  • systemy raportowe do baz danych ;

Dawno poszły w przeglądarki. Tworzysz taki raport, publikujesz z tego dashboard, zapytanie. Przeglądarki kostek OLAP widziałem w przeglądarce jakieś 15 lat temu.

  • excele itp...

Office 365, Google docs...

Rozwijane są narzędzia do tworzenia aplikacji desktop na coraz to nowe platformy i środowiska a także mamy coraz więcej aplikacji stosowanych w nowych obszarach.

Masz jakieś przykłady? Bo serio, kompletnie nie zauważyłem tego zatrzęsienia narzędzi do tworzenia aplikacji desktopowych, podobnie jak rozkwitu rynku dla nich.

2
piotrpo napisał(a):

Zaklinasz rzeczywistość, albo masz kompletnie inną perspektywę niż moja.

Jakoś większość czasu spędzam pracując na aplikacjach desktop niż online. Poczynając od narzędzi do pracy, księgowości, CRM'ach, poprzez gry, obróbkę muzyki, video, zarządzanie plikami, edycję tekstów, hobbystyczne projektowanie elektroniki, poczta e-mail.
Zdecydowana większość wykorzystywanych przeze mnie programów to aplikacje desktop. To webowe są marginesem.
Nie przeczę, może ktoś ma inaczej ale pisanie, że koniec aplikacji desktop na rzecz webowych już bliski to grube przegięcie pały.

2

Wolałbym aby Desktop nie umierał bo ma w miarę spójne zachowania w systemie (kontrolki, skróty klawiszowe, itd)

ale z drugiej strony nie lubię nic instalować, więc wolę np. Google Docs, pomimo tego że wersje webowe zazwyczaj są o wiele bardziej okrojone niż desktopowe (np. Office 365)

5

aplikacje przeglądarkowe mają bardzo dużą zaletę - nie są w stanie wywalić na wierzch popupa w czasie, gdy korzystam z innej aplikacji. dzięki temu można zachować resztki zdrowia psychicznego.

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