Как стать автором
Обновить

Комментарии 6

Более гибко получается чем в QT, сравните + и - в следующей статье плиз

Что тут гибко? Здесь даже сравнивать нет смысла с Qt. В сравнении с Qt здесь вообще нет гибкости. В Qt ты можешь строить приложение как хочешь. Строить интерфейс как хочешь. MVVM, MVC, без паттерна. Использовать прямой доступ к ОС или через API фреймворка. Использовать возможности фреймворка Qt или делать как вздумается. Выполнять код на процессоре или использовать интерпретаторы и код на любом другом языке в песочнице. О какой лучшей гибкости, чем в Qt может идти речь, если ты можешь сделать приложение с архитектурой Electron в Qt?

И так с множеством других языков и фреймворков. Delphi, C#

О каких плюсах может идти речь, если в Qt и других фреймворках ты так же можешь повторить "Электрон". Плюс тут только один и сомнительный - Электрон уже сделали и ты можешь писать ужаснейшие приложение сразу.

Но я могу перечислить минусы:
1. Приложение на Электроне весит в 50 раз больше, чем аналогичное на нативном или кроссплатформенном компилируемом языке.
2. Приложение на Электроне медленнее в несколько раз, чем приложение работающее нативно
3. Приложение на Электроне напрямую зависит от возможностей "урезанного браузера", лежащего в основе приложения.
4. Приложение на Электроне считаются мутабельными, а это запрещено для использования на мобильных площадках и принимаются приложения туда с трудом.
5. Приложения не Электроне таскают с собой кучу одинаковых между такими же приложениями на Электроне файлов, которые даже не пытаются переиспользовать. В итоге полезная нагрузка приложения - это 10% от всего занимаемого места приложением. (Хотя Qt тоже этим немного грешит)

Как бы не хейтили электрон, у него НЕОЖИДАННО есть и плюсы

По типу:

  1. Более простого входа в разработку (очень полезно для приложений, которым нужна простая смена дизайна, всё же html/css выучить проще чем тот же qt, а ещё если вспомнить туллинг имеющийся во фронте...)

  2. Не нужно задуматься на счёт кроссплатформенности (умные дядьки за тебя уже всё продумали)

  3. И возможно что-то ещё, что я сейчас не вспомнил

Ну а по поводу минусов

  1. Ну тут всё верно, даже спорить не буду

  2. Вот тут не сказал бы, по больше части всё зависит от прямых рук разработчика приложения. В общем случае разница между скоростью работы не заметна на глаз. (Знаю я один пример, когда приложение на Java запускается дольше чем то, что было написано на Electron)

  3. И порой этого достаточно (честно даже не знаю что такого можно придумать, чтобы не хватило возможностей "урезанного браузера")

  4. Кто в здравом уме понесёт приложение на электроне на мобилки? (Да и где вы видели такое, чтоб электрон под мобилки собирался?)

  5. Это относится к первому недостатку, но и опять же, с ваших слов "Qt тоже этим немного грешит"

Моё мнение такое, что для каждой технологии есть своё применение. Не думаю, что есть вообще какой либо смысл писать приложение на электроне, если оно задействует минимум его возможностей и/или его кодовая база в разы меньше общего бандла (код приложения + электрон). Вас в принципе засмеют (и правильно сделают), если вы будете писать какой-нибудь калькулятор на электроне, это глупо.

В таком случае лучше писать на нативном или кроссплатформенном компилируемом языке. Да возможно дизайн приложения от этого пострадает + придётся повозиться с кросскомпиляцией (для нативки), но думаю оно того стоит.

Первый "плюс" разбивается о тот факт, что простой вход в Электрон доступен только веб-разработчикам. Новичкам (абсолютным) же будет только сложнее от архитектуры приложения и принципа разработки. JS, Node.js, NPM ...

По поводу разработки под мобилки. Вероятно я путаю электрон с какой-то из технологий, у которой существуют проблемы с мутабельностью. По этому, в этом пункте каюсь.

Тем не менее, основным минусом будет считаться производительность приложений и их глючность. Я бы не сказал, что Дискорд написан кривыми руками, тем не менее, проблем у Дискорда хватает. Скайп точно написан кривыми руками. Вероятно, хорошим примером против моего аргумента будет служить VS Code, который на стоке без кучи плагинов достаточно стабильно и шустро работает. Но, исключение из правил ...

По поводу области применения. Если простые приложения на Электроне писать не стоит, а и крупные приложения (мощные редакторы графики или крупные CRM с сотнями окон) писать тоже не стоит, то в чем смысл? Его удел клиентские варианты веб-сайтов?

Кроссплатформенность для инструментов для разработки десктоп софта это не редкость. Тот же Delphi позволяет создавать приложения с нативным кодом для всех платформ, включая и Android с iOS, в пару кликов переключая платформу для сборки. И визуальная составляющая даже близко уступать html/css не будет.

Новичкам (абсолютным) же будет только сложнее от архитектуры приложения

Не только абсолютным

Я по C/C++ и мне тоже не нравится

Добавлю еще плюсов:
4. Высокая скорость разработки сложных интерфейсов на реактивных фреймворках типа React, Vue, для которых также есть большое количество готовых компонент.
5. Как следствие: экономия на создании и поддержке, да и программиста найти проще на JS.

Есть богатый выбор из нативной разработки под каждую платформу отдельно, кроссплатформенной на фреймворках, React Native, Electron и куча другого ПО.

Исходя из требований проекта и надо выбирать, что будет использоваться.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации