Všimli jste si, že spousta nových desktopových aplikací vypadá jako webové stránky? Není to vaše fantazie.
Od Trella po Slack, od WordPress.com po Github je stále častější, že takzvané desktopové aplikace sdružují web s několika nativními funkcemi, jako jsou oznámení, přístup k souborovému systému a nabídky. Nejběžnější technologie, která to umožňuje, se nazývá Elektron , a používá ji několik aplikací, které byste ani neměli podezření chatovací aplikace Discord a Microsoft Kód Visual Studio .
Electron usnadňuje vývojářům vydávat aplikace současně pro Windows, macOS a Linux, ale pro uživatele existují nevýhody. Elektronové aplikace jsou obrovské, pro jednu věc. Slack, aplikace pro chat, zabírá na mém Macu 237 MB místa na pevném disku a také není nízká spotřeba paměti. Co zabírá všechny ty zdroje? A proč vývojáři používají něco tak neefektivního?
Elektronové aplikace se dělají docela snadno
Desktopové aplikace se těžko vyrábějí, zvláště pokud chcete, aby byly multiplatformní. Přístup k systému souborů funguje například v systému Windows jinak než v systému Linux a oznámení fungují jinak v systému macOS než v systému Windows. To znamená, že každý, kdo chce napsat aplikaci pro všechny tři operační systémy pro stolní počítače (nebo dokonce dva z nich), musí při přenosu z jednoho do druhého přepsat hodně svého kódu.
Společnost Electron to „řeší“ nabídkou jediné platformy, která funguje na všech třech hlavních desktopových operačních systémech. To znamená, že vývojáři mohou napsat kód pro věci, jako jsou oznámení, jednou a očekávat, že bude nativně fungovat v každém operačním systému. Ještě lepší pro vývojáře: vše lze vytvořit pomocí Javascript, HTML a CSS - technologie, které každý, kdo kóduje pro web, velmi dobře zná.
Elektronové aplikace přicházejí s velkým množstvím chromu
Jak je tohle možné? Částečně proto, že každá aplikace Electron obsahuje kompletní webový prohlížeč: Chromium, otevřená verze prohlížeče Google Chrome . To je dodáváno společně s pokyny pro konkrétní platformu, aby bylo zajištěno, že se vše bude chovat přesně tak, jak vývojáři očekávají na všech systémech. To je důvod, proč desktopová verze Slacku zabírá přes 200 MB místa na pevném disku: většina prohlížeče Chrome je zde obsažena.
Každá spuštěná aplikace Electron je víceméně úplnou instancí Chromu. Jako blogger Joseph Gentle vypíchnut , to je stěží ideální:
Slack si můžete představit jako malý javascriptový program běžící v jiném operačním systému VM (chrome), který musíte spustit, abyste mohli v podstatě chatovat na IRC. I když máte otevřený skutečný chrom, každá elektronová aplikace spouští vlastní, extra kopii celého virtuálního počítače.
Takže ano, pro uživatele existují nevýhody. Za prvé, každá aplikace Electron, kterou stáhnete, obsahuje většinu Chromia a každá aplikace, kterou spustíte, vykonává značnou část tohoto kódu. Neexistuje zde žádné sdílení zdrojů, jako je tomu u nativních aplikací, což znamená, že aplikace Electron zaberou více místa na pevném disku a paměti než aplikace vyvinutá speciálně pro vaši platformu. Pokud je výkon něco, na čem vám opravdu záleží, možná se budete chtít elektronovým aplikacím vyhnout.
Počkejte, takže je elektron dobrý nebo špatný?
V tomto okamžiku jsou počítače tak silné, že většina uživatelů si nikdy ani nevšimne, jak neefektivní jsou aplikace Electron. Ve skutečnosti drtivá většina o Electronu nikdy ani neslyšela. Většina mých spolupracovníků ne, a všichni používají Slack každý den. Mnozí byli nadšeni, že viděli verzi Trello pro stolní počítače, a znovu neměli tušení, že jde o aplikaci Electron.
A tyto aplikace se opravdu lépe integrují do vašeho operačního systému lépe než webové stránky. Žijí ve svém vlastním okně. Nabízejí skvělé klávesové zkratky, nativní oznámení a další věci, které nelze udělat stejným způsobem pouze v prohlížeči.
A je to dobrá sázka, že aplikace jako Slack, Trello a WordPress.com by se neobtěžovaly nabídnout verzi pro stolní počítače, pokud by Electron neexistoval, a místo toho by se zaměřily na verze pro mobilní zařízení a prohlížeče. Otázkou tedy není, zda je Electron špatný; je to, zda jsou aplikace Electron lepší než nic. Jsem ochoten říci ano, ale rozumní lidé mohou nesouhlasit. (A hej, pro ty lidi vždy existuje webová verze.)