Забелязали ли сте, че много нови настолни приложения изглеждат почти като уеб сайтове? Това не е твоето въображение.
От Trello до Slack, от WordPress.com до Github, стана все по-разпространено за така наречените настолни приложения, които да обединяват уеб сайт с няколко характерни функции като уведомления, достъп до файловата система и менюта. Най-разпространената технология, която позволява това, се нарича Electron, и се използва от няколко приложения, които може и да не подозирате, като Chat-приложението Discord и Microsoft Visual Studio Code.
Electron улеснява разработчиците да пускат приложение едновременно на Windows, MacOS и Linux, но има и недостатъци за потребителите. Електронните приложения са огромни, от една страна. Slack, приложение за разговори, заема 237 MB място на твърдия диск на моя Mac, а консумацията на памет не е ниска. Какво поглъща всички тези ресурси? И защо разработчиците използват нещо толкова неефективно?
Настолните приложения са трудни за правене, особено ако искате те да са междуплатформени. Достъпът до файловата система работи по различен начин в Windows, отколкото в Linux, например и уведомленията работят по различен начин в macOS, отколкото в Windows. Това означава, че всеки, който иска да напише заявление за трите операционни системи за настолни компютри (или дори двама от тях), трябва да преработи много от своя код, когато пренася от един на друг.
Електронът "решава" това, като предлага една платформа, която работи на трите основни операционни системи за настолни компютри. Това означава, че разработчиците могат да напишат кода за неща като уведомления веднъж и да очакват това да работи нативно във всяка операционна система. Дори по-добре за разработчиците: всичко може да се изгради с помощта на Javascript, HTML и CSS технологии, всеки, който кодира за уеб са много запознати.
Как е възможно? Отчасти защото всяко електронно приложение обвързва пълен уеб браузър: Chromium, версията с отворен код на Google Chrome. Това е обединено заедно със специфичните за платформата инструкции, за да се гарантира, че всичко се държи точно както очакващите разработчиците на всички системи. Ето защо настолната версия на Slack заема повече от 200MB пространство на твърдия диск: повечето от Chrome е свързан там.
Всяко електронно приложение, което пускате, е повече или по-малко пълно копие на Chrome. Както отбеляза блогърът Джоузеф Гентъл, това едва ли е идеално:
Можете да помислите за Slack като малка програма за javascript, която се изпълнява в друга операционна система VM (хром), която трябва да изпълните, за да можете да говорите по същество на IRC. Дори ако имате истински отворен хром, всяко електронно приложение работи със свое собствено допълнително копие на целия VM.
Така че да, има недостатъци за потребителите. На първо място, всяко едно електронно приложение, което изтегляте, обединява по-голямата част от Chromium и всяко приложение, което изпълнявате, изпълнява голяма част от този код. Тук няма споделяне на ресурси, както е имало с нативни приложения, което означава, че електронните приложения ще заемат повече пространство и памет на твърдия диск, отколкото специално разработено приложение с вашата платформа. Ако производителността е нещо, за което наистина се интересувате, може да искате да избегнете електронните приложения.
В този момент компютрите са толкова мощни, че повечето потребители никога няма да забележат колко неефективни електронни приложения са. В действителност, по-голямата част от мнозинството никога не са чували за Electron. Повечето от моите колеги не са имали и всеки ден използва Slack. Много от тях бяха развълнувани, за да видят десктоп версия на Trello, и пак нямаха представа, че това е приложение за електрон.
И тези приложения наистина се интегрират по-добре с вашата операционна система по-добре от уеб сайтове. Те живеят в собствения си прозорец. Те предлагат страхотни клавишни комбинации, родствени известия и други неща, които не можете да правите по същия начин само с браузър.
И това е добър залог, че приложения като Slack, Trello и WordPress.com няма да се притесняват да предлагат настолни версии, ако Electron не съществува, като се фокусира вместо мобилните и браузерните версии. Така че не е въпросът дали електронът е лош; това е дали електронните приложения са по-добри от нищо. Аз съм готов да кажа "да", но разумни хора могат да не са съгласни. (И хей, за тези хора винаги има уеб версията.)