От Trello до Slack, от WordPress.com до Github, становится все более распространенным явлением для так называемых настольных приложений для объединения веб-сайта с несколькими встроенными функциями, такими как уведомления, доступ к файловой системе и меню. Наиболее распространенная технология, позволяющая это, называется Electron, и используется несколькими приложениями, которые вы, возможно, даже не подозреваете, например, чат-приложение Discord и Microsoft Visual Studio Code.
Electron упрощает разработчикам выпуск приложений одновременно на Windows, MacOS и Linux, но для пользователей есть недостатки. Во-первых, электронные приложения огромны. Slack, приложение для чата, занимает 237 Мбайт пространства на жестком диске на моем Mac, а потребление памяти также мало. Что берет на себя все эти ресурсы? И почему разработчики используют что-то настолько неэффективное?
Электронные приложения довольно легко сделать
Electron «решает» это, предлагая единую платформу, которая работает на всех трех основных настольных операционных системах. Это означает, что разработчики могут написать код для таких вещей, как уведомления один раз, и ожидать, что он будет работать изначально в каждой операционной системе. Еще лучше для разработчиков: все может быть построено с использованием Javascript, HTML и CSS-технологий, с которыми хорошо знакомы все, кто кодов для Интернета.
Электронные приложения приходят с очень многого всего хрома
Как это возможно? Отчасти потому, что каждое приложение Electron объединяет полный веб-браузер: Chromium, версия с открытым исходным кодом Google Chrome. Это поставляется вместе с инструкциями для платформы, чтобы гарантировать, что все ведет себя точно так же, как разработчики ожидают во всех системах. Вот почему настольная версия Slack занимает более 200 МБ пространства на жестком диске: в нем содержится большая часть Chrome.
You can think of Slack as a small javascript program running inside another operating system VM (chrome), that you have to run in order to essentially chat on IRC. Even if you’ve got the real chrome open, each electron app runs its own, extra copy of the whole VM.
Так что да, есть минусы для пользователей. Прежде всего, каждое электронное приложение, которое вы загружаете, связывает большую часть Chromium, и каждое приложение, которое вы запускаете, выполняет хороший кусок этого кода. Здесь нет совместного использования ресурсов, например, с родными приложениями, что означает, что приложения Electron будут занимать больше места на жестком диске и памяти, чем специально разработанные приложения с вашей платформой. Если производительность - это то, о чем вы действительно заботитесь, возможно, вы захотите избежать приложений Electron.
Подождите, так ли электрон хорош или плох?
И эти приложения действительно лучше интегрируются с вашей операционной системой, чем веб-сайты. Они живут в своем собственном окне. Они предлагают отличные сочетания клавиш, собственные уведомления и другие вещи, которые вы не можете сделать точно так же, как с помощью только браузера.
И неплохо, что такие приложения, как Slack, Trello и WordPress.com, не потрудились бы предлагать настольную версию, если бы Electron не существовал, вместо этого фокусировался на мобильных и браузерах. Поэтому вопрос заключается не в том, плохо ли электрон; это то, что электронные приложения лучше, чем ничего. Я готов сказать «да», но разумные люди могут не согласиться. (И эй, для этих людей всегда есть веб-версия.)