Вы заметили, что многие новые настольные приложения очень похожи на веб-сайты? Это не твое воображение.
От Trello до Slack, от WordPress.com до Github для так называемых настольных приложений становится все более обычным делом объединять веб-сайт с несколькими собственными функциями, такими как уведомления, доступ к файловой системе и меню. Наиболее распространенная технология, позволяющая это сделать, называется Электрон , и его используют несколько приложений, о которых вы даже не подозреваете, например приложение для чата Discord и Microsoft Код Visual Studio .
Electron позволяет разработчикам легко выпускать приложение одновременно для Windows, macOS и Linux, но для пользователей есть недостатки. Во-первых, электронные приложения огромны. Slack, приложение для чата, занимает 237 МБ на жестком диске моего Mac, и потребление памяти тоже не является низким. Что занимает все эти ресурсы? И почему разработчики используют что-то настолько неэффективное?
Электронные приложения довольно легко создавать
Настольные приложения сложно создавать, особенно если вы хотите, чтобы они были кроссплатформенными. Доступ к файловой системе в Windows работает иначе, чем, например, в Linux, а уведомления в macOS работают иначе, чем в Windows. Это означает, что любому, кто хочет написать приложение для всех трех настольных операционных систем (или даже для двух из них), необходимо переписать большую часть своего кода при переносе с одной на другую.
Electron «решает» эту проблему, предлагая единую платформу, которая работает на всех трех основных настольных операционных системах. Это означает, что разработчики могут один раз написать код для таких вещей, как уведомления, и ожидать, что он будет работать изначально в каждой операционной системе. Еще лучше для разработчиков: все может быть создано с использованием Javascript, HTML и CSS - технологий, с которыми хорошо знаком любой программист для Интернета.
Приложения Electron содержат почти весь хром
Как это возможно? Отчасти потому, что каждое приложение Electron включает в себя полный веб-браузер: Chromium, версия Google Chrome с открытым исходным кодом . Это связано с инструкциями для конкретной платформы, чтобы гарантировать, что все работает точно так, как ожидают разработчики, во всех системах. Вот почему настольная версия Slack занимает более 200 МБ на жестком диске: большая часть Chrome встроена в нее.
Каждое приложение Electron, которое вы запускаете, является более или менее полноценным экземпляром Chrome. Как пишет блогер Джозеф Джентл указал , это вряд ли идеально:
Вы можете думать о Slack как о небольшой программе javascript, работающей внутри другой виртуальной машины операционной системы (chrome), которую вам нужно запустить, чтобы по существу общаться в IRC. Даже если у вас открыт настоящий Chrome, каждое электронное приложение запускает свою собственную дополнительную копию всей виртуальной машины.
Так что да, у пользователей есть свои недостатки. Прежде всего, каждое приложение Electron, которое вы загружаете, связывает большую часть Chromium, и каждое приложение, которое вы запускаете, выполняет хороший фрагмент этого кода. Здесь нет совместного использования ресурсов, как в случае с собственными приложениями, а это означает, что приложения Electron будут занимать больше места на жестком диске и памяти, чем приложение, разработанное специально для вашей платформы. Если производительность - это то, что вас действительно волнует, вы можете избегать приложений Electron.
Подожди, так хорош или плох электрон?
На данный момент компьютеры настолько мощны, что большинство пользователей даже не заметят, насколько неэффективны приложения Electron. Фактически, подавляющее большинство даже не слышали об Electron. У большинства моих коллег этого не было, и все они используют Slack каждый день. Многие были взволнованы появлением настольной версии Trello и снова понятия не имели, что это приложение Electron.
И эти приложения действительно лучше интегрируются с вашей операционной системой, чем веб-сайты. Они живут в собственном окне. Они предлагают отличные сочетания клавиш, встроенные уведомления и другие вещи, которые вы не можете сделать так же, как только в браузере.
И можно поспорить, что такие приложения, как Slack, Trello и WordPress.com, не потрудились бы предложить настольную версию, если бы Electron не существовал, сосредоточившись вместо этого на мобильных и браузерных версиях. Так что вопрос не в том, плох ли Electron; вопрос в том, лучше ли приложения Electron или ничего. Я готов сказать да, но разумные люди могут не согласиться. (А для этих людей всегда есть веб-версия.)