Czy zauważyłeś, że wiele nowych aplikacji komputerowych przypomina strony internetowe? To nie jest twoja wyobraźnia.
Od Trello po Slack, od WordPress.com po Github, tak zwane aplikacje komputerowe coraz częściej łączą witrynę internetową z kilkoma natywnymi funkcjami, takimi jak powiadomienia, dostęp do systemu plików i menu. Najpopularniejsza technologia, która to umożliwia, to tzw Elektron i jest używany przez kilka aplikacji, których możesz nawet nie podejrzewać, na przykład aplikacja do czatu Discord i Microsoft Visual Studio Code .
Electron ułatwia programistom jednoczesne wydawanie aplikacji w systemach Windows, macOS i Linux, ale mają wady dla użytkowników. Po pierwsze, zastosowania elektronów są ogromne. Slack, aplikacja do czatu, zajmuje 237 MB miejsca na dysku twardym na moim Macu, a zużycie pamięci też nie jest niskie. Co pochłania te wszystkie zasoby? Dlaczego programiści używają czegoś tak nieefektywnego?
Aplikacje Electron są dość łatwe do wykonania
Aplikacje desktopowe są trudne do wykonania, zwłaszcza jeśli chcesz, aby były wieloplatformowe. Dostęp do systemu plików działa inaczej w systemie Windows niż na przykład w systemie Linux, a powiadomienia działają inaczej w systemie MacOS niż w systemie Windows. Oznacza to, że każdy, kto chce napisać aplikację dla wszystkich trzech systemów operacyjnych dla komputerów stacjonarnych (lub nawet dwóch z nich), musi ponownie napisać dużo swojego kodu podczas przenoszenia z jednego na drugi.
Electron „rozwiązuje” ten problem, oferując pojedynczą platformę, która działa na wszystkich trzech głównych systemach operacyjnych dla komputerów stacjonarnych. Oznacza to, że programiści mogą raz napisać kod dla rzeczy takich jak powiadomienia i oczekiwać, że będzie on działał natywnie w każdym systemie operacyjnym. Jeszcze lepsze dla programistów: wszystko można zbudować przy użyciu Javascript, HTML i CSS - technologii, które każdy, kto koduje w sieci, jest dobrze zaznajomiony.
Aplikacje Electron zawierają prawie cały Chromium
Jak to jest możliwe? Po części dlatego, że każda aplikacja Electron zawiera kompletną przeglądarkę internetową: Chromium, otwarta wersja przeglądarki Google Chrome . Jest to dołączone do instrukcji specyficznych dla platformy, aby zapewnić, że wszystko działa dokładnie tak, jak oczekują programiści we wszystkich systemach. Dlatego wersja Slacka na komputery zajmuje ponad 200 MB miejsca na dysku twardym: większość Chrome jest tam umieszczona.
Każda uruchamiana aplikacja Electron jest mniej więcej pełną instancją Chrome. Jako bloger Joseph Gentle wskazany , to nie jest idealne:
Możesz myśleć o Slacku jako o małym programie javascript działającym w innej maszynie wirtualnej z systemem operacyjnym (chrome), który musisz uruchomić, aby zasadniczo rozmawiać na IRC. Nawet jeśli masz otwarty prawdziwy Chrome, każda aplikacja Electron uruchamia własną, dodatkową kopię całej maszyny wirtualnej.
Więc tak, są wady dla użytkowników. Po pierwsze, każda aplikacja Electron, którą pobierasz, zawiera większość Chromium, a każda uruchamiana aplikacja wykonuje sporą część tego kodu. Nie ma tutaj współdzielenia zasobów, jak ma to miejsce w przypadku aplikacji natywnych, co oznacza, że aplikacje Electron będą zajmować więcej miejsca na dysku twardym i pamięci niż aplikacje opracowane specjalnie z myślą o Twojej platformie. Jeśli naprawdę zależy Ci na wydajności, możesz unikać aplikacji Electron.
Czekaj, więc czy elektron jest dobry czy zły?
W tym momencie komputery są tak potężne, że większość użytkowników nawet nie zauważy, jak nieefektywne są aplikacje Electron. W rzeczywistości zdecydowana większość nigdy nawet nie słyszała o Electronie. Większość moich współpracowników tego nie zrobiła i wszyscy używają Slacka każdego dnia. Wielu było podekscytowanych, widząc wersję Trello na komputery stacjonarne, i znowu nie mieli pojęcia, że to aplikacja Electron.
Te aplikacje naprawdę lepiej integrują się z Twoim systemem operacyjnym niż strony internetowe. Mieszkają 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, używając tylko przeglądarki.
I dobrze jest założyć, że aplikacje takie jak Slack, Trello i WordPress.com nie zawracałyby sobie głowy oferowaniem wersji komputerowej, gdyby nie istniał Electron, skupiając się zamiast tego na wersjach mobilnych i przeglądarkowych. Więc pytanie nie brzmi, czy Electron jest zły; chodzi o to, czy aplikacje Electron są lepsze niż nic. Chętnie się zgodzę, ale rozsądni ludzie mogą się nie zgodzić. (I hej, dla tych ludzi zawsze jest wersja internetowa).