Комментарии 35
Уважаемые читатели! Как вы относитесь к приложениям, основанным на Electron?
Skype,… Ну і как можно относится к приложениям, которие лагают на топовом железе?
Да у нас проблема с мультиплатформеним GUI, но костили в виде Electron і других не сильно то помогают.
Наверное нужно создавать что на подобиии NET Только для GUI (GUI STANDART) на основании какойто разметки. И главное добится что б оно работало на всех платформах.
Chrome c 5-6 закладок + VS Code — гарантированный висяк системы на 4Gb оперативки.
На работе на 8Gb — еще куда ни шло… Но дома — либо интернет либо VS Code.
Видимо, в отделе разработки VSCode понимают, что девелоперы прожорливым монстром пользоваться не будут, вот и работают над оптимизациями.
А в отделе разработки Skype – и так сойдет!
Но с другой стороны есть VS CodeКоторый жрет ровно столько же, сколько полноценные среды разработки, но при этом не предоставляет всех их возможностей
www.codepicky.com/hacking-electron-restyle-skype
Надо сказать, что показатель в 239.1 Мб получен мной до проведения каких-либо оптимизаций
У меня тоже есть приложения для личных финансов. Написано на wxWidgets. Жрет аж 10Мб памяти и столько же на диске.
Как вы относитесь к приложениям, основанным на Electron?
Зависит от конкретного приложения. Например, VSCode вполне неплох, Slack и Postman начинают иногда тупить на ровном месте, анимации (зачем они вообще) дергаться и т.д. Ну а новый Skype это просто «шедевр» — печатаешь текст, на 5 секунд все фризится, потом отпускает. При этом в эти момент нагрузки нет вообще никакой, а железо такое, что спокойно тащит несколько копий IDEA и Хром с парой десятков вкладок.
Про повышенное потребление памяти писать бессмысленно — это специфика технологии. Правда, когда Slack начинает занимать 1Гб становится страшно…
По сути, весь UI должен состоять из одного большого Canvas на всё окно, где уже вручную рендерим всё что нужно.
Если в приложении идёт обработка большого количества мелких элементов данных, то хорошо бы ещё собственный сборщик мусора написать вместо дефолтного.
Правда, если всё это проделать, то неизбежно возникает вопрос: а в чём тогда смысл Electron? Ведь то же самое гораздо проще оказывается сделать при помощи C++/Qt.
Главный секрет разработки хороших Electron-приложений
Не писать никаких Electron-приложений
Как вы относитесь к приложениям, основанным на Electron?
Думаю, и так понятно. Если вы пользовались когда-то приложениями вроде Slack или нового Skype, то ответ вполне однозначный — вы их скорее всего ненавидите.
Если вы пользовались VSCode, не всё так однозначно, но много ещё таких приложений вы знаете?
Если я вижу, что приложение на Electron, скорее всего я не буду его использовать.
Аплодисменты!
Это их лучшая версия за 10 лет! Без шуток, я не любил скайп до этой версии.
На стареньком Core 2 Duo работает без лагов, хотя старые версии постоянно зависали и делали что-то непонятное.
С аудио оборудованием работает прекрасно! Раньше каждый запуск был мукой с выбором и проверкой гарнитуры :)
Skype версии 8 сделан на Electron?!Почему бы просто не пользоваться web.skype.com в браузере?
Аплодисменты!
Это их лучшая версия за 10 лет! Без шуток, я не любил скайп до этой версии.
Проблемы электрон уйдут, когда встроят наконец браузер в ОС, ну или хотя бы пока не сделают единый распространяемый фреймворк включающий хром, тогда не будет этого выжирания памяти каждым приложением, из-за того, что каждый поднимает свой инстанс chrome-окружения. Естественно, если не встраивать .net framework в ОС, а запускать его рантаймом с каждым приложением, то будут те же самые выдирания памяти и большие дистрибутивы.
Надеемся на https://github.com/GoogleChromeLabs/carlo – похожий на Electron проект, который подцепляет Chrome из системы, вместо того чтобы тащить свой.
И ладно бы для электрон приложений ionic использовали… А то костылят не по-человечески.
Электрон это рак. Причин лично я вижу несколько.
1. Банально — потребление ресурсов, производительность, объем дистрибутивов.
2. Полное игнорирование всех UX-паттернов на каждой конкретной ОС — у каждого приложения свой дизайн, чаще всего сделанный с нуля.
3. Разработчики под электрон часто вообще не понимают что они делают, потому что большая часть из них приходит из веб-девелопмента, не имеет опыта разработки нативных приложений на десктоп и не знает особенностей конкретных ОС. Приложения задумываются и пишутся как сайты.
4. Постоянное сглаживание углов из-за мнимой унификации всего и вся. Зачем иметь десктоп-кодера, если у нас вот тут есть js-программисты на фронт и бэк, а то и вообще целый мифический фулстэк? Зачем писать что-то нативно, если можно быстро набросать что-то под электрон? Зачем вообще что-то писать, если можно наше веб-приложение с парой небольших костылей выдать за десктопное?
5. Частично следует из всего предыдущего — софт идет по пути упрощения и урезания функционала. Шаг влево или вправо невозможен в принципе.
Разумеется, на электроне пишутся и действительно великолепные приложения, но это капля в море. Типовой софт под электрон представляет из себя здоровенную хрень, занимающую под гиг оперативы, работающую и выглядящую как сайт и имеющую только лишь минимально необходимый функционал.
Но я прекрасно понимаю, что пути назад нет, добро пожаловать в js-мир :)
Как уже выше писали, секрет разработки хороших приложений под Electron — не использовать Electron вообще. Единственный виденный мною вменяемый представитель — VSCode. MS Teams, с которым имею несчастье работать — унылое, неудобное, кастрированное, лагающее и жрущее ресурсы гуано мамонта. Чатик, кушающий 400Мб оперативы в фоне и подгружающий историю сообщений на каждый чих — держать в памяти больше текущей видимой страницы он не способен в принципе.
Главный секрет разработки хороших Electron-приложений