Electron и упадок нативных приложений

Автор оригинала: John Gruber
  • Перевод

SwiftOnSecurity пишет на тему недавнего перехода на Chromium в качестве встроенного в Windows движка рендеринга:


Это не только про Chrome, это также про ElectronJS. Microsoft думает, что EdgeHTML не может достичь полного паритета по функциональности с Chromium, чтобы заменить его в приложениях Electron. Дублирование движка Electron в каждой программе становится значительной проблемой производительности. Вместо этого они хотят иметь один на всех экземпляр Electron вместе со своими дополнениями.

Electron это рак, убивающий и macOS, и Windows по мере распространения. Microsoft должна предложить ему замену с нативными оптимизациями, чтобы улучшить производительность и использование ресурсов.

Я не совсем разделяю их пессимизм по поводу нативных приложений, но Electron – это, без сомнений, бич платформы. Я думаю, что Mac окажет большее сопротивление, чем Windows, потому что платформа Mac привлекает большее число неравнодушных людей. Но тем не менее, я беспокоюсь.


В некотором смысле, худшая вещь, которая когда-либо случалась с Mac, это его внезапный рост популярности лет десять назад. В теории это должно быть хорошей новостью для платформы – больше пользователей означает больше внимания со стороны разработчиков. Чем больше пользователей Mac, тем больше мы увидим приложений для Mac. Проблема в том, что пользователи, которые в самом деле беспокоятся о нативных приложениях, то есть в замечают нарушения HIG в интерфейсах, заботятся о производительности и о том, чтобы приложения на Mac были правильными, уже сидели на Mac. Множество новых пользователей либо не знали, либо не заботились о том, что именно делает Mac приложения хорошими.


При этом всегда были и плохие приложения. Но они редко достигали какого-либо уровня популярности, потому что пользователи Mac коллективно отвергали их. Каноническим примером является Microsoft Word 6.0. Word 5 для Mac был любимцем пользователей и уверенным жителем платформы Mac. Word 6 был кросс-платформенным монстром. Пользователи Mac отвергли его, а их реакция спровоцировала изменения в Microsoft – на вершине своего величия в середине 90-х они полностью переосмыслили стратегию работы с Mac и создали отдельное направление бизнеса, посвященное разработке под Mac. Рик Шаут из Microsoft потрясающе описал эту историю в 2004 году:


Окей, Mac Word 6.0 был огромным и медленным относительно мощности компьютеров тех времен, но это не было причиной, почему Mac Word 6.0 оказался хреновым продуктом, по крайней мере не напрямую.
[…]
Более того, в то время как люди жаловались на производительность, наибольшее недовольство мы выслушивали по поводу того, что Mac Word 6.0 не был “Mac-like”. Так что мы потратили немало времени, чтобы разобраться, что именно имеют в виду люди, говоря о “Mac-like”. Мы запустили фокус-группы. Некоторые из нас зависали в сообществах на Usenet. Мы говорили и с обзорщиками программ, и со своими друзьями, которые пользовались продуктом. Оказалось, что “Mac-like” означало Mac Word 5.0.

Мы потратили немало времени, чтобы решить все технические проблемы Mac Word 6.0, но мы провалились в создании UI который бы работал как Word 5.0.
[…]
Другой вещью, которую мы выяснили в результате понимания сущности “Mac-like”, было то что мы не смогли бы правильно это реализовать, если бы Office оставался единым продуктом, из которого собирались бы обе версии, под Mac и под Windows. Тот факт, что реализация “Mac-like” оказалось проблемой, означал что есть фундаментальные различия между рынками Win Word и Mac Word. Если бы мы хотели понять оба рынка, то наши Win и Mac продукты должны иметь отдельный маркетинг и продуктовый менеджмент. Уроки, которые мы усвоили с Mac Word 6.0 являются одной из причин, почему отдельное направление для Mac существует и сейчас.

Я основательно не согласен с одним аспектом: пользователи видели воплощение Mac-like не в виде Word 5 как такового – на самом деле Word 5 просто следовал правилам Mac в своем дизайне. Word 6 был отвергнут не по причине необычности, а потому что он буквально выглядел противоположностью Mac-like. Он выглядел и работал точно как Word для Windows.


Насколько далеко от Mac-like был Word 6, но даже он был ближе, чем нынешние Google Docs, открытые в браузере Chrome. Google Docs это анти-Mac текстовый редактор запущенный внутри еще более анти-Mac веб-браузера. То, что Mac-пользователи решительно отвергли как анти-Mac в 1996 году, было лучше, чем то, что пользователи Mac счастливо терпят сегодня. Программам больше не требуется выглядеть нативно под Mac, чтобы достичь на нем успеха сегодня. Это является трагедией.


Даже сама Apple уже выпускает приложения под Mac с вопиющими проявлениями анти-Mac. Приложения “Marzipan” на MacOS 10.14 Mojave – News, Home, Stocks, Voice Memos – ужасно плохие приложения. Они плохи как в функциональном плане, так и в инородном ощущении от дизайна. Я честно не понимаю, как Apple решила, что это будет нормальным выпустить такие приложения.


Еще с одним примером может быть новое приложение App Store на Mojave. Оно, конечно, красиво смотрится, но несколько дней назад я заметил, что оно не поддерживает клавиши Page Down и Page Up для прокрутки (а также Home и End для перехода в начало или конец) ни в одном из своих экранов.


Небольшое примечание

После того как я написал об этом в Twitter, несколько человек ответили, что неработающие клавиши не должны быть неожиданностью, потому что современные клавиатуры Apple их не имеют. Во-первых, это неверно – на большой Magic Keyboard они есть. Но даже если у вас MacBook или просто маленькая клавиатуры, вы можете получить эти кнопки, используя Fn. Fn↓ = Page Down; Fn↑ = Page Up; Fn← = Home; Fn→ = End. Пользуйтесь!


Откройте страницу и нажмите Page Down, но вместо прокрутки оно просто пищит. Единственный способ прокрутить страницу – это мышь или трекпад. И это приложение от Apple, используемое практически каждым. Даже приложения на Marzipan поддерживают эти клавиши, потому что эта функциональность как и другое стандартное поведение получается бесплатно с соответствующим фреймворком разработки. Mojave-версия App Store, должно быть, делает что-то совсем странное, чтобы эти клавиши перестали работать.


Небольшое примечание

Пока я на полную включил режим детишки, проваливайте с моей лужайки, позвольте мне упомянуть еще одну ситуацию с Mojave, которая точно является работой юных разработчиков в Apple. Команда File → Show Original в Finder имела горячую клавишу ⌘R со времен, я думаю, System 6. (Выделите алисас или симлинк, и эта команда покажет вам исходный файл). File → Make Alias была ⌘L. В Mojave ⌘R необъяснима была переназначена на вращение вправо, а ⌘L – на вращение влево. (Похоже, они являются невидимыми элементами меню Edit? Их нет в списке элементов, но кнопка Edit подсвечивается когда вы нажимаете эти клавиши.) Горячая клавиша для создания алисаса теперь ⌤⌘A, а показ оригинала это ⌤⌥⌘A. Сами по себе новые сочетания не так уж плохи, как мне кажется, но это были невероятно давно устоявшиеся сочетания, чтобы их так просто поменять. Более того, новые кнопки не даже не совпадают с аналогичными в Photos, где они заданы как ⌘R – вращение против часовой стрелки и ⌥⌘R – по часовой. Сочетания клавиш в Photos, где вращение в другую сторону это вариант с модификатором Option(⌥) вместо использования совершенно другой клавиши, мне кажется более нативным для Mac. Preview, в другой стороны, использует названия "Rotate Left" и "Rotate Right" и те же сочетания ⌘L и ⌥⌘R, что и Finder в Mojave. Я сдаюсь.


Приложение App Store для Mojave определенно не использует Electron. Но проблема с приложениями Electron не в нем самом, а в снижении спроса пользователей на хорошо сделанные нативные приложения для Mac. И это пугает. Самую большую угрозу для Mac представляют не iPad, не Chromebook или Windows планшеты 2-в-1, а апатия по отношению к тому, что делало приложения для Mac такими замечательными. Как я написал в твите по поводу ситуации с Page Down/Up:


Такие ситуации для нас как канарейки в угольной шахте по отношению к состоянию платформы Mac. Если даже Apple не следует базовым правилам – типа поддержки Page Up/Down, вещей, которые должны работать в интерфейсах прямо из коробки – как мы можем ожидать этого от других разработчиков?

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

Поделиться публикацией

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

    +5
    Хорошая статья и довольно неудачный заголовок.
      0
      Я перевел заголовок оригинала буквально. Думаете, лучше было бы подобрать более подходящий по смыслу, чем сохранить авторский замысел?
        +1
        Вы неправильно перевели буквально «Electron and the Decline of Native Apps»
        the decline of — это упадок, падение, сокращение
        https://context.reverso.net/
          0
          Это тоже верно, но мне кажется debug45 имел в виду не перевод конкретного слова, а то что Electron в названии статьи выглядит как кликбейт, потому что внутри статьи о нем совсем немного.
            0
            Возможно, но вряд ли
            Ваш заголовок подразумевает типа конспирологию — кто-то решил отказаться от нативных приложений во вред пользователям. Злая воля.
            Как заголовок по-английски — нативные приложения не выдерживают конкуренцию у разработчиков по сравнению с приложениями под VM. О чем, собственно, и статья.
              0
              Убедили. Обновил заголовок.
          +6
          Заголовок — вообще аллюзия на классическую книгу «Decline and fall of the Roman Empire»: Упадок и падение Римской Империи.
            0
            Точно нет.
            Electron and the Decline of Native Apps
            Decline and fall of the Roman Empire

            У них из общего — только слово «decline», если бы было «Decline and fall of native apps» — то я бы с вами согласился.
              +1
              Ну так статья о том, что все кончится плохо, но пока есть надежда. Так что до Fall еще не дошло. А «Decline and Fall» — это распространенное клише.
                0
                Да и да. Но все-равно никак не связано с «Decline and fall of the Roman Empirе»
        +18
        Насколько далеко от Mac-like был Word 6, но даже он был ближе, чем нынешние Google Docs, открытые в браузере Chrome. Google Docs это анти-Mac текстовый редактор запущенный внутри еще более анти-Mac веб-браузера. То, что Mac-пользователи решительно отвергли как анти-Mac в 1996 году, было лучше, чем то, что пользователи Mac счастливо терпят сегодня. Программам больше не требуется выглядеть нативно под Mac, чтобы достичь на нем успеха сегодня. Это является трагедией.

        Шовинизм и разжигание межплатформенной розни. Мак-Мукс-Клан какой-то.
          +6
          Как сказать, по мне классический desktop с главным меню часто удобнее, хотя б тем, что не требуется разгадывать, в какой из 1001 вкладок заспрятана кнопка с нужной функцией, в главном меню искать нужную функцию обычно несравнимо проще. Этим мне не нравится Ribbon в Windows, причём, в отличие от MacOS, в оном функции поиска по UI почти никогда нет. А про типичный Web-интерфейс мне вообще сложно что-то сказать цензурными словами, разве что само слово Web помогает делать эпитеты чуть менее явными. MacOS в этом плане до сей поры держался, но, видать, он тоже начинает капитулировать.
            0
            Само слово «web» уже становится эпитетом :(
            +2
            Мак всегда был в этом месте «сдвинутым»: платформа, пропитанная с ног до головы «хождением в ногу» рекламируется как избавитель от Большого Брата… притом что как раз там разработчиков заставили ходить строем.

            Нет, я не говорю, что ситуация, когда в одном редакторе (скажем в Microsoft Word) Backspace удаляет символ, а в другом (скажем Turbo Pascal 1.0) не удаялет — прекрасна и удивительна… но это ведь максимально далеко от «колебания вместе с линией Партии», которая, как раз — фирменная фишка MacOs…

            Далее, знаменитое: Think Different — ага «выберите цвет своего ноута из списка в один пункт и проихводителя видеокарты из списка такой же длины» очень, ну просто очень… different.

            Хотя если вдуматься то вот эта вот странная идея: «выделиться из толпы путём покупки того же, что и все» — она ведь уже столетия модой движет… так что ничего нового тут нет… но всё равно дико…
              0
              Не разжигайте
                0

                Упомянуты по мне разные вещи, но вот с точки зрения пользовательского интерфейса


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

                на мой взгляд лучше, чем разгадывать очередной результат авангардного творчества в том смысле, как что в нём делается. Сам UIKit по мне пока что оставляет желать лучшего, но всё ж меняется в лучшую сторону.

                  0
                  Меня просто позабавили претензии на индувидуальность в системе, построенной вокруг «видения мира», условно, одним человеком — и жёсткого прессинга всех, кто не хочет быть счастливым «так же, как все».

                  Это не хорошо и не плохо, просто удивляет — примерно как когда жители Северной Кореи начинают рассуждать о том, что вот у них-то, дескать, настоящая свобода и отсутствие притеснений.
              +74
              То есть проблема электрона не в том, что он тормозной и жручий. Не в том, что я должен запускать 25 гуглохромов для 25 приложений. Это всё не проблема, проблема в том, что он не Mac-like. Это единственная проблема, которую надо решить. А в остальном всё ок, пускай чатик занимает полгига памяти.
                –1
                Очень верно подмечено.
                У маководов вообще в большинстве и мышление и оценки через другое место.
                Сие не есть плохо или хорошо, просто надо принять это как данность и учитывать в принятии решений.
                  0
                  Think different в действии.
                  0
                  Ага, причем что такое mac-like никто сказать толком не может. Ощущения, понимаешь, не те.
                    +3
                    Я могу одно сказать. Если Finder — это маклайк, то ну его к чёрту, такой маклайк.
                    +2
                    Пользователям плевать сколько оно места занимает и памяти жрет. У них есть такие требования как «удобно» и «решает задачу». Все остальное интересно только нам — разработчикам и гикам.
                    Не нужно переживать, рынок все расставит по своим местам.
                      0
                      Это пока таких приложений одно-два им всё равно. Когда их куча и они отправляют систему глубоко в своп — становится совсем даже не «всё равно»…
                      0
                      Немного потерпим, а там WASM + OpenGL позволят снова писать быстрые приложения не жрущие много памяти, используя браузер как VM.
                        +3
                        Уходим от низкого уровня чтобы писать быстро медленно работающий код, но так как он работает медленно — возвращаемся обратно, только дополнительный слой между системой и ПО имеем…
                        –1
                        Помять можно продать — решение проблемы mac-like-style
                        –13
                        Имхо… А лично мне после slack, google meat и VSCode кажется, что за этим будущее. Лично меня очень подкупает (в первых двух случаях) полное отсутствие необходимости что-то устанавливать на компьютер, кроме браузера. Да и с функциональностью там полный порядок. Вопрос с бесконечными экземплярами хром решить, и, кажется, все.
                          +2
                          А накой тебе устанавливать браузер еще несколько раз, если он с вероятностью 95 % у тебя уже стоит?
                            0
                            МБ потому что «браузер» — это целый пласт программ, и у меня есть альтернатива?
                            И, если честно, не совсем понял, при чем тут это. Я лишь выразил мнение, что веб интерфейс дорос до такого уровня, что, при качественной реализации, им вполне безболезненно можно пользоваться вместо нативных решений. А иногда он дает и некоторые преимущества в виде отсутствия необходимости что-то дополнительно устанавливать, например.
                              0
                              Зачем его устанавливать, если в можно просто написать 127.0.0.1:9999 и откроется твое приложение. Только все равно эти приложения какие то тормозные получаются.
                              +3
                              Незачем:
                              Дублирование движка Electron в каждой программе становится значительной проблемой производительности. Вместо этого они хотят иметь один на всех экземпляр Electron вместе со своими дополнениями.

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

                              Это первое, а второе — большинство Electron приложений, которые я пробовал в последнее время, имеют отличную функциональность по сравнению с нативными аналогами. VSCode, Slack, GitKraken. Может, совпадение, а может — время, сэкономленное на борьбе работе с UI, ушло на дополнительную функциональность.
                                +3
                                Еще замечу, что все указанные вами приложения – бесплатные. Разработка хорошего нативного приложения влетела бы в копеечку, и скорее всего, не отбила затраты.
                                  –2

                                  Затраты бы отбились, просто прибыль была бы на целых 20 процентов меньше. Или на 10.

                                    +4
                                    Если там такой запас по прибыли, это ж неосвоенный рынок — надо брать!
                                      +4
                                      Вместо одного кросс-платформенного приложения вы будете писать два специализированных (или даже 3, если еще и Linux). Как это может увеличить затраты всего на 10%, если у вам понадобится содержать в 3 раза больше разработчиков?
                                        +5
                                        Tg desktop написан один раз и запускается на всех трёх платформах. И без электрона.
                                          +2

                                          На самом деле два:



                                          Я пользовался обеими версиями, и вторая работает намного лучше.

                                            +1
                                            Но не лучше электрона, следуя вашей логике.

                                            Да, я знаю, что tdesktop на мак считается уже deprecated, но это не отменяет того, что всё компилируется и работает.
                                              +1
                                              Что толку что он запускается, если он убогий?

                                              Я три года писал во все трекеры Tg и QT, что бы они добавили поддержку тачбара. Только недавно дело сдвинулось с мёртвой точки. 3 года(!) понадобилось команде QT что бы добавить десяток биндингов в свой фреймворк.
                                          +3
                                          1) Берём QT
                                          2) Профит, ибо у нас нативное приложение на всех платформах.
                                            +4
                                            Здесь разговор не про нативность с точки зрения бинарного кода, а с точки зрения удобства пользователей. Единообразные горячие клавиши, внешний вид диалогов и меню.

                                            Для этого понадобится писать отдельный платформо-зависимый код, а для этого нужно больше разработчиков.
                                              0
                                              Здесь разговор не про нативность с точки зрения бинарного кода, а с точки зрения удобства пользователей. Единообразные горячие клавиши, внешний вид диалогов и меню.

                                              Тут да, но можно настроить QT так, чтобы он выглядел довольно нативно. К тому же, если правильно писать код, то все горячие клавиши настраиваются, а диалоги используются системные.
                                                –1
                                                Можно писать под GNUStep или Cocotron, а под Mac нативно. Лучше Mac-like на Win, чем Win-like на Mac. Яблочники довольны, а вендопользователям, а тем более линукс всё равно не привыкать. В среднем, всем хорошо.
                                                  +2
                                                  Нет, программы, написанные в mac-style, под виндой бесят. А таких, к сожалению, всё больше
                                                    0
                                                    Линуксоиды разные бывают. Меня например дико бесят «Mac-like» гномоприложения и прочие Brackets, ибо ну не вписывается оно в линуксовую экосистему нативности и текстовости.
                                                  +1
                                                  И на каждом дистрибутиве линукса у него будет свой ворох уникальных ошибок при сборке, и на каждой версии windows, и на каждой macOS.

                                                  Если вы не не пишете что-то компилирующееся в байт-код и тащащее все библиотеки с собой, то вы или обреченны на тюнинг бинарников под каждую платформу или вы обрекаете пользователя на превозмогание, если его окружение чуть-чуть отличается от вашего.
                                                    +1
                                                    И на каждом дистрибутиве линукса у него будет свой ворох уникальных ошибок при сборке, и на каждой версии windows, и на каждой macOS.

                                                    nix. Под один-единственный не-Unix-Like Шиндовс можно и превозмочь разобраться с ошибками.
                                                    вы обрекаете пользователя на превозмогание, если его окружение чуть-чуть отличается от вашего.

                                                    Можно сделать так, чтобы окружение у всех совпадало с точки зрения программы. Тогда гимора меньше.
                                                      +1
                                                      Под Windows проще всего собирать. Под Windows компоновщики не лезут в system32 убедиться, что там в DLL есть нужные входы. Под Windows это вообще, не их, компоновщиков, собачье дело, а существует ли вообще DLL в природе.

                                                      На macOS ты попробуй только не дай ld пощупать каждый dylib, и каждую зависимость каждого dylib. Всё, не хочу, не буду компоновать.

                                                      На Linux в бинарники зашивается rpath. На macOS в каждый dylib зашивается, «где меня искать», и когда ld щупает все dylib, он копирует это в те файлы, которые компонует. Они теперь будут искать по тому адресу, который увидели в dyld.

                                                      Таблица импорта в Windows и macOS двухэтажная, то есть, понятно, какой символ из какой библиотеки, на Linux одноэтажная.

                                                      Гораздо проще с Windows. Не зря полнятся фрисофты и софтпорталы экзешниками.
                                                        0
                                                        На Linux в бинарники зашивается rpath.

                                                        Не вводите в заблуждение. «Зашивается» только при наличии параметра линковки -rpath, при -rpath-link путь к библиотекам используется для линковки без «зашивки». По умолчанию оба параметра не используются, линковщик использует пути определенные в LD_RUN_PATH (man ld).
                                                          0
                                                          Гораздо проще с Windows. Не зря полнятся фрисофты и софтпорталы экзешниками.

                                                          Correlation dose not mean causation. У винды 90% рынка десктопов, поэтому под нее куча софта, а не потому что под нее собирать бинарники проще.
                                                          0

                                                          Nix — это хорошая штука, но пока имеет два (три) недостатка:
                                                          1) Наркоманский синтаксис пакетов
                                                          2) Все можно ставить только в \nix, установка в другие места (например в хомяк) требует дополнительных телодвижений (если вообще возможна?)
                                                          3) Он пока не распространен

                                                            0
                                                            1) Наркоманский синтаксис пакетов

                                                            Это да, но пока GuixSD не научился грузится на нормальных машинах ит пакетов в нём кот наплакал, альтернатив нет.
                                                            2) Все можно ставить только в \nix, установка в другие места (например в хомяк) требует дополнительных телодвижений (если вообще возможна?)
                                                            Сейчас можно сделать nix store где угодно, хоть в хомяке, хоть на удалённой NFS-шаре.
                                                            3) Он пока не распространен

                                                            Ну смотря с чем сравнивать.
                                                          +1
                                                          Можно начинать смотреть на x86 как уже байткод, только плохо поддержанный в этой роли.
                                                        +2
                                                        Вместо одного кросс-платформенного приложения вы будете писать два специализированных (или даже 3, если еще и Linux).

                                                        Будет одно кросс-платформенное приложние, просто не на электроне, а например на Qt.


                                                        Как это может увеличить затраты всего на 10%, если у вам понадобится содержать в 3 раза больше разработчиков?

                                                        Затраты увеличатся больше, чем на 10%, но чем популярнее приложение, тем меньшую долю в общих расходах составляют зарплаты разработчиков.

                                                          +1

                                                          Ваш ход мысли идет по тому же пути, что и в этом треде, где уже объяснялась разница между нативным интерфейсом и нативным кодом

                                                    +3

                                                    Очень странная фигня — vscode для меня был просто открытием, сейчас я не представляю свою работу без него. И по производительности не уступает никому. А вот слак показался жутко тормозным, а сейчас думаю — я к нему привык или слак все таки сделали быстрее?

                                                      –2
                                                      Привыкли. Причём в обоих случаях. В производительности не уступает никому — это я уж не знаю с чем вы сравнивали. Разве что с монстрами на C# или Java. Так-то что что Emacs, что Sublime, что пресловутый VIM — работают гораздо быстрее,
                                                        +1
                                                        Слак работает куда медленнее Телеграмма, даже скорость запуска ниже. Постоянные тормоза при открытии другого диалога, а поиск по сообщениям эпизодически крашит вообще всю работу. Ну и нужно отдельно отметить мак версию телеграмма, которую недавно переписали на Swift — работает просто божественно со всякими вкусняшками вроде стикеров на тачбаре. Тот случай когда превосходство нативных приложений сложно оспорить.
                                                        Вообще, как по мне, идея заменить кроссплатформенными решениями нативные очень странная. Electron и прочие — это не замена нативной разработке, это возможность избавиться от Java и Qt в сегменте прикладного софта. А как делать — кроссплатформенно, или нативно — решать должен в первую очередь бизнес. Если есть бюджеты сопоставимые Дуровским то почему бы и не нанять вдвое больше разрабов и не сделать прям очень круто?
                                                          +2
                                                          Слак работает куда медленнее Телеграмма

                                                          Не могу понять нафига все качают для слака приложение. Чем веб версия не устраивает? В ней хром дополнительный запускать не надо.
                                                          +1
                                                          Как раз таки из-за производительности я перешел на vsc и удалил sublime — vsc запускался быстрее, искал и заменял быстрее и лучше работал с большими файлами. Да и система дополнений там реализована удобнее имхо
                                                          а с vim глупо сравнивать, так как это все таки разные вещи.
                                                            0
                                                            а с vim глупо сравнивать, так как это все таки разные вещи

                                                            vim и vscode разные вещи? А vscode и sublime не разные?

                                                              0
                                                              поясните вашу мысль
                                                                0

                                                                Ну вы считаете, что глупо сравнивать vscode с vim, потому что это разные вещи, а c sublime vscode сравниваете. Видимо, вы считаете, что sublime и vscode — не разные вещи. И тут совершенно непонятно в чём отличие между парой sublime — vsсode и парой vim — vscode. Почему элементы из одной пары сравнивать можно, а из другой — нельзя?

                                                              0
                                                              В моём случае sublime работает и запускается сильно быстрее vsc. У vsc отзывчивость интерфейса вообще ужас (на моей слабой машине). Лаги, особенно при выделении текста. Удалил его.
                                                      0
                                                      отсутствие необходимости что-то устанавливать на компьютер
                                                      Существует концепция portable-версий ПО, которая несомненно должна спасти отца русской демократии.

                                                      А с Electron'ом каждый раз по новой устанавливается аж целый браузер.
                                                        +11
                                                        Ок, опишу конкретный юзкейс, который имел ввиду.
                                                        Компания взглянула на мое резюме и предложила провести собеседование + техническое интервью. На мой вопрос в каком из мессенджеров, ответили, что для таких целей используют google meat и прислали ссылку на созданное по этому поводу собрание. При этом мне было достаточно открыть ее в браузере, разрешить доступ к камере и микрофону и нажать кнопку «Присоединиться к собранию».
                                                        Вот зачем мне при этом ваши эффективные, органично вписывающиеся в систему нативные приложения? Хоть даже и портабельные. Все равно их надо скачивать с сайта производителя и разархивировать, а потом удалять, в случае ненадобности. Именно поэтому у того же google meat для windows ничего нет. Потому что это не нужно.
                                                        То же самое можно сказать про slack. Лично мне полностью хватает браузерного функционала. Так что нет никакого смысла скачивать клиент под windows. Тем более, что он все равно никаких дополнительных возможностей не предоставляет.
                                                        Поэтому я и считаю, что за полнофункциональными PWA будущее. Тем более, что для них отдельный экземпляр хрома не нужно будет тащить. Если приложение осуществляет работу исключительно с сетью — ок, пользуй, как веб страничку. Если нужен доступ к системе, как тому же VSCode — предложит в один клик установить локально, и будет запускаться как отдельное окно браузера. При этом все плюсы: кроссплатформенность, унификация, скорость, отзывчивость, расширяемость, доступность останутся. Мне это кажется, как минимум, перспективным.
                                                          +5
                                                          «google meat» — намечается вкусное собеседование :)
                                                            0
                                                            Кейсы — они такие. В «относительно настоящем» времени пишутся. :) А так это пример из более-менее недавней практики.
                                                              +1
                                                              Google Meet
                                                              «to meet» — встречаться
                                                              «meat» — мясо
                                                                0
                                                                Да, действительно. Прошу прощения за невнимательность. :)
                                                                  +4

                                                                  Был уверен что это шутка.

                                                                    0
                                                                    Был уверен, что это серьёзно.
                                                            +2
                                                            Когда вам что-то нужно один раз и забыть — это один кейс. Когда нужно постоянно и регулярно — совершенно другой, столь же валидный кейс. У браузерных приложений лучше с первым но хуже со вторым, так что отметать все остальное кроме браузерок «не только рано но и никогда»(с)
                                                              0
                                                              Да никто, вроде, и не отметает. :) Как по мне, «новые» технологии (если они не совершенно революционные) очень редко убивают «старые». Максимум забирают у них часть рынка. И тут, как мне кажется, будет тоже самое. И в обозримой перспективе js-сингулярность нас точно не ожидает.
                                                              А вот по поводу того, что веб-решения плохо подходят для постоянного использования я уже не сильно согласен. Пару лет назад я бы без колебаний подписался под этим высказыванием. Но с тех пор мое мнение постепенно меняется.
                                                              А то что и в нативном мире все далеко не гладко, на мой взгляд, хорошо подтверждает то, что под десктопы существует очень мало клиентов популярных веб-проектов. Да и под мобилки они часто толстые, тупые и нефункциональные.
                                                                0

                                                                Ну вот есть у вас 5 постоянно нужных веб приложений и надо перезагрузить браузер. Все они вырубаются и потом сами не начинают работу, пока каждую вкладку отдельно не кликнешь. При этом браузер сжирает всю оперативку и уже начинает вылезать из компа, чтобы задушить вас. Короче неудобно все держать в браузере. А ещё электронные приложения любят ни с того, ни с сего выжирать ядро процессора.

                                                                  0
                                                                  В Firefox уже очень давно есть «Pinned Tabs», которые показывают только свою иконку, закрепляются слева от всех вкладок и всегда видны, и всегда загружаются браузером при старте. Включить: просто правой кнопкой по вкладке и «прикрепить».
                                                                  Отлично подходит для чатов и т.п.
                                                                    0
                                                                    А потом оказывается, что сработал какой-нибудь Lazy Load и закреплённые вкладки не прогрузились (на примере Chrome). Или мы достигли предела памяти и браузер просто молча погасил вкладку. И не поменял ей иконку.
                                                              0
                                                              Люди почему-то очень любят отдельные приложения. Вон даже у хабра есть мобильное приложение (у портала со статьями) и его все активно просили, а теперь просят его обновлять.
                                                              При этом объяснить зачем им отдельное приложение никто обычно не может. Есть какое-то полу-суеверное мнение что в браузере все «не стабильно», а в приложении как-то «надежнее».
                                                                +1
                                                                На смартфоне держу приложения онлайн банка, али, ибэй, youtube… Они работают быстрее, присылают оповещения, плавнее работает интерфейс. Да и заточены они под мобилку лучше, чем даже mobile версия сайта.
                                                                  0
                                                                  Я говорю про случаи когда есть полная альтернатива в форме веб приложения, особенно если это альтернатива для десктопа.
                                                                  Банкинг и ютуб — тебуют наличия всяких нативных штук (хотя пока из ютуба не выпилили воспроизведение звука в бэкграунде — я пользовался веб версией)
                                                                  Али нe пользовался, у ибэя действительно убогий сайт (и не только мобильный)
                                                                  Фишка браузера в том — что это и есть унифицированный интерфейс для всех приложений. Везде можно нажать «назад», зумить, выделить текст, открыть ссылку в новой вкладке, поделиться url'ом, сохранить картинку и т.д.
                                                                    0
                                                                    Если про десктоп, то клиент Telegram, к примеру, я всё-же предпочёл нативный. Меньше открытых вкладок в хроме, висит в трее и не мешает. YouTube предпочитаю смотреть через PotPlayer. Пробовал онлайн 3D редакторы. Лаги/мало функций. Музыка — через нативный плеер (хоткеи/функции). Да, я из тех, кто любит отдельные приложения. Ну серьёзно, они работают быстрее и функций в них больше.
                                                                      0
                                                                      Да, я из тех, кто любит отдельные приложения. Ну серьёзно, они работают быстрее и функций в них больше.
                                                                      Ну дык за это их и любят… но современная тенденция это «жрите что дают… хотели „нативного приложения“?.. мы вам браузер с нашим веб-сайтом изолентой смотаем и скажем, что это — нативное приложение...»

                                                                      Ненавижу…
                                                                      0
                                                                      когда есть полная альтернатива в форме веб приложения

                                                                      Простите, но это как опрос «пользуетесь ли вы интернетов» проводить через сайт.
                                                                      унифицированный интерфейс для всех приложений

                                                                      Проблема в ненормальном стремлении браузеров стать эдакими операционными системами — мы получаем слой абстракций на ровном месте.
                                                                        –1
                                                                        Простите, но это как опрос «пользуетесь ли вы интернетов» проводить через сайт.

                                                                        Не очень понял, почему?

                                                                        Проблема в ненормальном стремлении браузеров стать эдакими операционными системами — мы получаем слой абстракций на ровном месте.

                                                                        Не на ровном месте. «write once, run anywhere»
                                                                          0
                                                                          Ну так вы требуете «полную альтернативу в виде веб-приложения», а она не всегда есть, не всегда нужна, у всех разные приоритеты. Редко когда и сайт, и приложение выходят полноценными — кого-то да обделят функциями. Иногда до смешного: долго не мог понять, почему коллеги ругают приложение Банка Москвы. Оказалось, что в iOS версии перевод клиентам пары десятков банков был сделан вполне нормально, а вот на Android чтобы в сам банк Москвы отправить перевод, нужно было вводить БИК, КПП и корсчета заполнять.

                                                                          у хабра есть мобильное приложение… просят обновлять

                                                                          Просят его написать. Когда я его последний раз запускал, оно могло «на главной» показывать статьи недельной давности и даже полная версия сайта на каком-нибудь GPRS загружалась быстрее. Как они так смогли — не понимаю.
                                                                  –1
                                                                  прислали ссылку на созданное по этому поводу собрание. При этом мне было достаточно открыть ее в браузере, разрешить доступ к камере и микрофону и нажать кнопку «Присоединиться к собранию».
                                                                  Для таких случаев оно и нужно. Может имярек пройдёт собеседование, а может и нет — глупо просить соискателя ставить конкретный клиент и ещё давать ему гостевую учётку корпоративного сервера видеоконференций.
                                                                  Вот зачем мне при этом ваши эффективные, органично вписывающиеся в систему нативные приложения?
                                                                  И это спрашивает человек с Хабра :( На секунду показалось, что я ixbt.com просматриваю.
                                                                  Все равно их надо скачивать с сайта производителя и разархивировать, а потом удалять, в случае ненадобности.
                                                                  Ну, да, существуют такие мальчики-летуны, которые обладают приятным голосом и ясным взлядом, умудряются проходить почти любые собеседования в мелких и не очень конторах, но нигде не задерживаются больше месяца-полутора. Очень редкая, но неприятная категория. Для таких, наверное, это проблема — каждый раз на новой работе под требования текущей конторы что-то новое устанавливать.
                                                                  Поэтому я и считаю, что за полнофункциональными PWA будущее.
                                                                  Лет 10 назад то же самое говорили про Microsoft .NET.
                                                                  При этом все плюсы: кроссплатформенность, унификация, скорость, отзывчивость, расширяемость, доступность останутся.
                                                                  «Надежды юношей питают, отраду старцам подают...»(с)Ломоносов

                                                                  Нужны ли нативные приложения или достаточно будет веб-сервиса/веб-морды — всё зависит от того, является ли комп основным рабочим инструментом. Если требуется комфортно работать, чтобы ни мессенджер, ни что другое не мешало основной рабочей среде — да нужны. Если необходимо только формировать отчёты и связываться с коллегами — нет, не нужны.
                                                              –4

                                                              Увы, мак вырос и под него пришли писать приложения компании которым плевать на культуру мак, им плевать на пользовательский опыт, мак для них — ещё одна проблема которую надо решить минимальными затратами. Аутлук, ворд-ексель, слак, телеграм и куча более невежественных кроссплатформенность Qt-поделок, или, того хуже Java SE кошмаров. К ним добавился Электрон, а теперь и сам Эппл игнорирует свой же UX.
                                                              Бабло побеждает всё )

                                                                +6

                                                                А что вы имеете против Qt? В отличие от электрона эта технология максимально близка к процессору, никаких виртуальных сред исполнения и скриптов в браузерах.

                                                                  +1

                                                                  И в Qt'e есть большой пласт кода под общим названием look & feel, который как раз нацелен на то, чтобы пользовательский опыт не был неожиданностью на платформе.

                                                                    0
                                                                    К сожалению, у них не получилось. Или плохо старались.
                                                                    +3

                                                                    Ну это не совсем так. В qml можно почти весь фронт написать на js, который станет исполняться на V8. При этом нативные модели представления могут быть очень тонкими и их можно не брать в расчет.

                                                                      +2
                                                                      Там давно уже нет v8
                                                                        +1

                                                                        rpg18 справедливо заметил, что там сейчас другой движок, QV4. Да, внутри JS движок, но все же это не будет то же самое, что HTML, потому что QML гораздо современнее, изначально создавался для динамичного и гибкого построения GUI, а не для статики. Там многопоточность адекватная работает, есть сигналы и слоты с чисто C++ реализацией, стилей всяких кривых как правило нет, а просто изображения рендерятся.

                                                                        +7
                                                                        Проблема не в близости к процессору, проблема — в UX. Джава там, джава-скрипт или плюсы — не так принципиально, как уважение к пользователю.
                                                                        Когда запускаешь приложение, то, обычно, сразу видно, что это Qt. Начинаешь пользоваться и сразу утыкаешься в то, что разработчик приложения не живёт в экосистеме мака и сделал клон потому что может. Основная беда — не работают привычные шорткаты, часто их даже нельзя задать, поскольку мало кто за пределами мака знает, например, про cmd+E. Пункты меню напиханы как захотелось разработчику — чтобы что-то найти, приходится искать, и хорошо, если есть поиск в хелпе. Контролы на окно набросаны «чтобы было», а не в соответствии с гайдлайнами — выглядит примерно как сайт из 90-х.
                                                                          +1
                                                                          немного надумано. Если разработчику важен этот сегмент рынка, то он постарается приложение написать как можно ближе к HIG от вендора ОС. Если нет, то ой.
                                                                          Разве QT не позволяет написать нативный интерфейс OSX?
                                                                            –3
                                                                            немного надумано
                                                                            Вам, конечно, видней.

                                                                            Если разработчику
                                                                            насколько мне известно разработчик не решает задачи этого уровня, а бизнесу важно поставить галочку минимальными усилиями

                                                                            Разве QT не позволяет написать нативный интерфейс OSX?
                                                                            Можно, но, как уже было сказано выше, подавляющему числу кроссплатформенных проектов недостаёт понимания культуры платформы, проще говоря сделано по принципу «так сойдёт».
                                                                              +2
                                                                              Не позволяет
                                                                              0
                                                                              кто за пределами мака знает, например, про cmd+E

                                                                              Имаксеры знают)

                                                                          +7
                                                                          Мне кажется, речь не только о Mac. Проблема более широкая, это же происходит и в Win и в мобилах. Разработчикам удобно написать один раз и потом запускать где угодно (такой почти Java лозунг). Microsoft, следуя известной мудрости, перестала бороться и решила возглавить. И это даже не смотря на то, что фактически это означает смерть для своих средств разработки (WinForm, WPF).
                                                                          А что пользователи, почему они это терпят? Мне кажется, дело в массовом проникновении web. Во времена Word 6, html был настолько уродлив, что по интерфейсу он и близко не мог конкурировать с десктопом. Сейчас все изменилось, некоторые веб приложения функционально и особенно визуально стали не хуже нативных приложений. Этих приложений стало очень много, пользователи научились работать с разными приложениями и «нативность» и следование гайдам осталась нужна далеко не многим. В результате имеем то, что имеем. Сейчас это стало похоже на вывески и рекламу в провинциальном городе — каждый лепит, что хочет, да поярче. Упорядочить это будет сложно, т.к. приложение пишется под сильно разные целевые ОС.
                                                                            0
                                                                            Microsoft, следуя известной мудрости, перестала бороться и решила возглавить. И это даже не смотря на то, что фактически это означает смерть для своих средств разработки (WinForm, WPF).

                                                                            Сейчас спокойно можно написать кроссплатформенное приложение используя Xamarin, а WinForms и WPF вообще открыли недавно, так что средства разработки не умерли, а мутировали чтобы соответствовать рынку.

                                                                              +1
                                                                              Xamarin не умеет в Linux.
                                                                                0

                                                                                Xamarin.Forms для GTK развивается, скоро будет всё ок...

                                                                              0
                                                                              Во времена Word 6, html был настолько уродлив, что по интерфейсу он и близко не мог конкурировать с десктопом.
                                                                              Времена Word 6 — это, я извиняюсь, 1993й год, тогда про HTML только в CERN'е знали и с интерфейсом у него было чуть более, чем никак. Браузер был только один, второй появился плюc-минус тогда же и в нём только-только появился тег <img>…

                                                                              В общем говорить об это как об интерфейсе приложений — было нельзя от слова «совсем».

                                                                              Сейчас это стало похоже на вывески и рекламу в провинциальном городе — каждый лепит, что хочет, да поярче.
                                                                              То же самое было в 80е в мире MS-DOS и CP/M.

                                                                              Однако появление MacOS и Windows всё изменило… осталось только понять — как и почему.
                                                                                0

                                                                                Так-то винформам давно пора на покой.

                                                                                +5
                                                                                Я вообще непонимаю, почему пользователи не замечают еще проблему во всем, что основано на Chromium. Если у кого мощный компьютер, безусловно можно игнорировать большое потребление ресурсов, но как можно игнорировать эти уродливые размытые и бледные шрифты (по крайней мере на Windows)? При чем, чтобы сделать их не бледными, достаточно просто при сборке Skia (библиотека рендеринга, используемая Chromium) указать другую константу гамма-коррекции.
                                                                                  +3
                                                                                  Я думал это только у меня с компом/монитором какой-то баг с этими шрифтами…

                                                                                  Насчет мощности.
                                                                                  Пересел как-то с 6-гигового ноута на 16-гиговый, проц тоже в пару раз помощней. Рабочее окружение такое же. Через пару недель выскакивает окошко: «Недостаточно памяти. Закройте то-то»
                                                                                  Офигевая лезу в диспетчер — да, почти вся память съелась тем же Хромом, немного остальным.
                                                                                  Это Винда. Она щедро распределяет все, что имеет, и ее не насытить. И определенная логика в этом есть.
                                                                                    +6
                                                                                    Не. Это не Винда. Это именно Хром. У меня на 4 гигах месяцами аптайм Win7 бывает, без всяких утечек памяти. Просто я не держу браузеры на хромиуме всё время открытыми…
                                                                                      –9
                                                                                      Хром, но квотирует ему место Винда. Если бы он сам себя ограничил гигом — тогда да, но он грит: «мне чем больше, тем лучше». И это логично. Винда видит кучу памяти, и щедро раздает всем сестрам по серьгам. А Хром не в курсе, что у тебя там ИДЕ-шка твоя уже свопает. Ему дали, он жрет, чтобы более качественно отрисовать бледными шрифтами тебе какой-нить важный контент.
                                                                                      Вот так, я думаю, виндоуз ресурс скедьюлер работает.
                                                                                        +11
                                                                                        Винда раздаёт столько, сколько её просят. Как и любая операционная система. Не её вина, что для ваших приложений у вас не хватает оперативки.
                                                                                          –1
                                                                                          Я вроде о том же и написал, не?
                                                                                            +3
                                                                                            Просто вы такой упор делаете на винду, как будто в других ОС иначе.
                                                                                              +1
                                                                                              Вам показалось. Просто я с другими ОС не знаком.
                                                                                        –1
                                                                                        скорее всего винда, у меня ноутбук Linux mint, 16ГБ ОЗУ, постоянно хром запущен с 15-20 выкладками, ещё запущен vscode, бывает что запускаю на VMware workstation, виртуалки на CentOS, и ни разу никаких проблем. Так что дело видимо в виндах
                                                                                          +3

                                                                                          Целых 16 гиг и всего 20 вкладок? Так у вас просто запросы скромные. Опера (старая, на престо) без проблем показыва 200 и при этом ела не больше гига. Почему-то ни один современный браузер на такое не способен. Зато стильно-модно-молодёжно.

                                                                                            –1
                                                                                            Современные браузеры как минимум намного больше заботятся о безопасности и стабильности, что требует больше памяти. Процесс на вкладу это дорого, но необходимо.
                                                                                              +3

                                                                                              Только почему-то на момент существования в опере было меньше уязвимости чем в любом другом (может конечно просто не искали — доля рынка маленькая), а по стабильности она была лучше чем все ныне существующие вместе взятые. Впрочем, это всё равно не имеет значения, уже похоронили. Простите мне моё брюзжание, мне стоило воздержаться от комментариев.

                                                                                                +2
                                                                                                И не искали, и интернет другой был раньше. Сейчас совсем другие времена настали. Не от хорошей жизни все на webkit перелезли и бросили писать движки сами.
                                                                                                  +2

                                                                                                  Да, не от хорошей жизни. Только от жадности и лени.

                                                                                                    +1
                                                                                                    Скорее от понимания, что поспевать всем со своими движками за современным интернетом не получается. Интернет стал слишком сложным, а с ним и движки браузеров. Поэтому люди бросили эту затею и решили влиться в общее коммьюнити, чтобы сделать один движок хотя бы нормально.
                                                                                                      0

                                                                                                      Нет. Можно добится отсутствия уязвимостей высоким качеством кода, а можно переложить эти задачи на программу (читай — на мользовательский пк). Повысить касество кода — солжно и дорого, получить "безопасность" ценой увеличения нагрузки на пользочательский ПК — легко и дёшево. А люди жадные и ленивые. Результат немного предсказуем.

                                                                                                        +1
                                                                                                        Да. Качество кода не гарантирует отсутствие уязвимостей, они неизбежно будут. Изоляция процессов это необходимая мера, чтобы минимизировать ущерб. Тоже самое касается банальных крашей и зависаний — они всегда могут всплыть на таких объемах кодовой базы, хоть как ты хорошо код пиши. Недеяться на свой программерский скилл и плевать на базовые меры безопасности — это уже будет наплевательское отношение к безопаности пользователей.
                                                                                                          0
                                                                                                          И много вы выдели программ, где добились отсутствия уязвимостей «высоким качеством кода»?

                                                                                                          Я знаю один пример — но он очень показателен. Загрузчик Wii. 8K кода. Очень простого кода. Без GUI и многозадачности. Загрузить загрузчик второго уровня, проверить подпись и запустить. Всё.

                                                                                                          На устранение всех ошибок ушло три года.

                                                                                                          Как вы думаете — сколько времени уйдёт на устранение всех ошибок в программе размером с современный браузер? Если экстраполировать?
                                                                                                            0

                                                                                                            А много ли вы знаете проектов где отсутствия уязвимостей и стабильности добились с помощью особенностей языка? Я так например ни одого не знаю. Зато проектов которые не избавившись от недостатков получили ещё и прожорливость — множество.

                                                                                                              0
                                                                                                              Великое множество таких, устанешь называть. Любой проект на C#/Java и прочем контролируемом — в них просто невозможны уязвимости из-за работы с памятью. Со стабильностью тоже самое — любой язык со сборщиком мусора исключает целый ворох проблем с памятью, контролируемые среды дают намного больше гарантий в многопотоке, Go какой-нить своими примитивами делает написание многопотока намного проще и яснее, erlang тоже самое, только еще более радикально к этому подходит, Rust сюда же с его гарантиями. В общем, примеров и того, и другого великое множество.
                                                                                                                –1

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

                                                                                                                  0
                                                                                                                  Прочитайте еще разик мой комментарий, а потом обзываться лезте. Невежество ваше меня не волнует, я вам написал то, что просили.
                                                                                                                0
                                                                                                                А много ли вы знаете проектов где отсутствия уязвимостей и стабильности добились с помощью особенностей языка?
                                                                                                                А причём тут «особенности языка»? Архитектура к языку не сводится.

                                                                                                                Если хотите порассуждать о стабильности — попробуйте добиться от классической Windows (хоть 1.0/2.0/3.x, хоть Windows 9x) стабильности, сравнимой с Windows NT (и потомками Windows NT) или даже Linux (там похожие идеи использованы).

                                                                                                                Да, вирусы от перехода на XP/Windows 7/Windows 10 не исчезли, да, вместо вирусов, прописывающих себя в MBR мы получили криптолокеры и прочее… но говорить, что между ними нет никакой разницы может только идиот, не понимающий, что «отсустстие уязвимостей» и «стабильность» — не бинарные понятия.
                                                                                                                  0

                                                                                                                  При статье они. Как-то линейку windows nt смогли написать более стабильной без Rust'a и Go. А в статье пишут, что дескать нельзя по определению.

                                                                                                                    0
                                                                                                                    Как-то линейку windows nt смогли написать более стабильной без Rust'a и Go.
                                                                                                                    Всё в этом мире относительно. Несколько лет назад было исследование — сколько времени живёт выставленная в Internet Windows 2000 без сервис-паков. Оказалось что скачать их с сайта Microsoft она не успевает.

                                                                                                                    А ваш роутер, который отсекает все эти попытки взлома — это как раз классический дополнительный уровень безопасности и есть.
                                                                                                                      0

                                                                                                                      И внезано, ПО этого роутера тоже как-то обходится без Rust, Go, и прочих Java. Кагжетаг?

                                                                                                                        0
                                                                                                                        Обходиться можно и ассемблером. Это не значит, что этого достаточно и ничего лучше не нужно. Демагогию вы тут разводите. Вы не то что не понимаете, а даже не хотите понимать, в чем преимущества этих языков, и чем объективно они лучше С/С++ в плане стабильности и предотвращении уязвимостей вроде heartbleed.
                                                                                                                          0

                                                                                                                          Что, правда чтоли? https://habr.com/post/249537/

                                                                                                                            0
                                                                                                                            Да, правда что ли. По вашей ссылке код, который не имеет никакого отношения к heartbleed. Один глупость написал, другой не думая скопипастил. Суть heartbleed в чтении памяти за пределами массива из-за отсутствия проверки длины. То, что в Rust и любом другом современном безопасном языке сделать невозможно.
                                                                                                                              0

                                                                                                                              Ну действительно, на что я надеялся в дискуссии с вами.

                                                                                                                                0
                                                                                                                                Вы прикалываетесь уже что ли? Вы сами то код читали? Он никаким местом к heartbleed не относится. Да, не стоит ожидать в дискуссии со мной, что я буду невнимательным и просто проглочу вброс какой-то.
                                                                                                                            0
                                                                                                                            Обходиться можно и ассемблером.
                                                                                                                            Грустный опыт разработчиков OS Menuet/Kolibri как бы показывает нам, что нельзя.
                                                                                                                              0

                                                                                                                              А что там грустного случилось? Я специально за проектом не слежу, поэтому не в курсе.

                                                                                                                      0

                                                                                                                      И, к слову, Windows 98 была довольно стабильна. Как минимум сней у меня было меньше проблем чем с NT 3 (или 3.5? я уже и не помню. четвёрка уже была гораздо лучше, хотя вроде та же архитектура).

                                                                                                                        0
                                                                                                                        Win9x:
                                                                                                                        Ваш коврик выполнил недопустимую операцию и был свернут

                                                                                                                        жмешь «закрыть»… а оно опять… ещё раз… синий экран… нажмите любую кнопку… оо, работает
                                                                                                                        ===
                                                                                                                        забыли уже?
                                                                                                                          0

                                                                                                                          Не знаю о чём вы. Win98 стояла лет десять, за это время бсодов наверно штук десять было, и всегда это было связано с тем, что я проводил какие-то бесчеловечные опыты. Вот Win95 это была жесть, да.

                                                                                                                            0
                                                                                                                            тут такойже эффект как у владельцев БУ авто которые говорят что они не ломаются, просто сравнить не с чем

                                                                                                                            поставьте себе Win98 и посидите недельку ;) я пару лет назад тут на старый комп ставил 98… прям как в прошлое вернулся и «выполнило недопустимую операцию» и все все радости 9x
                                                                                                                            раньше это просто было настолько нормой что внимание не обращали
                                                                                                                            p.s. сидел на винде с 3.0 версии довольно долго, на каждой кроме me и nt 3
                                                                                                                              0

                                                                                                                              Да где же я драйвера возьму под 9x! Да и софт современный не запустится. А без драйверов и софт не очень понятно что там вообще делать, в косынку играть? так при таком использовании будет годами работать без сбоев)))

                                                                                                                                0
                                                                                                                                А чего не Убунту? Драйверов нет под старое железо?
                                                                                                                                  0
                                                                                                                                  «вспомнить молодость»
                                                                                                                                  и Win9x работает быстрее убунты на старом железе, чтобы там ни говорили адепты линукса (не, ну в консоли то она конечно не тормозит, или в DE в котором все урезано кроме окошек и указателя мышки)
                                                                                                          0

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

                                                                                                            +4
                                                                                                            Процессы в системах существуют не для безопасности

                                                                                                            Правда? Когда это изоляция адресного пространства перестала быть функцией системы безопасности ОС? Браузеры ее используют по прямому назначению — для изоляции. Потоки здесь не подходят.
                                                                                                            –2
                                                                                                            Те, кто заботятся о безопасности, и те, кто пишут на C++, — это непересекающиеся множества.

                                                                                                            К памяти можно было бы относиться более бережливо, если б были счётчики ссылок и слабые ссылки, и только на крайние случаи сборщики мусора. Но за столько лет в JavaScript так и не сделали слабые ссылки.

                                                                                                            Плевать там все хотели и на безопасность, и на потребение памяти.
                                                                                                              +2
                                                                                                              Если бы было плевать, то не делили бы хром на кучу процессов и засовывали это все в песочницу. Это большие сложности, а цель у всего одна — изоляция вкладок и расширений, чтобы браузер был стабильнее и безопаснее.

                                                                                                              Память это необходимый компромисс. Безопасность не дается бесплатно. Она так или иначе требует компромисса — или безопасно, или быстро. По-другому в нашем мире не бывает.
                                                                                                                0
                                                                                                                Если б не было плевать, писали браузер на Аде. Что-то я такой реальной заботы о безопасности не наблюдаю. Больше похоже на симуляцию бурной деятельности.

                                                                                                                Память там отъедается мощно трассирующей сборкой мусора. Про то, как надёжно запечатаны двери в светлое будущее, где счётчиками ссылок и слабыми ссылками сберегается память, я уже написал.
                                                                                                                  +2
                                                                                                                  Вы по существу может лучше напишете, а не демагогию будете разводить? Сделано это для безопасности и стабильности, это факт. Зачем пишут на плюсах — потому что на тот момент лучшей альтернативы на руках не было, webkit черт знает сколько лет уже. Сейчас появилась — Rust, мозила его специально даже для этого и делала. Правда не думаю, что это полностью исключит необходимость в изоляции вкладок процессами. Теже зависания все равно могут вылезти и уж лучше пусть повиснет один процесс с одной вкладкой.
                                                                                                                    +1
                                                                                                                    По существу процессы отнюдь не такое дорогое удовольствие. Операционные системы умеют shmem и mmap, и даже при ASLR умеют кешировать версии с релокациями. А вот трассирующая сборка мусора висит камнем на шее. Чтобы имело смысл проводить трассирующую сборку мусора, мусорить нужно обильно, в 5 раз больше, чем реально используется памяти. И без слабых ссылок всё ещё хуже.

                                                                                                                    Альтернатива плюсам существует 23 года, ещё когда никакого Rust в проекте не было, и это Ада. Вообще, первый, кто задумался о безопасности в языках программирования, — это Никлаус Вирт. Это он первый придумал проверять границы и переполнения. И это был язык Паскаль. И естественным образом это унаследовано потомками Паскаля.

                                                                                                                    За слепошарых мозилловцев ничего не могу сказать. Ну, странные люди.
                                                                                                                      +1
                                                                                                                      А теперь по-думайте по-лучше. Процессы дешевые сами по себе, а браузеру нужно эти процессы поддерживать как единое целое, да еще обеспечивать должную изоляцию. Это значит будет много дублированных данных в каждом процессе, а их у браузера может быть великое множество. Отсюда запросто повышенные требования к памяти.

                                                                                                                      Ну и давайте уже какие-то пруфы про трассирующую эту сборку. Ваши фантазии читать не особо интересно.

                                                                                                                      Что до Ады, беглый гуглинг говорит, что для данной задачи оно не подходит, т.к. безопасность уровня Rust не дает. Есть даже предложение внести что-то подобное Rust в аду, чтобы эту безопасность получить. Ну и, если бы webkit начали писать на этом языке, то можно было быть уверенным, что до наших дней он бы не дожил, т.к. его бы некому было писать. C++ был явно выбран, потому что на то время это был единственный высокоуровневый быстрый язык с большой популярностью. Судя по рейтингам, тогда он проигрывал в популярности только С.
                                                                                                                        +2
                                                                                                                        Ну и давайте уже какие-то пруфы про трассирующую эту сборку. Ваши фантазии читать не особо интересно.
                                                                                                                        Там не «пруфы». Классика — это, вроде бы, вот это статья. Там хорошо видно, что при использовании GC либо вы имеете небольшой overhead по памяти — и дикое замедление, либо небольшое замедление — и потребляете в 4x-5x больше памяти.

                                                                                                                        Насколько я знаю никто ничего с этим поделать не смог. А вообще web платформа — это тихий ужас. Она чуть менее, чем вся состоит из решений, которые увеличивают потребление памяти и замедляют работу во много раз.
                                                                                                                          –2
                                                                                                                          браузеру нужно эти процессы поддерживать как единое целое

                                                                                                                          И что там поддерживать? HWND для отрисовки поделиться? Кукисы заброадкастить?

                                                                                                                          И какие данные там дублировать? Основное, что раздувает память, это DOM, JavaScript объекты и 400% мусора от них, а они не дублируются. К сожалению, отсутствие слабых ссылок усложняет задачу избавления от мусора, так что в JavaScript по принципу и так сойдёт остаётся даже больше мусора (формально достижимого), чем в других системах с TGC, но где слабые ссылки есть.

                                                                                                                          Кеш? Ну, может быть. shmem для кеша нетривиален. Могли недостаточно хорошо сделать.

                                                                                                                          Но мне кажется, они там не за безопасность думали, а как прикрыть свой зад. Я когда Safari пользовался, когда он ещё второй версии был, он падал, потому что не на Аде был написан. OmniWeb ещё пользовался, и он тоже был не на Аде написан, и поэтому падал, но ещё чаще. Падал сразу весь, с текстами недописанными в каких-то вкладках, и это мегафейл. Не считая переписывания на Аде и последующего прозрения, от чего ж там на самом деле падает, и исправления найденных косяков, запилить это в отдельные процессы, похоже было единственной альтернативой. Не решить проблему, а замести под ковёр.

                                                                                                                          Mozilla тут проще, у них нейтральный к языку XPCOM, разные компоненты по отдельности можно апгрейдить на Аду. В WebKit нет XPCOM, но есть Objective-C runtime, тоже потенциально многоязыковой движок.

                                                                                                                          Ну и давайте уже какие-то пруфы про трассирующую эту сборку. Ваши фантазии читать не особо интересно.


                                                                                                                          Почему веб-приложения на мобильных платформах работают медленно

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


                                                                                                                          Сколько на ней пишу, даёт. И ещё даёт ООП внятное, сопоставимое с подмножеством, используемым в C++ и Delphi. Не такая эзотерика с типажами, как в Rust, под которую нужно всё через колено ломать. И исключения вменяемые. Растовские паники (а переполнения чисел и выходы за границы массивов производят именно их) — это почти как апокалипсис. Перехват паники — нештатная операция, и даже, если перехватить, то ещё штатный обработчик успеет нагадить в консоль своё бесполезное сообщение, и его тоже тогда надо перехватывать, чтоб не гадил. Я такую обработку ошибок последний раз в Turbo Pascal видел. Там галочки проверять диапазоны и переполнения были в настройках, но если их включить, происходили такие же апокалипсисы. В Delphi версии этак с четвёртой человеческие исключения возбуждаются, в языке Ада изначально по-человечески.

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


                                                                                                                          Да те же, кто пишут браузеры, и писали бы их на Аде. Чтоб спецы могли запрогать рендеринг не заточенного под это CSS в слои OpenGL, а с одного языка с RAII, шаблонами и ООП не могли перейти на другой язык с RAII, шаблонами и ООП, — да ну, бред какой-то. Кто бы стал там держать принципиально необучаемых. Всё они могут.
                                                                                                                            +2
                                                                                                                            Оу, т.е. вы сами пишете код на Аде и выдаете перлы вроде
                                                                                                                            Я когда Safari пользовался, когда он ещё второй версии был, он падал, потому что не на Аде был написан. OmniWeb ещё пользовался, и он тоже был не на Аде написан, и поэтому падал, но ещё чаще.


                                                                                                                            Получается что все что не написано на Аде — говно.
                                                                                                                            Толстый троллинг.
                                                                                                                +2
                                                                                                                простите, а как безопасность и стабильность требуют больше памяти?
                                                                                                                  –2
                                                                                                                  Ну типа небезопасно и нестабильно — это когда корректное состояние сменяется другим корректным «по индукции». А если к индукционному переходу доверия нет, то нужны а) перекрёстные проверки, б) в случае, если выявлена лажа, по возможности починить состояние.

                                                                                                                  Например, CCured, CHERI и Эльбрус делают указатели разбухшими до четырёх раз, накачивая метаданными, но зато становится возможно проверить валидность. В автоматическом режиме, не переписывая на Аду, принудить код Си и C++ к корректности можно только так.

                                                                                                                  Возможность починить состояние: если лажу оперативно выявлять и пресекать, то и нечего чинить, а вот если крутится Си или C++, без CCured, CHERI или Эльбруса, то остаётся такой радикальный способ, как изолироваться от плюсовой лажи границами процесса. Там, в компостной яме изолированного процесса пусть всё протекает и гниёт как хочет, а граница процесса удерживает гниль от распространения. Но эти границы вроде бы тоже чего-то да стоят по памяти.
                                                                                                                    0
                                                                                                                    Это общее наблюдение, которое справедливо практически для всего. Бесплатно обычно ничего не дается. Если делаем безопасно, то чем-то приходится жертвовать в обмен. Как пример с изоляцией через процессы — это дает накладные расходы по памяти неизбежно. Песочница какая-нить — накладные расходы на перехват всех системных вызовов, дополнительные драйвера, процессы и чего еще там может быть. Шифрование — требует больше вычислительных ресурсов. Везде приходится идти на компромисс и жертвовать памятью или скоростью исполнения.
                                                                                                                      0

                                                                                                                      Но зачастую просадку в производительности можно (хотя бы теоретически) сделать маленькой.
                                                                                                                      Например, песочница для браузера, может быть выполнена (я не знаю, есть ли такая опция в современных ОС, но сделать ее точно можно) как процесс, которому запрещены все системные вызовы. Память выделается один раз, при старте. Сеть/файлы — через общую память с мастер-процессом. Получается довольно быстро (проблемы только с вводом выводом) и довольно безопасно(надо один раз подумать и качественно обрабатывать shared memory).
                                                                                                                      Шифрование — можно реализовать аппаратно, и оно начинает работать быстро.
                                                                                                                      Накладные расходы на процессы довольно невелики. (НЯП, там только стек, и несколько килобайт в ядре).

                                                                                                                        0
                                                                                                                        Кроме стоимости осязаемой стоит еще посчитать стоимость на написание этого всего дополнительного и его поддержку. Вон песочница самодельная в хроме периодически ломалась, т.к. они используются что-то недокументированное в винде. Межпроцессные взаимодействия штука всегда сложная и хрупкая, по себе знаю. Отлаживать это все очень неприятно.

                                                                                                                        Судя по хрому, накладные расходные на их процессы довольно велики. И я совсем отказываюсь верить, что там прям из рук вон плохо все сделано и можно было ужать каждый процесс в 10МБ. Даже если убрать их сборщик мусора.
                                                                                                                  0
                                                                                                                  Опера (старая, на престо) без проблем показыва 200 и при этом ела не больше гига.
                                                                                                                  Тут ещё надо учесть, что те двести вкладок совсем другие были, интернет был совсем обезжиренным по нынешним меркам. Хотя хром и правда любит покушать, конечно.
                                                                                                                    0

                                                                                                                    Неа. Хром и в то время тоже жрал на порядок больше памяти, так что не надо всё списывать на ожиревшие страницы (которые, конечно, тоже имеют место)

                                                                                                                      0
                                                                                                                      Так я не спорю, он всегда голодным был. Firefox, особенно до выхода четвёртой версии, имел куда более скромный аппетит.
                                                                                                            0
                                                                                                            >бледные шрифты

                                                                                                            Можно скриншот? Непонятно, что имеется в виду.
                                                                                                              +3
                                                                                                              Сравните текст в полях ввода Firefox сверху и Vivaldi снизу. То же самое происходит и со шрифтами на самих страницах. То, что в Firefox черное, в chrtomium-based браузерах и electron-приложениях темно серое.
                                                                                                              image
                                                                                                                +3
                                                                                                                Что-то не вижу я на винде таких шрифтов. Все четкое и контрастное. Тоже самое с vscode. Там читаемость шрифтов шикарная.
                                                                                                                  +1
                                                                                                                  Да, заметно более чем.
                                                                                                                  Vivaldi особенно отличился.
                                                                                                                  У меня матрица на ноуте как раз не ахти по части контраста, наверное, на фоне этого не бросается в глаза. Помню, начиная с какого-то релиза Chrome заметил падение контраста, а потом забыл об этом.
                                                                                                                  скриншот



                                                                                                                    0
                                                                                                                    Может, вам просто нужно настроить ClearType? Мне в какой-то момент тоже шрифты в системе стали казаться стремными, потом потыкал в картинки в настройщике и все стало классно. Кроме того, не факт, что дело в рендеринге хрома или неправильной гамме — вполне вероятно, что в адресной строке банально задан не true black, а серый для шрифта.
                                                                                                              0
                                                                                                              Корпорация добра успешно двигается к мировому господству. Помимо новости о том что Microsoft больше не будет разрабатывать свой движек, стоит упомянуть успешное продвижение языков и технологий, например go, а теперь еще и flutter релизнулся.
                                                                                                                0
                                                                                                                Вспомните как работало ПО и игры на новеньких Pentium 166x 128MB RAM, HDD 40Gb!
                                                                                                                Аналогичное ПО и игры теперь весят в 10-ки раз больше, виртуализируются по 10 раз подряд, до вывода на экран.
                                                                                                                  +3
                                                                                                                  Зато работают на 10 платформах, а не только на одной. Именно фрагментация — причина существования таких технологий, как Electron. Если когда-нибудь останется всего одна платформа, он загнётся даже быстрее, чем появился, потому как в нём больше не будет смысла.
                                                                                                                  Но программисты решили, что уж лучше терпеть Electron, чем монополию, а чего там хотят пользователи — то уже лет 15 как никому не интересно.
                                                                                                                    +2
                                                                                                                    То, что разработчикам не интересно мнение пользователей это понятно, главное написать красивый лендинг, продающий ПО, а как там уже реально он будет тупить — это уже решится апгрейдом компа клиента. Насчет мультиплатформенности, тут тоже все зависит от профессиональности разработчика, т.к. неоптимизированный код все равно будет по-разному работать на всех платформах.
                                                                                                                    При этом я не против elecrton-ов и аналогичных web-движков, просто все чаще их суют просто потому, что по-другому уже не умеют.
                                                                                                                    • НЛО прилетело и опубликовало эту надпись здесь
                                                                                                                        0
                                                                                                                        Из немаркетинговых доводов, которые я видел, в браузере реализовано автоматическое открытие клавиатуры при навигации по полям с планшета типа Surface Pro, а на обычном GUI с osk.exe не смогли разобраться, или в чём-то таком проблема.

                                                                                                                        Но вообще проблема в том, что хочется всё и сразу, и веб, и не веб. И Электрон позволяет это, но тогда нужно прогнуться под правила веб. А нет такого решения, чтоб, наоборот, прогнуть веб, а на десктопе и сервере было всё хорошо, как обычно.

                                                                                                                        Что можно было брать QIP'ы и The Bat! ы, с многопоточностью на мониторах, а не на хоаровских сообщениях, и загонять в веб, каких бы костылей это ни стоило. Я пытаюсь сделать это темой своей магистерской работы.
                                                                                                                      +2
                                                                                                                      Зато работают на 10 платформах, а не только на одной
                                                                                                                      Ой ли? Возьмите «тот самый» DOOM, который летал на этом новеньком Pentium. Но поддерживал, при этом, MS-DOS (x86), Sega 32X (2 процессора SH2), Atari Jaguar (68000 и два проприетарных RISC'а), SNES (Super FX 2), Playstation (MIPS и ещё один проприетарный сопроцессор), 3DO (ARM60), Sega Saturn (те же 2 SH2, что и ранее, но другой API), Acorn Archimedes (тоже ARM, но другая OS), GBA (ещё одна OS на ARM). Ну а неофициально — и на осцилографе.

                                                                                                                      Именно фрагментация — причина существования таких технологий, как Electron.
                                                                                                                      Извините, но по сравнению с 90ми и, особенно, 80мы сегодняшная «фрагментация» — это смех.

                                                                                                                      Нет, причина существования Electron — банальнее и проще. Просто разработчиков на JS — на рынке много и они готовы работать «за миску риса» — а Electron позволяет их утилизировать. И всё.

                                                                                                                      Но программисты решили, что уж лучше терпеть Electron, чем монополию, а чего там хотят пользователи — то уже лет 15 как никому не интересно.
                                                                                                                      А вот с этим, боюсь, придётся согласиться. Поскольку пользователи нонче за ПО не платят обычно, то они — таки товар. А кто будет обращать внимание на жалобы и желания товара?
                                                                                                                        +1
                                                                                                                        Ой ли? Возьмите «тот самый» DOOM, который летал на этом новеньком Pentium. Но поддерживал, при этом, MS-DOS (x86), Sega 32X (2 процессора SH2), Atari Jaguar (68000 и два проприетарных RISC'а), SNES (Super FX 2), Playstation (MIPS и ещё один проприетарный сопроцессор), 3DO (ARM60), Sega Saturn (те же 2 SH2, что и ранее, но другой API), Acorn Archimedes (тоже ARM, но другая OS), GBA (ещё одна OS на ARM).

                                                                                                                        Справедливости ради, для всех этих платформ надо было переписывать код (не весь конечно), часто даже нанимали стороннюю компанию для портирования под определенную платформу.
                                                                                                                          0
                                                                                                                          Да, но в результате на все платформы требовалось меньше разработчиков, чем сейчас на одну, универсальную — вот ведь в чём парадокс.
                                                                                                                      +4
                                                                                                                      Когда P166 были новенькими, типичный объем памяти был 16-32, а диска 1-4. А ваш конфиг это скорее максимальный апгрейд старой машины 3-4 года спустя, уже в эпоху P-II и целеронов.
                                                                                                                        +1
                                                                                                                        +1.
                                                                                                                        У меня был Celeron 333, 64Mb RAM, 8Gb HDD. А Celeron вышел значительно позже Pentium 166x
                                                                                                                          0
                                                                                                                          А при чем тут максимальные конфигурации? При выпуске с333 p166 все еще были в продаже, соответственно, могли быть подмешаны накопителями побольше. Да и вообще, это не принципиально, писал по памяти. Если говорить про 1-8Гб HDD, то тем более, в то время этого хватало на все, кроме тяжелых игр и видео (это все запускалось прямо с CD). Сейчас же на 1.5 гига будет приложение, функционалом на 1.5 Мбайт, тянущее за собой кучу фреймворков, библиотек ресурсов (используемых на 1%), еще и интерфейс рисуется браузером. Это хорошо когда все оптимизировано, но ведь каждый второй программист считает что, действительно, достаточно сконцентрироваться на решении поставленной задачи, а если будет тормозить — пусть купят комп пошустрее.
                                                                                                                      +1
                                                                                                                      Я очень могу ошибаться, но я помню времена, когда браузер был частью Windows. И думаю, на следующем круге все вернутся к этой идее — браузер будет частью любой OS, и все пользовательские интерфейсы будут писаться на HTMS/CSS/JavaTypeScript. Да, это приведет к потере единого стиля, так как на JS можно написать как угодно. Да, магазинам будет обидно что кто-то сможет распостранять свои приложения прямо из посковика, минуя монетизацию и верификацию, но это открывает фантастические перспективы для поисковиков — они по сути станут магазинами приложений, и, догадайтесь с трех раз, какая корпорация будет кроваво продвигать PWA, убивая любые электроны еще на взлете.
                                                                                                                        +1

                                                                                                                        Это и сейчас так есть. Вот пример создания js-приложения под Windows 10 в официальной документации. В этом и есть один из моментов перехода на Chromium. Раньше все эти псевдо-нативные приложения открывались в Edge, а теперь это будет Chromium.

                                                                                                                          +5
                                                                                                                          То, что не смогла сделать Java, сделает Javascript
                                                                                                                          Простота разработки победила производительность.
                                                                                                                            0
                                                                                                                            Если методика станет массовой, то и производительность подтянется. В перспективе там явно будет кроме JS еще и WebAssembly. А в еще дальней — WA станет родным набором команд для процессоров, а перегруженный x86 будет наконец отправлен на свалку.
                                                                                                                              +4
                                                                                                                              Производительность уже 15 лет как подтягивается, а большинство десктопных приложений тормозит так же, как и 15 лет назад
                                                                                                                                –1
                                                                                                                                На примере Эльбрус:

                                                                                                                                Эмуляция x86 появилась гораздо раньше нативной Джавы
                                                                                                                                Когда в Унипро делали нативную Джаву, им долго не удавалось получить производительность выше, чем у Джавы в x86 эмуляторе
                                                                                                                                Оптимизированный JavaScript в Унипро сделали только после Java
                                                                                                                                А WebAssembly ещё не сделали

                                                                                                                                На примере Windows для ARM:

                                                                                                                                5 лет назад, Windows RT: да зачем эмуляция x86 на ARM? это убивает всю идею энергоэффективности
                                                                                                                                сейчас, Windows 10 для ARM, Always Connected PC: после того, как что-то не пошли продажи, и эмулятор сразу сделался, и кеширование транслированных цепочек на диске, и нативные срезы библиотечных функций, в общем, почти образцовая эмуляция x86 сделана (чтоб идеально, надо ещё кое-что)

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

                                                                                                                                В том состоянии, как сейчас, WebAssembly требует довольно много костылей, и как пойдёт развитие, не понятно. Скажем, в Wasm все остановы (trap) полностью срывают стек. Значит, чтобы это обойти, нельзя пользоваться стеком Wasm, нужно размещать искусственный стек в памяти, чтоб можно было возвращаться, где остановились.

                                                                                                                                WA как родной набор команд? Вы в курсе для начала, что он стековый, а это как-то и раньше не прижилось.
                                                                                                                                  0
                                                                                                                                  Пока одни хотят костыли в wasm, другие спокойно пользуются
                                                                                                                                    0
                                                                                                                                    Wasm эволюционировал из костыля Asm.js. И пока он это делал, кто-то «спокойно» пользовался JavaScript, производя убогий код из онтопика
                                                                                                                                      0
                                                                                                                                      Из asm.js или PNaCl?
                                                                                                                                        0
                                                                                                                                        Скорее из asm.js

                                                                                                                                        PNaCl был попыткой сделать переносимый байткод из LLVM-биткода.

                                                                                                                                        Оно даже работает… но мало кого волнует…
                                                                                                                                          0
                                                                                                                                          Обратимся к истории. Google проиграл Mozilla в борьбе asm.js vs PNaCL, и стала делать еще один «стандарт». Первая демка wasm запускалась в Сhromium.
                                                                                                                                            0
                                                                                                                                            WebAssembly — это не разработка Google. Над ним трудятся инженеры из разных компаний. Я посмотрел людей что коммитят в репозиторий со спецификацией — мне попались сотрудники Apple, Mozilla, Google и Microsoft. То есть, буквально им занимаются все производители браузеров. Поддержка WebAssembly в Firefox и Chrome появилась почти одновременно: 7 марта 2017 в Firefox 52, 9 марта 2017 в Chrome 57.
                                                                                                                                          0
                                                                                                                                          EmScripten = Asm.js и Wasm
                                                                                                                                          Первый транслятор Wasm был конвертером из Asm.js
                                                                                                                                          И люди, которые Wasm подняли, вроде те же, что и за Asm.js.

                                                                                                                                          А PNaCl? Пока он только в одном браузере, это ни о чём было. Вот FlasCC — другое дело.

                                                                                                                                          И я не видел, чтоб там QIP, The Bat!, Total Commander или ещё какое-то типичное десктопное приложение «спокойно» портировалось в веб с помощью одной из этих технологий. Даже под Linux с большим спокойствием портировали с Windows приложения, хотя там запрос меньше.
                                                                                                                                            0
                                                                                                                                            Asm.js это технология от Mozilla, а первая демка появилась в браузере от Google. А emscripten просто тулчейн, вот Golang без него обходится.
                                                                                                                                  +1
                                                                                                                                  Джаву душили всем миром и майкрософтом, потому что она была реальным кандидатом, а тормознутый JS выжил в битве браузеров, потому что его никто не воспринимал всерьез. А теперь, когда у него даже долгоживущие треды появились, вроде как и