Skip to content
industry insights

Electron все ругают — так почему он не уходит?

Настольные приложения становятся тяжелее, тогда как пользователи ожидают от них мгновенной отзывчивости и компактности. Неожиданно то, что именно те компромиссы, на которые жалуются разработчики, могут помогать амбициозным приложениям быстро выходить на рынок.

Stork editorial team
Electron все ругают — так почему он не уходит?

Приложение, которое приносит с собой собственный браузер

Главная проблема Electron проста: каждое приложение приносит с собой собственный браузер. Он объединяет веб-технологии (HTML, CSS, JavaScript) с Node.js.js для взаимодействия с системой, а затем помещает всё это в выделенную среду Chromium runtime. Такая архитектура означает, что каждое приложение на Electron представляет собой автономную веб-среду, независимую от встроенного браузера операционной системы.

Такая конструкция сильно нагружает системные ресурсы. Возьмём Claude в macOS: только Electron Framework занимает 286 MB из общих 618 MB приложения. На одном Mac 22 приложения на Electron в сумме занимали 6,5 GB из-за дублирующихся копий Chromium. Каждый экземпляр Chromium также требует памяти: Claude даже в открытом, но неактивном состоянии использовал около 600 MB оперативной памяти в 11 процессах.

Эти цифры взяты из видео Better Stack и иллюстрируют нагрузку. Важно отметить, что это конкретные примеры, а не универсальные эталоны. Итоговый размер приложения и объём используемой памяти значительно колеблются в зависимости от включённых инструментов, конкретных библиотек и активной нагрузки, но базовая неэффективность изолированных экземпляров Chromium сохраняется.

Почему альтернативы — не бесплатная победа

Критики Electron часто называют нативную разработку очевидным противовесом, но этот путь требует умноженных усилий. Например, разработка на SwiftUI для Mac обеспечивает безупречный до пикселя результат, но требует полностью отдельных реализаций для Windows и Linux, что резко увеличивает затраты на разработку и сопровождение. Одной компании, 1Password, когда-то требовались четыре отдельные команды, прежде чем она перешла на Electron.

Альтернативы вроде Tauri и Wails решают проблему громоздкости Electron, используя имеющееся в операционной системе веб-представление — WebKit в macOS, WebView2 в Windows, WebKitGTK в Linux, — а за взаимодействие с системой отвечают Rust или Go. Такой подход даёт заметно более лёгкие приложения: пустое приложение на Tauri весит примерно 5 MB на Mac по сравнению с типичной базовой средой выполнения Electron в 268 MB.

Однако эта эффективность приводит к важному компромиссу — совместимости. Использование системных веб-представлений означает, что отображение вашего приложения может различаться на разных платформах, а ошибки и несоответствия на уровне ОС, которые вы не можете контролировать, будут унаследованы. Например, Slack изначально использовал встроенный в macOS движок Safari, но перешёл на Electron после столкновения с неустранимыми проблемами отображения в старых версиях macOS.

В конечном счёте кажущаяся «бесплатная победа» более лёгких альтернатив достигается ценой единообразия и контроля. Хотя Tauri и Wails обеспечивают впечатляющее уменьшение размера, они вновь вносят ту самую фрагментацию, которую Electron был призван преодолеть, заставляя разработчиков искать баланс между производительностью и предсказуемым пользовательским опытом.

В больших масштабах единообразие важнее изящества

Главное достоинство Electron и одновременно его самый раздражающий недостаток — автономность. Нативные приложения полагаются на непредсказуемые системные веб-представления (webview), например движок Safari в macOS или Edge в Windows, а Electron включает в себя собственную среду Chromium runtime. Это гарантирует единообразное окружение отображения в Windows, macOS и Linux и избавляет разработчиков от сюрпризов, связанных с конкретной платформой.

Однако за такой контроль приходится платить. Когда Slack изначально использовал встроенный в macOS движок Safari, в старых версиях ОС с ошибками Safari компания ничего не могла сделать. Переход на Electron дал ей единую кодовую базу и возможность самостоятельно выпускать исправления. Именно из-за этого компромисса даже более новые фреймворки, такие как Tauri, рассматривают возможность включения Chromium, признавая основное преимущество Electron. Подробнее о его возможностях: Electron: Build Cross-Platform Desktop Apps.

Тем не менее эта автономность создаёт масштабную проблему с обновлениями. Каждое приложение на Electron содержит собственную копию Chromium, а значит, исправление в самом Electron или Chromium доходит до пользователей только после того, как каждый отдельный разработчик приложения выпустит обновление. Например, обновление macOS в прошлом году вызвало замедления во всей системе в приложениях на Electron из-за ошибки в Electron, переопределявшей закрытый код пользовательского интерфейса Apple. Исправление пришлось распространять через каждое затронутое приложение, что показывает неэффективность такой распределённой модели обновлений. Подход «единообразие важнее изящества» упрощает разработку, но фрагментирует пользовательский опыт.

Нравится статья? Получайте такие каждое утро на почту.

одно письмо в день · отписка в два клика · без сторонних трекеров

Для ИИ-приложений одна кодовая база может оказаться лучше трёх

Для быстро развивающихся ИИ-продуктов привлекательность Electron несомненна. Общий веб-код и код для настольных систем позволяет командам переносить функции между Mac, Windows и Linux с меньшими дублирующими усилиями, упрощая разработку таких продуктов, как Claude от Anthropic и Codex от OpenAI. Это инженерные компромиссы, а не всеобщее одобрение Electron.

Например, OpenAI заменила своё нативное приложение ChatGPT для Mac клиентом Codex на основе Electron. Если исходное нативное приложение занимало 159 MB, то новая версия на Electron выросла до 1,7 GB, хотя значительная часть объёма приходится на инструменты Codex. Это показывает ресурсную цену единой кодовой базы.

Даже с продвинутыми ИИ-инструментами для программирования бремя нативных клиентов не исчезает. Агенты для программирования хорошо справляются с созданием первых реализаций, но тестирование, исправление и поддержка нескольких платформенных приложений остаются серьёзной задачей, умножающей число ошибок и объём работы по сопровождению. Как сказал один из создателей Claude Code: «три приложения — это в три раза больше ошибок, которые нужно исправлять и поддерживать».

Практическое правило остаётся прежним: для небольших утилит, где важен размер, стоит рассмотреть Tauri или Wails, которые позволяют создавать приложения размером около 5 MB в macOS. Для сложных кроссплатформенных продуктов, где приоритетны единообразное поведение и быстрые релизы на Mac, Windows и Linux, Electron остаётся более безопасным и предсказуемым выбором.

Часто задаваемые вопросы

Почему приложения на Electron используют так много памяти?

Каждое приложение на Electron включает в себя Chromium и запускает собственные процессы, что создаёт дополнительную нагрузку, даже когда приложение простаивает.

Почему компании по-прежнему выбирают Electron?

Electron предоставляет единообразную среду Chromium и позволяет командам использовать общий код на Mac, Windows, Linux и зачастую в вебе.

Всегда ли Tauri меньше, чем Electron?

Размер сборок приложений на Tauri может быть значительно меньше, поскольку Tauri обычно использует веб-представление (webview) операционной системы, однако отображение может отличаться на разных платформах.

Когда команде стоит выбрать нативную разработку?

Нативная разработка может быть хорошим выбором, если производительность и пользовательский опыт на конкретной платформе оправдывают поддержку отдельных реализаций.

Found this useful? Share it.

For builders

Want Stork to write one of these about your product?

Send us a URL. We use the product, form a view, and publish what we actually think — in 8 languages, labeled Sponsored, with no copy approval on your side. That last part is what makes it worth quoting.

See how it works$199 · AI tools & software only

Для билдеров

Эта страница работает на чужой инструмент.

Её читают AI-агенты. На неё приходят покупатели. Она отвечает на восьми языках и через MCP. У вашего инструмента может быть такая же — в эфире за 24 часа.