Comments 140
Мне кажется там (в webassmbly) sandbox, который эту возможность должен очень сильно ограничивать.
Each WebAssembly module executes within a sandboxed environment separated from the host runtime using fault isolation techniques
https://webassembly.org/docs/security/
Или я что-то не так понял?
Когда я узнал, что ассемблерные инструкции интерпретируются процессором слово нативность утратило для мня смысл.
Хотя Electron-приложения — это растущее и развивающееся явление, и их реализация близка к реализации веб-приложений, у них, всё же, есть некоторые минусы. Во-первых, такие приложения используют собственные экземпляры браузера Chromium. Многие знают о том, сколько оперативной памяти нужно для работы Chrome. Теперь, для того, чтобы оценить ситуацию, возникающую в системе при одновременном запуске нескольких Electron-приложений, надо взять их количество и умножить на этот объём памяти. Если интересно — откройте несколько Electron-приложений и посмотрите на то, сколько памяти они потребляют.
В этой фразе можно заменить Electron на PWA и она будет истиной. Так чем тогда лучше?
не будет. PWA используют оригинальный хром.
К электрону же основная претензия, что он тянет за собой действительно отдельный инстанс хромиума, поставь 10 приложений — уйдет несколько гб жесткого диска. Запусти несколько электрон-приложений — запустится несколько разных хромиумов.
PWA используют тот браузер, который его поставил, а что у chrome, что у ff есть куча процессов, не связанных напрямую с вкладками.
Для сравнения можно попробовать запустить по вкладке в нескольких хромах (chromium, chrome, chrome canary, opera, vivaldi) и запустить 5 вкладок в одном хроме и сравнить потребление ресурсов. Второй случай будет ощутимо дешевле по оверхеду.
PWA используют тот браузер, который его поставил
хм… Т.е. если юзер удалит браузер, то поломаются все PWA через него установленные?
т.е. если электрон будет распррстраняться в виде dllки, то претензии к нему иссякнут?
Ведь в браузере можно посмотреть на адресную строку, а в PWA — запустилось и запустилось. И если втихую подменить PWA на такое же, но фишинговое, как заметить подмену?
А если втихую подменить нативное приложение на такое же, но фишинговое, тогда как?
Ну придется как-то научить антивирусы это делать.
Другое дело PWA, зашел на сайт с одной различающейся буквой в адресе — и попал.
Так pwa не сам же открывается, нужно сначала нажать кнопку установить. И есть целый ряд условий которым сайт должен соответствовать, чтобы предложение об установке pwa отобразилось
А зачем? Если на мобилках PWA компенсирует крайне неудобные закладки и вкладки в мобильных браузерах и проблемы со скоростью мобильного интернета, то на десктопе смысла в этом немного.
А зачем, если можно просто открыть вкладку?
Хм, например?
atom
Nosqlbooster
Ок, положим.
Но с PWA-то речь как раз о мордах веб-сервисов.
А вообще, — это скорее ход для набора количества приложений для Chrome OS
Зачастую хочется иметь сервисы которыми часто пользуешься вне браузера. Тот же Гугл Докс. Вечно его искать средь вкладок и инстансев браузера неудобно. Отдельная кнопка на панели приложений явно лучше.
Выделите адресную строку и перетяните на рабочий стол — появится ярлык на нужный ресурс.
Это позволит только открыть ссылку, а я имел ввиду переключение между окнами
Об этом я писал в комментарии выше
В комментарии который ещё выше — "Тот же Гугл Докс. Вечно его искать средь вкладок и инстансев браузера неудобно". Инстансы браузера — это и есть отдельные окна
software platform for creating and delivering desktop applications, as well as rich Internet applications
Причем тут организация UI когда это платформа для RIA?
Официальный способ — тянуть свой JRE с каждый приложением. Зашибись идея! На это фоне даже Электрон покажется маленький и лёгким.
Аналогично с FX — его теперь нужно тягать с приложением. Причём, для каждой платформы тянуть свой.
Одновременно поломали Fx для Linux (откатили его в адову бету из весьма стабильного состояния).
Никто не готов доплачивать за оптимизацию, и рынок рождает вот этот вот js-вездеход.
Как ни странно VS Code мне обходился дешевле чем та же VS Studio при сопоставимо одинаковом функционале.
В VS Code я мог работать. Единственное что непосредственно сборку проекта не настраивал, чтобы билдить прямо из него. Вероятно медленее чем могло бы быть в студии, но по крайней мере не приходилось поднимать UE Editor. Благо у него из коробки есть поддержка VS Code проектов.
Вообще для своих плюсовых проектов использую Qt Creator, как наиболее удобный вариант. Для остального есть Sublime Text.
Старый процессор, который до сих пор нет смысла менять. Разве что захочется 8-12 ядер.
Но VS Code да, шустрый. Sublime Text конечно быстрее, но всё равно неплохо.
огромное количество js разработчиков
иначе они пойдут в криминал
Криптовымогатели на js!
Мне например во много раз удобнее скачать(купить) нужное приложение на комп, чем юзать 100500 онлайн сервисов.
Запроса на онлайн приложения от пользователей никогда не было!, от компаний было, а от пользователей нет.
Мне, например, во много раз удобнее использовать нужный онлайн-сервис со своего компа, с чужого компа, с телефона, с домофона и тд, чем носить с собой комп или откладывать нужду до прибытия к нему, а в случае ЧС переустанавливать 100500 приложений.
Запрос на онлайн-приложения от пользователей всегда был! От компаний не было, а от пользователей — да.
До электрона был node-webkit, да и сама идея засунуть все в вебвью появилась сначала на мобильных. А до этого — на декстопах, но не для приложений, а так по мелочи — сверстать и отрендерить какую-ту сложную форму отчета проще в html, чем ты берешь свой любимый язык и с нуля на канвасе рисуешь таблицы, стилизуешь это всё и изобретаешь html+css заново.
Все эти приложения на Electron и PWA выглядят красиво — эти цветовые гаммы, градиенты текстуры. Кажется, что на это обращают внимание в первую очередь. А что с функциональностью? Пока есть одно приложение на Electron, к которому у меня в общем нет претензий — это VS Code.
Глядя на типичное приложение на Electron (PWA пока так мало, что я не уверен, что пользовался хоть раз хоть одним) часто бросается в глаза несоответствие усилий, брошенных на разработку основной функции приложения, и усилий, потраченных на красивую вёрстку, анимированные переходы и пр. Программы должны ведь что-то делать в конце-концов, а не только красиво мигать на мониторе градиентами.
Вообще, кажется, что само понятие работать за компьютером приобрело новый набор ассоциаций. Раньше это выглядело как… да посмотрите рекламу компьютеров 80-х и 90-х. Какие-то цифры, графики,…
Теперь это как-то не про работу… Сейчас картинка в головах примерно такая: красивое фото в стиле минимализма, Macbook (в крайнем случае Microsoft Surface), очки в чёрной оправе из хорошего итальянского ацетата, какая-нибудь ненужная хрень из натуральной кожи на столе (блокнот там какой-нибудь пустой, с записями типа lorem ipsum). Фото в таком стиле (или иллюстрации) можно регулярно встретить в ленте на хабре.
Я слишком далеко зашёл? Мне кажется, что нет. Реклама формирует образ мыслей и, в то же время, отражает его. Да, люди всегда хотели выглядеть круто и реклама всегда играла на этом, но если раньше крутость хоть как-то была связана с интеллектом, то сейчас кажется, что весь первый план в рекламе и дизайне (в том числе приложений) полностью занят мыслью о дизайне без содержательного наполнения. Сейчас доля оформления по отношению к полезной информации/функциональности стала выше, чем когда-либо (даже чем в 18 веке — посмотрите на ткацкий станок Жаккара с перфокартами — он не увешан резьбой и орнаментами).
Раньше графический интерфейс был примерно тем, чем был фронтенд для бекэнда — окошком в более глубокий и сложный мир, простым способом управлять программой, которая делала что-то сложное и полезное, красивой оболочкой для скрытой внутри мощи. А сейчас у многих сайтов гораздо больше усилий тратится на фронтенд, а код на JS на порядок сложнее кода на сервере, который просто перегоняет данные из базы и обратно. Самый яркий пример того, о чём я говорю: Etcher — программа для создания загрузочных USB из образов. Она такая же по функциональности как Win32DiskImager, как Fedora Media Writer, значительно отстаёт от Rufus. Но сколько сил вложено в красивый интерфейс!
Пример: на хабре вышла статья об инструменте типа редактора электронных таблиц, сделанном на Javascript. Посмотрите на скриншоты: действительно хороший дизайн. Не попсовый, выглядит на первый взгляд логично и продуманно, визуально приятен и явно вылизан до мелочей. Но когда я задал в комментариях банальнейший вопрос, оказалось, что разработчики об этом просто не подумали… Они всё сделали с помощью обычных float чисел из JS. К чести разработчиков они оперативно внедрили библиотеку для реализации decimal-чисел. Но сам пример показателен. Т.е. даже сами разработчики непропорционально много думают о том как будет их продукт выглядеть по сравнению с тем, как он будет работать, другой причины сделать такую глупую ошибку я не вижу.
Линус Торвальдс любит говорить: «Talk is cheap. Show me the code.» Кажется, он отстал от моды. Сейчас можно было бы сказать: «Code is cheap. Show me your beautiful landing page and some screenshots» Количество сайтов и программ пустышек всё больше и больше. У них красивый интерфейс и они ничего не умеют. Как уже не раз было упомянуто на Хабре — веб-приложения (и приложения на Electron) очень сильно отбросили пользователей в плане UI/UX. Выглядит красиво, но не более. Сколькими способами можно пролистать Scroll-bar в Linux и Windows? И все пользуются разными. В Electron этих способов столько, сколько поддерживает ваш UI-фреймворк (на порядок меньше) или сколько вы вручную напишете на Vue.js каком-нибудь (не будете вы этого делать, вы потратите сутки на красивый градиент и анимацию, потому что главное не быть, а казаться, ведь так?).
Да, так. Но вы сказали только за себя (упрощённо можно считать, что за большинство пользователей Хабра), а если мы возьмём больше мнений, то окажется, что пользователям в среднем нужны анимированные кошечки и подарки/фильтры на аватарку. А ваше мнение будет где-то на краю лапки Гаусса. Поэтому мир идёт туда, куда идёт. Ваш кэп.
К тому же мы про какие программы говорим? Про развлекательные или про те, которые для работы? Это разные вещи. Мне кажется, что бухгалтеры и секретари не обрадуются, если красивая программа с графическим интерфейсом на JS в ответ на 0.1 + 0.2 выведет 0.30000000000000004
А если уж про тот утрированный кейз, который вы приводите, то язык, в котором из числовых типов есть только double float, вообще не подходит для чего-либо сложнее DHTML (интересно, помнит кто-нибудь этот когда-то модный термин?).
0.30000000000000004.com
(только чтобы это увидеть, нужно выбрать формат, отображающий такое кол-во знаков после запятой)
Недавно понадобилось создать загрузочный USB. Единственная ОС под рукой была макось последней версии. Внезапно, старые нативные программы не завелись под новой ОС (может и руки кривые, конечно).
Только Etcher и спас. В такой ситуации ИМХО рабочее приложение на электрон лучше нерабочего нативного :)
И вообще, программирование — это управление сложностью и если программа, записывающая файл на дисковое устройство, подразумевает браузерный движок, то что-то не так в консерватории. Это уже потеря контакта с реальностью.
И вообще, программирование — это управление сложностью и если программа, записывающая файл на дисковое устройство, подразумевает браузерный движок, то что-то не так в консерватории. Это уже потеря контакта с реальностью.
Абсолютно согласен. Вообще эту цитату можно распечатать и повесить на стену
dd бесспорно лучше по многим параметрам. Только не получится её порекоммендовать обычному пользователю.
P.S. Человек, которому нужно записывать .iso образы на флешку — не вполне обычный пользователь.
Но постойте… кажется это уже есть и называется Qt?
функциональны как родные интерфейсы Windows
Родной интерфейс Windows без допилки напильником не понимает Ctrl+Backspace в полях ввода, например.
А если кто-то не может освоить создание GUI на нативных технологиях, то они и на вебе делают продукт соответствующего качества, потому что нативный GUI не сложнее веба, а даже легче (и логичнее).
А ещё в Qt есть QML. Это по сути JS. Там хотя бы библиотека виджетов уже есть готовая.
С++ не для всех подходит, тем более не для быстрой разработки. Если бы был нормальный кроссплатформенный GUI фреймворк например под Go, C#, Java, Python — другое дело. Хотя я уверен, что какие-то есть, но по какой-то причине не получили популярность. Например под C# есть крутой Avalonia, но опять же, XAML нравится не всем, и он значительно сложнее HTML (хотя на AvalonStudio можно клепать формочки).
Еще тут основную роль играет маркетинг. Если человек хочет заняться программированием, с большей вероятностью он попадет на курсы/статьи/уроки именно по JS. Хотя порог вхождения у python не выше, но все хотят делать сайты, а лет 10 назад хотели делать игры (было как-то романтичнее что ли). Для очень многих людей, JS первый и единственный язык программирования, в то время как лет 10 назад, такое явление среди программистов было довольно редким.
Сам последние 3 года пишу в основном на JS, но в последнее время вспоминаю о C#, там развитие идет куда интереснее, а не как в JS, продолжаем писать логику в разметке (привет ReactJS).
1. Включить Флаг #enable-pwa-desktop как написано в статье.
2. Открыть веб-версию скайп. В меню хрома выбрать More Tools -> Create shortcut. Это добавит .app обертку в каталог ~/Applications (не путать с ./Applications где обычно лежат все приложения)
3. Перейти в chrome://Apps и в контекстном меню значка скайпа выбрать 'Open in new window'
После этого шаманства скайп открывается в отдельном окне как pwa. Нотификации пока работают криво и без звука. Смысла тестировать его дальше не было, поэтому эксперимент был признан неудачным.
Традиционные настольные приложения нередко казались какими-то неуклюжими, элементы их интерфейсов выглядели как нечто устаревшее. Electron, определённо, принёскрасоту и изящество в мир настольных приложений.
Electron принёс тормоза и необузданный жор оперативной памяти.
у разработчика приложения появляется возможность предложить пользователю установить приложение на его компьютер
Ну вот, теперь при открытии сайта нужно будет помимо настройки кук, уведомлений, геопозиции и прочего, кликать еще и это.
а скучаю очень по .chm — по мне дак именно так и должна выглядеть справка/мануал/еще какое чтиво здорового человека — в одном файле, с нормальным поиском и все это html с js.
И я таки не понял, каким образом экономятся ресурсы?
Когда только оно будет — вот вопрос?
Mozilla Prizm ( ru.wikipedia.org/wiki/Mozilla_Prism ).
Mozilla Chromeless ( habr.com/post/106716 )
Одна из тех функций, которые на винде работают куда лучше.
До свидания, Electron. Здравствуйте, настольные PWA