Pull to refresh

Comments 35

Главный секрет разработки электрон приложений это найти и подобрать достаточное количество костылей, чтобы оно заработало одинаково везде. Взять тот же драг энд дроп файлов из ОС в электрон и обратно, профилируй это не профилируй один черт нормально это под тремя осями не работает.
Уважаемые читатели! Как вы относитесь к приложениям, основанным на Electron?

Skype,… Ну і как можно относится к приложениям, которие лагают на топовом железе?
Да у нас проблема с мультиплатформеним GUI, но костили в виде Electron і других не сильно то помогают.
Наверное нужно создавать что на подобиии NET Только для GUI (GUI STANDART) на основании какойто разметки. И главное добится что б оно работало на всех платформах.
Я слежу за етим проектом, Пока он в стадии альфа-бетта.
Хотя идеи очень интересные. Надеюсь он взлетит. Но пока…
UFO just landed and posted this here
Который безбожно выжирает оперативку на моем ноуте.
Chrome c 5-6 закладок + VS Code — гарантированный висяк системы на 4Gb оперативки.
На работе на 8Gb — еще куда ни шло… Но дома — либо интернет либо VS Code.

Справедливости ради, продукты JetBrains потребляют ещё больше ресурсов. Мне в одно время пришлось перейти на VSCode по этой причине.

Так это сравнение редактора с IDE. А вот если сравнить с саблаймом.

Конечно Sublime быстрее и легче, это другой класс ПО, VSCode даёт более продвинутые возможности при работе с JS и TS. Sublime уместно сравнивать с редакторами типа Atom и Notepad++.

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


А в отделе разработки Skype – и так сойдет!

Сам то VS Code еще куда ни шло… Но голый он — простой текстовый редактор с некоторыми доп возможностями (никак не IDE).

Что-то потребное из VS Code получается путем добавления плагинов. И вот с плагинами (мне не так важно кто именно из них) они начинают жрать память как черная дыра.
Но с другой стороны есть VS Code
Который жрет ровно столько же, сколько полноценные среды разработки, но при этом не предоставляет всех их возможностей
Вы вообще представляете, как работает электрон? Чудо не то, что скайп лагает — чудом было бы, если бы он не лагал.
Надо сказать, что показатель в 239.1 Мб получен мной до проведения каких-либо оптимизаций


У меня тоже есть приложения для личных финансов. Написано на wxWidgets. Жрет аж 10Мб памяти и столько же на диске.
Речь не о том, что это мало для приложения такого рода, а о том, что это мало для Electron приложения. Автор не пытается никого убедить, что Electron это технология без слабых сторон.
Как вы относитесь к приложениям, основанным на Electron?

Зависит от конкретного приложения. Например, VSCode вполне неплох, Slack и Postman начинают иногда тупить на ровном месте, анимации (зачем они вообще) дергаться и т.д. Ну а новый Skype это просто «шедевр» — печатаешь текст, на 5 секунд все фризится, потом отпускает. При этом в эти момент нагрузки нет вообще никакой, а железо такое, что спокойно тащит несколько копий IDEA и Хром с парой десятков вкладок.
Про повышенное потребление памяти писать бессмысленно — это специфика технологии. Правда, когда Slack начинает занимать 1Гб становится страшно…
Главный секрет в том что это должно быть действительно десктопное приложение. То есть приложение предоставляющее дополнительный функционал по сравнению с обычной веб страницей за счет возможности интеграции с операционной системой что недоступно для браузеров (используя Node.js который встроен в Electron) и за счет возможности внедрения в оригинильную веб страницу произвольного кода что дает возможность расширить функционла на десктопе. К сожалению, как правило, это не так.
Написать шустрое приложение на Electron довольно просто. Достаточно всего лишь выкинуть на хрен все фреймворки и всю работу с DOM.
По сути, весь UI должен состоять из одного большого Canvas на всё окно, где уже вручную рендерим всё что нужно.
Если в приложении идёт обработка большого количества мелких элементов данных, то хорошо бы ещё собственный сборщик мусора написать вместо дефолтного.
Правда, если всё это проделать, то неизбежно возникает вопрос: а в чём тогда смысл Electron? Ведь то же самое гораздо проще оказывается сделать при помощи C++/Qt.
Главный секрет разработки хороших Electron-приложений

Не писать никаких Electron-приложений


Как вы относитесь к приложениям, основанным на Electron?

Думаю, и так понятно. Если вы пользовались когда-то приложениями вроде Slack или нового Skype, то ответ вполне однозначный — вы их скорее всего ненавидите.


Если вы пользовались VSCode, не всё так однозначно, но много ещё таких приложений вы знаете?


Если я вижу, что приложение на Electron, скорее всего я не буду его использовать.

Skype версии 8 сделан на Electron?!
Аплодисменты!
Это их лучшая версия за 10 лет! Без шуток, я не любил скайп до этой версии.
На стареньком Core 2 Duo работает без лагов, хотя старые версии постоянно зависали и делали что-то непонятное.
С аудио оборудованием работает прекрасно! Раньше каждый запуск был мукой с выбором и проверкой гарнитуры :)
Skype версии 8 сделан на Electron?!
Аплодисменты!
Это их лучшая версия за 10 лет! Без шуток, я не любил скайп до этой версии.
Почему бы просто не пользоваться web.skype.com в браузере?
А и такая есть? :)
Не знал… десктоп клиент просто работает без нареканий пока
Видел только потуги сделать web-интерфейс к скайпу на outlook.com, но он не работал.

Проблемы электрон уйдут, когда встроят наконец браузер в ОС, ну или хотя бы пока не сделают единый распространяемый фреймворк включающий хром, тогда не будет этого выжирания памяти каждым приложением, из-за того, что каждый поднимает свой инстанс chrome-окружения. Естественно, если не встраивать .net framework в ОС, а запускать его рантаймом с каждым приложением, то будут те же самые выдирания памяти и большие дистрибутивы.

Зачем встраивать браузер в ОС? Не проще ли просто писать программу под эту ОС? Например, на Qt. И работать оно будет быстрее и прослойку в виде браузера тянуть не надо.
Для программы на QT все равно придется делать отдельную Web версию (если такая требуется), а c Электроном получаем все платформы “одним махом”.
Только работает оно так, что проще использовать веб версию, чем ставить себе ещё один браузер с каждым таким поделием. Я, например, использую веб версию слака вместо его десктоп варианта на электроне. Потому что реально минусов больше чем плюсов. И я с удовольствием пользуюсь десктопным приложением телеграма, потому что оно реально удобнее и функциональнее, чем веб версия. Ощутите разницу, как говорится)
Проблемы не в electron, проблемы в html+DOM+JavaScript. Это худшее, что можно было придумать для UI. Современные фреймворки это отчасти исправляют, но до обычных компонентов типа Borland VCL им по удобству и скорости разработки бесконечно далеко.
Так это и есть основная идея electron — сайт запихнуть в окошко и обозвать приложением. По сути костыль, который незаменим в некоторых ситуациях, но не применим для всех подряд.
Да? Я вижу предложение «теперь разрабатывать десктопные приложения также легко, как и сайты!»
И ладно бы для электрон приложений ionic использовали… А то костылят не по-человечески.
Вы видите то что хотите, но не то что есть в реальности.

Запихнуть сайт в окошко != разработать хорошее полнофункциональное приложение. Это вынужденный костыль.

З.Ы. Да и сделать хороший сайт не так уж и легко, как кажется.
Читая подобные статьи и понимая, что вот это вот все сегодня самая настоящая норма, невольно задаешься вопросом где же мы свернули не туда.

Электрон это рак. Причин лично я вижу несколько.
1. Банально — потребление ресурсов, производительность, объем дистрибутивов.
2. Полное игнорирование всех UX-паттернов на каждой конкретной ОС — у каждого приложения свой дизайн, чаще всего сделанный с нуля.
3. Разработчики под электрон часто вообще не понимают что они делают, потому что большая часть из них приходит из веб-девелопмента, не имеет опыта разработки нативных приложений на десктоп и не знает особенностей конкретных ОС. Приложения задумываются и пишутся как сайты.
4. Постоянное сглаживание углов из-за мнимой унификации всего и вся. Зачем иметь десктоп-кодера, если у нас вот тут есть js-программисты на фронт и бэк, а то и вообще целый мифический фулстэк? Зачем писать что-то нативно, если можно быстро набросать что-то под электрон? Зачем вообще что-то писать, если можно наше веб-приложение с парой небольших костылей выдать за десктопное?
5. Частично следует из всего предыдущего — софт идет по пути упрощения и урезания функционала. Шаг влево или вправо невозможен в принципе.

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

Но я прекрасно понимаю, что пути назад нет, добро пожаловать в js-мир :)

Как уже выше писали, секрет разработки хороших приложений под Electron — не использовать Electron вообще. Единственный виденный мною вменяемый представитель — VSCode. MS Teams, с которым имею несчастье работать — унылое, неудобное, кастрированное, лагающее и жрущее ресурсы гуано мамонта. Чатик, кушающий 400Мб оперативы в фоне и подгружающий историю сообщений на каждый чих — держать в памяти больше текущей видимой страницы он не способен в принципе.

Sign up to leave a comment.