Aplikacje webowe — niby trwa ich era, a ja nadal wolę desktop
19.03.2018 | aktual.: 19.03.2018 18:26
Naturalnym tokiem ostatnich lat – sporo systemów i aplikacji, zmierza w kierunku aplikacji webowych. Korzystamy w ten sposób z wielu rzeczy – sklepy internetowe, systemy B2B, Netflix, Office, systemy CRM i CMS etc. Myślę, że nie będzie przesadą, iż w wielu przypadkach – to właśnie dla przeglądarki internetowej, uruchamiamy komputer i urządzenia mobilne.
Dawniej aby skorzystać z jakiegoś programu, należało go wpierw zainstalować. Była to era aplikacji desktopowych, które użytkownik instalował na komputerze (lub innym urządzeniu, gdyż smartfony były wcześniej niż pierwszy iPhone). Prawdziwy, rozbudowany program desktopowy to było coś. Do dziś jestem pełen podziwu dla polskich firm, szczególnie tych małych, których programy akurat uruchamiam.
W ostatnich latach upowszechniły się aplikacje webowe. Jest to naturalne, gdyż technologie internetowe pozwalają, aby swobodnie takie budować. Sam pracuję na co dzień z webowym CRM, który koordynuje część moich działań. Dzięki bankowości elektronicznej, nie muszę również chodzić do banku. Pisząc ten tekst – wracałem pociągiem z Cold Zlotu i korzystałem z dobrodziejstw aplikacji webowych. Internet sprawia, że niezależnie od miejsca w którym jesteśmy – wystarczy znośne połączenie, a pracę wykonamy z dowolnego miejsca na świecie. Oczywiście ma to swoje minusy, gdyż ciężko się wtedy odciąć od pracy, nawet w trakcie urlopu czy weekendu, ale to temat na inną opowieść.
W dobie usług webowych i tego, jak wiele programów przenosimy do sieci...idea aplikacji internetowych, nigdy mnie nie przekonała – a przynajmniej w ostatecznym stopniu. Nadal uważam, że programy desktopowe mają sens. Prześledźmy może dlaczego. Być może jestem ignorantem, być może wykażę się niewiedzą, jednak nieprzerwanie od lat, mam dylemat w tej kwestii. Są to moje przemyślenia, którym daleko do obiektywności.
Przede wszystkim – w erze HTML5 / CSS3 / JavaScriptu z frameworkami i backendu np. w PHP, Javie czy C#, można pozwolić sobie na wiele. Można stworzyć programy dla sieci sprzedaży, firm, systemy biletowe itd. Oczywiście to skromny wycinek tego, co można stworzyć w ten sposób. Zawsze doskwierało mi jednak, że do napisania apki webowej potrzeba wspomnianego HTML, CSS, bez JavaScriptu ani rusz, a przecież backend jeszcze trzeba napisać. Sprawia to, że należy być biegłym w paru językach i stale je przeplatać. Dodatkowo dzień bez nowego frameworku JS to dzień stracony ;‑) Oczywiście zależy od technologii, jednak mam ważenie, że aplikacje desktopowe...wymagają mniej kombinacji. Przykładowo Java – piszemy kod w tym języku, a interfejs tworzymy w natywnym Swing lub JavaFX (w maksymalnym uproszczeniu, pomijam biblioteki, bazy danych etc). Wygodniej mi również użyć desktopowego odtwarzacza AudioCD czy MP3, niż szukać webowych playerów. Swoje konta pocztowe również obsługuję Thunderbirdem, bo tak jest wygodniej, sprawniej i szybciej niż klientami webowymi. Póki co narzędzia pokroju flaszerów telefonów czy diagnostyczne, również są desktopowe.
Idąc dalej - kiedy mamy już aplikację webową, do działania wymaga przeglądarki internetowej. Należy również mieć serwer, gdzie zainstalujemy appkę. Sumarycznie nasz program jest bezużyteczny bez przeglądarki, a dodatkowo zależnie od przeglądarki, rzeczy na frontendzie mogą działać inaczej (kwestia poprawek w kodzie). Aplikacja jest na serwerze, czyli komputerze gdzieś daleko. Można zainstalować na własnym serwerze, lecz doświadczenia z różnych firm pokazują mi, że najczęściej to maszyny biurowe – a takie łatwo zadławić. Typowe przykłady to przeładowanie usług, zbyt duży ruch na stronie i jej padnięcie, wiara w moc tego serwera itd. Nie wspomnę o paradoksach, kiedy pracując na systemie webowym...po prostu brakuje internetu. Znane mi są przykłady firm, które mimo siedziby w centrum dużego miasta, gdzie dochodzi tylko internet mobilny (paradoksalnie), mają paraliż pracy gdy internet wysiądzie lub obniży prędkość. Oczywiście można cachować różne informacje, lecz natura rzeczy jest prosta: aplikacja jest internetowa. Podczas pisania tego wpisu, również internet chwilowo zaniemógł i już obawiałem się, że zapis treści wyrzuci mi timeout, a ja stracę chwilę pracy. Magia - brak internetu w momencie, gdy o tym pisałem.
Tymczasem aplikacje desktopowe działają na lokalnym komputerze, są u nas, nie wymagają przeglądarki, radzą sobie bez internetu. Dlatego posiadając Subiekta GT od InsERT, nawet nie myślę o webowym Subiekt 123. Może to optyka myślenia, ale naprawdę doceniam rozbudowane aplikacje desktopowe od małych firm, chyba bardziej niż platformy webowe. Oczywiście istnieją projekty jak np. Electron, żeby opakować appki webowe w okienka i zrobić z nich program desktopowy. Myślę, że przykłady jak Electron, aby strony internetowe pakować do aplikacji okienkowych, są dobrym przykładem. Sam korzystam z desktopowego Slacka, bo tak jest mi wygodniej. Takie projekty mają swój cel – widocznie zapotrzebowanie na tradycyjne, instalowane programy nadal istnieje. Tym bardziej w sferze urządzeń mobilnych, gdzie czasami pomimo świetnych stron RWD danego systemu, cyklicznie słyszę pytania od wielu firm, czy jest na to aplikacja mobilna.
Aby nie wyjść na hipokrytę to istnieje multum przykładów, gdzie internet jest wygodniejszy. Strumieniowanie muzyki, filmów, dobreprogramy, rozkłady jazdy, sklep internetowy, firmowe CRM i multum innych. Zamiast uruchamiać 10 programów lokalnych, lepiej otworzyć 10 kart przeglądarki. Naprawdę doceniam ideę aplikacji webowych, często z nich korzystam, ale nie przekonuje mnie owczy pęd, że wszystko musi być w sieci – każdy program musi mieć webowy odpowiednik. Łącząc przyjemne z pożytecznym, chętnie zobaczyłbym więcej aplikacji desktopowych, z możliwością pracy sieciowej (drobny przykład to np. Dropbox). Psychologicznie w biznesie nadal można spotkać, że łatwiej klientowi wydać tysiące złotych na program desktopowy, niż na „jakąś stronę internetową”. Przynajmniej w środowisku firm, w którym się obracam.
Sumarycznie – myślę, że aplikacje desktopowe mają sens. Uważam, że pośrednim rozwiązaniem są desktopowe aplikacje offline, z opcjonalną synchronizacją webową. Nie kupuję natomiast pędu, aby wszystko miało appkę w sieci. Może jestem zakorzeniony w starym modelu, ale nadal wolę mieć coś u siebie, niż na odległym serwerze i klikać w przeglądarce internetowej. Myślę, że desktop i web mogą się przenikać. Nie grzebałbym jeszcze komputerów osobistych i myślę, że na płaszczyźnie biznesowej, tradycyjne programy mają jeszcze długą przyszłość. Oczywiście w sektorze e‑commerce aplikacje webowe to oczywistość, jednak poza nim, nadal widzę miejsce dla systemu operacyjnego, jako platformy do uruchamiania programów.
* Spis mojego blogowania: klik