Czym są aplikacje elektronowe i dlaczego są tak powszechne?
Czy zauważyłeś, że wiele nowych aplikacji na komputery wygląda jak strony internetowe? To nie twoja wyobraźnia.
Od Trello do Slack, od WordPress.com po Github, coraz częściej zdarza się, że tak zwane aplikacje desktopowe łączą witrynę z kilkoma natywnymi funkcjami, takimi jak powiadomienia, dostęp do systemu plików i menu. Najpopularniejszą technologią umożliwiającą to jest nazywane Electron i jest używana przez kilka aplikacji, których nawet nie podejrzewasz, takich jak aplikacja Dyskord Discord i kod Visual Studio Microsoft.
Electron ułatwia programistom jednoczesne wydawanie aplikacji w systemach Windows, macOS i Linux, ale są też wady użytkowników. Aplikacje elektronowe są ogromne, z jednej strony. Slack, aplikacja do czatu, zajmuje 237 MB miejsca na dysku twardym na moim Macu, a zużycie pamięci również nie jest niskie. Co obejmuje wszystkie te zasoby? I dlaczego deweloperzy używają czegoś tak nieefektywnego?
Aplikacje elektroniczne są dość łatwe do wykonania
Aplikacje na komputery stacjonarne są trudne do wykonania, zwłaszcza jeśli chcesz, aby były one na różnych platformach. Dostęp do systemu plików działa inaczej w systemie Windows niż na przykład w Linuksie, a powiadomienia działają inaczej w systemie MacOS niż w Windows. Oznacza to, że każdy, kto chce napisać aplikację dla wszystkich trzech systemów operacyjnych (lub nawet dwóch z nich), musi przepisać wiele swoich kodów podczas przenoszenia z jednego na drugiego.
Electron "rozwiązuje" to, oferując pojedynczą platformę, która działa na wszystkich trzech głównych systemach operacyjnych. Oznacza to, że programiści mogą napisać kod dla takich rzeczy jak jednorazowe powiadomienia i oczekiwać, że będzie działał natywnie w każdym systemie operacyjnym. Jeszcze lepiej dla programistów: wszystko można zbudować przy użyciu technologii JavaScript, HTML i CSS, które są znane każdemu, kto koduje w sieci.
Aplikacje elektroniczne mają dość dużo chromu
Jak to jest możliwe? Po części dlatego, że każda aplikacja Electron łączy w sobie kompletną przeglądarkę internetową: Chromium, wersję Google Chrome o otwartym kodzie źródłowym. Jest on dołączany wraz z instrukcjami specyficznymi dla platformy, aby zapewnić, że wszystko zachowuje się dokładnie tak, jak deweloperzy oczekują na wszystkich systemach. Właśnie dlatego komputerowa wersja Slacka zajmuje ponad 200 MB miejsca na dysku twardym: większość Chrome jest tam dołączona.
Każda uruchomiona aplikacja Electron jest mniej więcej pełnym wystąpieniem Chrome. Jak zauważył bloger Joseph Gentle, nie jest to idealne rozwiązanie:
Możesz myśleć o Slacku jako małym programie javascript działającym w innej maszynie wirtualnej VM (chrome), którą musisz uruchomić, aby zasadniczo rozmawiać na IRC. Nawet jeśli masz otwarty prawdziwy chrom, każda aplikacja elektronowa uruchamia własną, dodatkową kopię całej maszyny wirtualnej.
Więc tak, są wady dla użytkowników. Po pierwsze, każda pobierana aplikacja elektronu zawiera większość Chromium, a każda uruchomiona aplikacja wykonuje dobry fragment tego kodu. Nie ma tutaj podziału zasobów, tak jak w przypadku aplikacji natywnych, co oznacza, że aplikacje elektroniczne zajmą więcej miejsca na dysku i pamięci niż aplikacja opracowana specjalnie z myślą o tej platformie. Jeśli wydajność jest czymś, na czym naprawdę zależy, możesz chcieć unikać aplikacji elektronowych.
Zaczekaj, więc elektron jest dobry lub zły?
W tym momencie komputery są tak potężne, że większość użytkowników nawet nie zauważy, jak nieefektywne są aplikacje elektronowe. W rzeczywistości ogromna większość nigdy nie słyszała o Electron. Większość moich współpracowników tego nie robiła i codziennie używają Slacka. Wielu z nich było podekscytowanych, gdy pojawiła się desktopowa wersja Trello, i znowu nie mieli pojęcia, że to aplikacja firmy Electron.
Te aplikacje naprawdę lepiej integrują się z systemem operacyjnym niż strony internetowe. Żyją we własnym oknie. Oferują świetne skróty klawiaturowe, natywne powiadomienia i inne rzeczy, których nie można zrobić w ten sam sposób za pomocą przeglądarki.
I jest dobrze, że aplikacje takie jak Slack, Trello i WordPress.com nie zadałyby sobie trudu, by zaoferować wersję na komputery stacjonarne, gdyby Electron nie istniał, skupiając się na wersjach mobilnych i przeglądarkowych. Nie chodzi więc o to, czy Electron jest zły; to czy aplikacje elektronowe są lepsze niż nic. Jestem gotów powiedzieć tak, ale rozsądni ludzie mogą się nie zgodzić. (A hej, dla tych ludzi, zawsze jest wersja internetowa.)