Разработчики web-браузеров Firefox (https://hacks.mozilla.org/2016/10/webassembly-browser-preview/), Chrome (http://v8project.blogspot.ru/2016/10/webassembly-browser-pre...) и Edge (https://blogs.windows.com/msedgedev/2016/10/31/webassembly-b.../) выступили с совместной инициативой WebAssembly Browser Preview, в рамках которой начался новый этап тестирования технологии WebAssembly (http://webassembly.org/), предоставляющей (https://www.opennet.me/opennews/art.shtml?num=42451) не зависящий от браузера универсальный низкоуровневый промежуточный код для выполнения в браузере приложений, скомпилированных из различных языков программирования.
WebAssembly достиг состояния кандидата на получение статуса MVP (http://webassembly.org/docs/mvp/)
(минимально жизнеспособный продукт). Семантика текстового псевдоязыка (http://webassembly.org/docs/semantics/), бинарный формат (http://webassembly.org/docs/binary-encoding/) и JavaScript API (http://webassembly.org/docs/js/) близки к стабилизации, а реализации WebAssembly унифицированы в JavaScript-движках V8, SpiderMonkey, Chakra и JavaScriptCore. По сравнению с первой тестовой версией в JavaScript API появилась поддержка параллельной компиляции (https://github.com/WebAssembly/design/blob/master/JS.md#weba...), кэширования машинного кода, совместного использования кода (https://github.com/WebAssembly/design/blob/master/JS.md#stru...), динамического связывания (https://github.com/WebAssembly/design/blob/master/DynamicLin...) и потоковой компиляции (https://github.com/WebAssembly/design/blob/master/FutureFeat...).В Chrome и Firefox поддержка WebAssembly уже поставляется в штатных сборах в качестве отдельно включаемой опции ("chrome://flags#enable-webassembly" и "about:config javascript.options.wasm"), а в Edge входит в состав экспериментальных сборок (https://github.com/microsoft/chakracore). Для разработчиков подготовлен работающий инструментарий (http://webassembly.org/getting-started/developers-guide/) для компиляции модулей WebAssembly из кода на языках C/C++. Например, для компиляции С/C++/asm.js в WebAssembly можно использовать Emscripten (https://github.com/kripken/emscripten) или созданный на его основе специальный компилятор Binaryen (https://github.com/WebAssembly/binaryen). Для преобразования тестового формата в бинарный поставляется транслятор WABT (https://github.com/WebAssembly/wabt).
Включение WebAssembly по умолчанию и публикация первой версии спецификации ожидаются в первом квартале 2017 года, но точные сроки будут зависеть от хода тестирования и отзывов сообщества. Mozilla планирует включить WebAssembly по умолчанию в выпуске Firefox 52, намеченном на 7 марта. Для демонстрации производительности WebAssembly подготовлен специальный вариант игры Angry Bots (http://webassembly.org/demo/AngryBots/) на базе движка Unity. В текущем виде при сравнении с asm.js наибольший выигрыш в производительности достигается при решении вычислительных задач, например, 64-разрядные арифметические операции в WebAssembly выполняются лишь в 1.13 раза медленнее, чем нативный код, в то время как в asm.js такие вычисления производятся в 8.93 раза медленнее.По своим задачам WebAssembly во многом напоминает PNaCl (Portable Native Client) и Asm.js. Основное отличие от Asm.js состоит в том, что WebAssembly является бинарным форматом, не завязанным на исходных текстах JavaScript и позволяющим выполнять в браузере низкоуровневый промежуточный код. В отличие от PNaCl, промежуточный код WASM не является машинным кодом и не изолирован в отдельной виртуальной машине, а выполняется с похожим на JavaScript уровнем изоляции. Среди основных задач WebAssembly выделяется обеспечение переносимости между браузерами, предсказуемость поведения и идентичности выполнения кода на разных платформах. Использование WebAssembly также позволит существенно сократить размер приложений, благодаря компактному промежуточному коду, и увеличить скорость декодирования.
URL: http://v8project.blogspot.ru/2016/10/webassembly-browser-pre...
Новость: http://www.opennet.me/opennews/art.shtml?num=45403
Теперь бровзер блобы будет исполнять? Нет пути!
Это временно. Когда 64-ядерные 128-битные CPU будут в каждом наладоннике, мы будем получать исходники на некомпилируемых языках
Java аплеты? Так их же недавно выкинули!
Новое поколение рождается каждые 20 лет. В 1995г рождена Java, сейчас - WebAssembly. В течение следующих лет будут "оптимизировать" WebAssembly, пока не устанут, затем выкинут и будут думать о новом (таком же). Привыкайте.
Правильно выкинули. Разработкой веб технологий должены заниматься те, кто их делает, в первую очередь те кто делает браузеры и сайты.
А приляпывание сбоку куска бинарщины ни к чему хорошему не привело, ни с жабой, ни с флешом, ни с ком, сильверлайтом и т.д. Одни только проблемы с безопасность, стабильностью, производительностью, лицензированием и т.д.
> Правильно выкинули. Разработкой веб технологий должены заниматься те, кто их делает, в
> первую очередь те кто делает браузеры и сайты.
> А приляпывание сбоку куска бинарщины ни к чему хорошему не привело, ни
> с жабой, ни с флешом, ни с ком, сильверлайтом и т.д.
> Одни только проблемы с безопасность, стабильностью, производительностью, лицензированием
> и т.д.В Java-апплетах были реализованы одни из самых удачных для своего времени моделей безопасного выполнения кода. С началом эпохи HTML5 поднялся хай про "монструозность" стандартных java-библиотек, хотя JRE в то время занимала около 10 МБ, а DHTML с той же функциональностью был страшен и бесперспективен для сопровождения.
> стандартных java-библиотек, хотя JRE в то время занимала около 10 МБ,Это когда такое было? Я так помню что даже по диалапу качал апдейты явы мегов по 15. И это заметим сжатые чушки, которые на диск разворачиваются еще в несколько раз больше.
>> стандартных java-библиотек, хотя JRE в то время занимала около 10 МБ,
> Это когда такое было? Я так помню что даже по диалапу качал
> апдейты явы мегов по 15. И это заметим сжатые чушки, которые
> на диск разворачиваются еще в несколько раз больше.Нормальная Java (какая она должна быть): jdk-1_1_8_010-windows-i586.exe - 8,4 МиБ (8 772 383 байта). И это JDK с JRE!
Второе поколение Java2: j2re-1_4_2_19-windows-i586-p.exe - 15,1 МиБ (15 856 592 байта) - последняя версия среды выполнения со всем крапом вроде поддержки CORBA, шрифтами и т.д..
Из проблем жабы - совершенно невъе...й по размеру и времени старта рантайм и излишне высокоуровневая субстанция, что очень портит карму и производительность в ряде случаев, без возможности что-либо внятно сделать по этому поводу. Ну и переклин на одном ЯП, без нормальной возможности использования сущетвующего кода.
> Из проблем жабы - совершенно невъе...й по размеру и времени старта рантайм
> и излишне высокоуровневая субстанция, что очень портит карму и производительность в
> ряде случаев, без возможности что-либо внятно сделать по этому поводу.
> Ну и переклин на одном ЯП, без нормальной возможности использования сущетвующего кода.Да неужели?
Среда программирования MS VisualJ++ могла из любого OLE2-(ActiveX-)объекта сделать оболочку JavaBean и запускать как апплет внутри "песочницы" IE3.0. Такие бины (с нативными библиотеками .ocx) можно было использовать в "полунативных" Java-приложениях на Windows, ничего не меняя.
JBuilder для повторного использования кода мог генерировать аналогичные оболочка JavaBean над существующим кодом и помещать в свою палитру компонентов для дальнейшей разработки переносимых приложений и апплетов.
А что имеем сейчас? UML-похерен везде! Визуальный редактор форм с двусторонней взаимно-обратной генерацией кода и представления "two-way-tool" (который сносно работал на Pentium 200MMX) похерен!
> Да неужели?Да ужели. Когда самый незначительный hello world хрустит диском секунд 10, потому что немеряный рантайм идет на взлет - пользователи задалбываются. И очень скоро создатель этого крапа остается в гордом одиночестве. Пользователям не нравятся тормозные сайты, хоть ты тресни.
А технарям дополнительно не нравится что там по 30 vuln в каждой версии латают да еще с большим опозданием. И перекачивать приходится чуть ли не больше чем сам браузер при том что это лишь среда для запуска каких-то краплетов.
> Среда программирования MS VisualJ++ могла из любого OLE2-(ActiveX-)объекта сделать оболочку
> JavaBean и запускать как апплет внутри "песочницы" IE3.0.А сабж не привязан к MS, visual что-то там, сану и прочим OLE/ActiveX, прибитых гвоздями к конкртеной системе команд проца и ОС. Но ты не боись, майкрософту и удодам с вьюжлстудией это их x86@win32 очень хорошо отлилось и еще не раз отольется.
> Такие бины (с нативными библиотеками .ocx) можно было использовать
> в "полунативных" Java-приложениях на Windows, ничего не меняя.В результате ни вам скорости нативного кода, ни вам кроссплатформенности явы. А достоинства где? Если что, "это ява!!!111" (питон, брейнфак, ...) - вообще не достоинство с точки зрения пользователей.
> JBuilder для повторного использования кода мог генерировать аналогичные оболочка JavaBean
> над существующим кодом и помещать в свою палитру компонентов для дальнейшей
> разработки переносимых приложений и апплетов.Я не знаю что за "палитры" и "оболочки". Я просто не оперирую такими сущностями.
> А что имеем сейчас? UML-похерен везде! Визуальный редактор форм с двусторонней
взаимно-обратной
> генерацией кода и представления "two-way-tool" (который сносно работал на Pentium 200MMX)
> похерен!Знаешь, написать сишный код или js я могу в небольшом аккуратном geany без всяких установок два часа и каких там оболочек. А по быстрому немного отрихтовать вообще миднайтовским mcedit, что катит даже на ремотном серваке в его шелле. И об отсутствии у меня на системе переросточного рантайма такого размера и с такими временами запуска я, скажем прямо, совсем не скучаю.
А еще программы на жабе почему-то считали нормальным выглядеть как полный шит. Нативные виджеты и тему из системы взять? Что вы. Блин, даже браузеры делают это менее криво, не говоря про всякие gtk/qt.
>> Да неужели?
> Да ужели. Когда самый незначительный hello world хрустит диском секунд 10, потому
> что немеряный рантайм идет на взлет - пользователи задалбываются.Чему же там идти на взлёт-та? 10 МБ "крапа" никак не могут быстро загрузиться в память? :)))
> И очень
> скоро создатель этого крапа остается в гордом одиночестве. Пользователям не нравятся
> тормозные сайты, хоть ты тресни.Кто говорил о сайте? Пользователь загружал код апплета по сети по частям по мере востребования, пока не придумали упаковку всех классов в zip, а потом в jar - якобы для резкого уменьшения времени на установление соединения для скачки очередного мелкого файла.
Напомню, шли времена, когда довольствовались скоростью интернет-соединения 64-128kbps, а программы на Java имели размер от нескольких килобайт до мегабайта.> А технарям дополнительно не нравится что там по 30 vuln в каждой
> версии латают да еще с большим опозданием. И перекачивать приходится чуть
> ли не больше чем сам браузер при том что это лишь
> среда для запуска каких-то краплетов.Зато сейчас браузеры каждые две недели выходят новые версии. :)))
>> Среда программирования MS VisualJ++ могла из любого OLE2-(ActiveX-)объекта сделать оболочку
>> JavaBean и запускать как апплет внутри "песочницы" IE3.0.
> А сабж не привязан к MS, visual что-то там, сану и прочим
> OLE/ActiveX, прибитых гвоздями к конкртеной системе команд проца и ОС. Но
> ты не боись, майкрософту и удодам с вьюжлстудией это их x86@win32
> очень хорошо отлилось и еще не раз отольется.Слова фанатика. А людям обычно надо, чтобы просто работало и не парило мозги.
>> Такие бины (с нативными библиотеками .ocx) можно было использовать
>> в "полунативных" Java-приложениях на Windows, ничего не меняя.
> В результате ни вам скорости нативного кода, ни вам кроссплатформенности явы. А
> достоинства где? Если что, "это ява!!!111" (питон, брейнфак, ...) - вообще
> не достоинство с точки зрения пользователей.По крайней мере попытка была.
>> JBuilder для повторного использования кода мог генерировать аналогичные оболочка JavaBean
>> над существующим кодом и помещать в свою палитру компонентов для дальнейшей
>> разработки переносимых приложений и апплетов.
> Я не знаю что за "палитры" и "оболочки". Я просто не оперирую
> такими сущностями.Потому что ты тогда ещё маленький был и не знал всей программистской "кухни".
>> А что имеем сейчас? UML-похерен везде! Визуальный редактор форм с двусторонней
> взаимно-обратной
>> генерацией кода и представления "two-way-tool" (который сносно работал на Pentium 200MMX)
>> похерен!
> Знаешь, написать сишный код или js я могу в небольшом аккуратном geany
> без всяких установок два часа и каких там оболочек.JSP тоже пишется в Блокноте легко и непринуждённо. Но всё-таки в IDE его писать в разы удобнее и быстрее - переключаешься на соседнюю вкладку и, опа: там уже сгенерённая из него страница "как есть", живая и рабочая.
> А еще программы на жабе почему-то считали нормальным выглядеть как полный шит.
> Нативные виджеты и тему из системы взять? Что вы. Блин, даже
> браузеры делают это менее криво, не говоря про всякие gtk/qt.Это уже вкусовщина. Мне может быть нравится интерфейс Motif, а кому-то Nimbus, третьему вообще нативный подавай. Всё возможно, если знать ключик командной строки. Но по умолчанию Java работает с ни на что непохожим L&F Metal.
На всех "промышленно написанных" "тяжёлых" сайтах (типа gmail.com, например), Ваш браузер и так по сути получает блоб, полученный так называемой "минификацией" всех JS-модулей, и таблиц стилей, которые используются сайтом.Минификация джаваскрипта порождает нечто несильно отличающееся от бинарника по читаемости.
Есть "де-минификаторы" в "как бы читаемый" JS, но точно также можно декомпилировать и блоб WebAssembly.
Другими словами, будущее, которого Вы боитесь^W^W^Wпро которое Вы набросили, уже давно здесь, просто оно делается набором ужасных костылей, и теперь пытаются костыли заменить на более-менее приемлемое решение.
Поэтому лично я -- за.
о как. певец свободы со свободолюбивым ником за огораживание и заблобирование того, что ещё как-то открыто.
когда ждать заламывания рук с криками о притеснении?
Да ну не неси чуши. Минимизированный JS относительно неплохо превращается в читабельный код который можно просто анализировать. Байт код из новости слишком низкоуровневый и для его анализа нужно будет иметь некий аналог IDA pro
бинарный формат довольно просто транслируется обратно в текст, сначала нужно мат часть выучить, прежде чем чирикать
https://habrahabr.ru/post/308874/
> бинарный формат довольно просто транслируется обратно в текст, сначала нужно мат часть
> выучить, прежде чем чирикать
> https://habrahabr.ru/post/308874/Где именно? Там вроде бы ни слова о декомпиляции.
А если судить тупо по примерам в новости и статье на хабре, то никакой дополнительной метаинформации из исходников не сохраняется и качество "обратной" трансляции будет на уровне одного из многих декомпиляторов "asm2C" начала-середины двухтысячных. Ну, там где лапша из кучи goto или вызовов функций "call321", c кучей переменных типа "local123" или "eax_2", практически отсутсвующими struct-ами и прочими "HLL"-плюшками и читать его будет чуть ли не сложнее выхлопа дисассемблера.
Знаем, проходили. Да и примеры из
https://github.com/WebAssembly/design/blob/master/TextFormat...
get_local 0
get_local 0
i64.const 1
i64.sub
call 0
i64.mul
как бы, намекают.Или великий знаватель матчасти путает исходный код на HL-ЯП и более удобночитаемый для человеков (типа мнемоников/assembly) представления байткода?
Firefox Nightly позволяет заглянуть внутрь wasm-модуля.
В Chrome пока нет инструментов для просмотра wasm, модуль даже не отображается в редакторе. Но к релизу тоже обещают сделать view source.
> Firefox Nightly позволяет заглянуть внутрь wasm-модуля.
> В Chrome пока нет инструментов для просмотра wasm, модуль даже не отображается
> в редакторе. Но к релизу тоже обещают сделать view source.http://v8project.blogspot.de/2016/03/experimental-support-fo...
> A standard textual representation of WebAssembly will enable developers to view the source of a WebAssembly binary like any other web script or resource.Угу, а дизасcемблер позволяет чисто теоретически заглянуть в исходный код ядра винды!
Или чем эти "просмотрщики" отличаются от классических дизасемблеров машино-кодов?
Во-первых - открой asm.js и оцени, насколько он "читаем".Во-вторых - выбирай то, что с открытым кодом, какие проблемы? Ах, почти нет такого? Ну, значит проблема не в языке, а в чём-то другом.
> Ну, там где лапша из кучи goto или вызовов функций "call321", c кучей переменных типа "local123" или "eax_2",Типа в минифицированном js что-то другое. Ты либо потерял нить дискуссии, либо не видел минифицированного js кода.
Джавишный байткод отлично и вполне понятно декомпилируется.
.NET байткод отлично и вполне понятно декомпилируется.--
Ох уж эти жабоскриптеры, которые ни уха ни рыла в программировании.
Справедливости ради - у них существено более высокоуровневый байткод. Что адски ограничивает то, что на нём можно сделать.
webassembly бегает поверх javascript движка - куда уж выше и ограниченней.
В составе, но ни разу не поверх. Это asm.js бегал "поверх" - и то в силу ограниченного синтаксиса и специально добавленных оптимизаций превращался в машинный код практически один-в-один (правда, на сложном коде у этих оптимизаций "крыша едет" - и это одна из основных проблем asm.js).В JVM есть, например, инструкция "создать экземпляр класса". Здесь подобных высокоуровневых штук нет. Нужен класс - выделяй память, инициализируй, пиши указатель на vtbl если надо, и так далее.
> Нужен класс - выделяй память, инициализируй, пиши указатель на vtbl если надо, и так далее.Хм. Звучит соблазнительно! Пойду-ка почитаю драфты.
Но все равно ведь из песочницы не выпустят.
> Джавишный байткод отлично и вполне понятно декомпилируется.
> .NET байткод отлично и вполне понятно декомпилируется.Только вот там к байткоду прилагается куча метаинформации, типа наименований классов, методов, переменных (вплоть до части комментариев), без которых те же фишки с рефлексией просто не катят. Что как раз и позволяет восстановить очень многое "как было".
А то вон даже декомпиляторов обратно в паскаль/дельфи почему-то не было (да и в VB я что-то не припомню) , не говоря уже о тех же плюсах.> Ох уж эти жабоскриптеры, которые ни уха ни рыла в программировании.
Ох уж эти опеннетчики ...
> Да ну не неси чуши. Минимизированный JS относительно неплохо превращается в читабельный
> код который можно просто анализировать.Попробуй почитать код который emscripten генерит. И как тебе чтиво?
А то что байткод низкоуровневый как раз хорошо. Сделать из низкого уровня высокий не проблема, а вот из высокого низкий - обычно не получается совсем. И получается тормозной урод, чаще всего навязывающий единственно правильный ЯП. Разумеется ни с чем не совместимый. Поэтому там где сишник берет либу для принцессы и замка, яваскриптер строит свою катапульту вплоть до тех пор пока принцесса не переедет в другой замок.
Ох уж эти яваскриптеры, одни абстрактные сравнения
> Да ну не неси чуши. Минимизированный JS относительно неплохо превращается в читабельный код который можно просто анализировать.Ну, например, вы получили из минимизированного js более-менее читаемый код. А толку-то?
Всё равно вся логика прячется за эйпиаем.За то теперь у вас в руках есть обертка от конфеты.
> Ну, например, вы получили из минимизированного js более-менее читаемый код. А толку-то?Я не очень понимаю как вещи типа j119=3;k20++; можно сделать "читаемыми". Даже если их отформатировать по человечески, ближайшим аналогом полученного будет выхлоп дизассемблера расколупавшего бинарник.
блобы, жабоскрипт... в какой цвет их не выкрась, это отстой и тупик, не понимаю, за что вы там "за"! Те же яйца, что и .NET, только со смешными языками и разметкой. А весь профит, который получают хомячки с блобами - более закрытые реализации веб-приложений + ... ВИРУСЫ! Жуйте, это же так вкусно.
Во-первых, не только исполнять, но сначала компилировать из байткода в натив.Во-вторых, он уже это делает (50% интернета, которые под Chrome уже сейчас умеют PNaCl).
В-третьих, началось все с NaCl (вика говорит "Initial release September 16, 2011; 5 years ago[1]"), а этот ваш "новый" WebAssembly по сути одобренный MS'ом и Mozilla'ой PNaCl.
Ну и, в-четвертых, там с безопасностью все было и есть хорошо еще с тех времен, когда NaCl заливал с сервера в браузер уже откомпилированный бинарник под нужную платформу (PNaCl заливает байткод). В том смысле, что с помощью этих технологий можно было сотворить ровно столько же, сколько и с помощью банального JavaScript. Только если раньше PNaCl получал сообщения от JavaScript и отдавал ему же (никак по другому не взаимодействуя с внешним миром), то сейчас они, похоже, приделали доступ к тому же API, к которому имеет доступ JavaScript, т.е. WebAssembly общается с внешним миром напрямую через VM, не используя JavaScript, как прослойку.
> Теперь бровзер блобы будет исполнять? Нет пути!Ну конечно, намного лучше яваскрипт на 5 мегабайтов вида a112=52;b19=89;c11=23;d9++;
Если ты не понял - показывать тебе исходник из-под палки затея тухлая. А вот возможность запуска больших и тяжелых штук JS клинит сильно. Есть всякие извращения типа emscripten, но оно кривое до ужаса.
> Теперь бровзер блобы будет исполнять? Нет пути!а вам-то что? не ходите на сайты с блобами и всё.
отлично!
Запускайте свои бинарники из интернетов на моём компе кто угодно!
Ровно так же, как и джаваскрипт
Если у вас Chrome то это давно можно делать. pnacl код можно размещать на любой странице и никто вас не спросит можно ли его выполнить.
Прям как что-то хорошее.
Конечно хорошее. Жаль только у Chrome.
> Запускайте свои бинарники из интернетов на моём компе кто угодно!Оно может примерно столько же сколько JS. Только представление более компактное и на ЯП не завязано.
пора файерволл/антивирус/интернетсекьюрити внутрь на этот уровень интегрить (
> пора файерволл/антивирус/интернетсекьюрити внутрь на этот уровень интегрить (Так баян же - NoScript и uBlock. А интернетсекьюрити сам та еще спайварь.
Флэш и апплеты без плугинов?
лол, вот и замена флешу :D теперь дыр будет намного больше. но может хоть тормозить так не будет
Паникёры, а то что жабаскрипт с серверов исполняется вас не смущает?
Байткод будет выполняться той-же! ВМ, что и жабаскрипт.Новость отличная!
Наконец то можно будет писать на нормальных языках для веб.
теперь можно делать любую магию на низком уровне и писать бэкдоры, майнеры.
> теперь можно делать любую магию на низком уровне и писать бэкдоры, майнеры.Ещё один. Что мешало до этого?
Теперь для этого нужно прибегать к диасаму, +1 ненужная сущность в виде блобов.
> +1 ненужная сущность в виде блобов.А вот это не блоб? Цитирую инжектируемый чуть ли не все страницы jquery:
> data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=M.get(f),1===f.nodeType&&!L.get(f,"hasDataAttrs"))){c=g.length;while(c--)g[c]&&(d=g[c].name,0===d.indexOf("data-")&&(d=n.camelCase(d.slice(5)),P(f,d,e[d])));L.set(f,"hasDataAttrs",!0)}return e}return"object"==typeof a?this.each(function(){M.set(this,a)}):J(this,function(b){var c,d=n.camelCase(a);if(f&&void 0===b){if(c=M.get(f,a),void 0!==c)return c;if(c=M.get(f,d),void 0!==c)return c;if(c=P(f,d,void 0),void 0!==c)return c}else this.each(function(){var c=M.get(this,d);M.set(this,d,b),-1!==a.indexOf("-")&&void 0!==c&&M.set(this,a,b)})},null,b,arguments.length>1,null,!0)},removeData:function(a){return this.each(function(){M.remove(this,a)})}}),n.extend({queue:function(a
Вы смотрите на поверхность, я говорю о далеко идущих последствиях.
В вашем коде можно с большей долей вероятности увидеть исходный код.
> В вашем коде можно с большей долей вероятности увидеть исходный код.Если кто хочет показать нормальный исходник - они покажут. А кто не хочет - он и сейчас отгрузит мегабайт вот таких закорючек напоминающих выхлоп дизассемблера и с JS. Только это к тому же тормозит в разы больше и весит в разы жирнее бонусом. А писать скоростной код на js это вообще пзц извращение.
Ну увидь, хотелось бы пруфов.Кстати, а какая, собственно, разница - именуются переменные a,b,c или 0,1,2? именуется ли переход "if(a)" или "bf 0"?
Так, для справки - NaCl в хроме сто лет как. И там - действительно низкий уровень - обычный машинный код с некоторыми специфическими ограничениями. а от бакдоров как-то не видно. Странно, да?WebAssembly же - это, по факту, приведенный в чувство asm.js, который отлично работает, как минимум, в файрфоксе, хроме и эдже. Никаких дополнительных возможностей он не даёт (во всякмо случае, на данный момент).
> а от бакдоров как-то не видно. Странно, да?Если суслика не видно, это ещё не означает, что его нет.
Вполне возможно, что вредоносную активность этих блобов антивирусы не могут отличить от легитимных действий самого браузера (код выполняется в том же процессе), а сами блобы ведут себя "тихо". Так что ждём первого "прокола"...
> сами блобы ведут себя "тихо". Так что ждём первого "прокола"...Так все то же самое можно и про JS сказать. Он может ровно столько же. А у мозиллы так и сказочный 0day был. Прямо с js-injection в этот их pdf.js. Здорово же когда вьюшка на js рендерить документ в js, особенно если тот сам окажется js :)
Ага, ага. Все мои знакомые виндопользователи клянутся и божатся, что уже 10 лет как в глаза не видели вирусов. Но откуда тогда берутся многотысячные ботнеты, ежедневно ложащие сайты по всему миру? Хакеры сами покупают машинки и хостят у себя под кроватями?И почему 99% IP Билайна в блоклистах за рассылку спама?
>откуда тогда берутся многотысячные ботнетыIoT-устройства без паролей и с доступом в интернеты
Холодильники и тостеры с интернетом? Подпадает аккурат под бритву Оккама.
Видеокамеры в основном
> Холодильники и тостеры с интернетом? Подпадает аккурат под бритву Оккама.Ты свой айпишник напиши, только имей в виду что потом туда несколько сотен гигабитов может прилететь, потому что спид не спит. Пруфлинк: https://github.com/jgamblin/Mirai-Source-Code.git
> не видели вирусовВо-первых, трояны и мэилвари - это не вирусы.
Во-вторых, люди с крайне-низкой компьютерной грамотностью - это тоже не вирусы.
>Паникёры, а то что жабаскрипт с серверов исполняется вас не смущает?Не знаю, мой браузер видит только текст в черно-белом, на остальное запрет.
>>Паникёры, а то что жабаскрипт с серверов исполняется вас не смущает?
> Не знаю, мой браузер видит только текст в черно-белом, на остальное запрет.В библиотеках обработки текста тоже случаются дыры.
>В библиотеках обработки текста тоже случаются дыры.Да тут уже не дыра, а парадный вход с надписью "Welcome".
> Паникёры, а то что жабаскрипт с серверов исполняется вас не смущает?
> Байткод будет выполняться той-же! ВМ, что и жабаскрипт.Вот именно - вместо выпиливания му**ачества под названием "исполни в браузере всякое дерьмо", вы прыгаете от радости "наконец-то у нас появились нечитаемые программы!".
Жабоскрипт - зло со всех сторон, только теперь оно будет в каждой щели.
> Вот именно - вместо выпиливания му**ачества под названием "исполни в браузере всякое
> дерьмо", вы прыгаете от радости "наконец-то у нас появились нечитаемые программы!".Ну как, если уж веб хочет стать рантаймом - пусть хотя-бы делает это не очень криво и не навязывая уродливый обкоцаный ЯП и невменяемые форматы данных. А так у нас все-равно uMatrix есть от всяких сильно шустрых.
> Жабоскрипт - зло со всех сторон, только теперь оно будет в каждой щели.
А теперь это может быть и не JS, для начала. Оно и сейчас могло быть не js'ом но IR был бы ужастик на яваскрипте. В разы более пухлый чем там реально логики и ставящий браузер колом, потому что пока он там прожует 5 мегабайтов ЯПа со сложным синтаксисом и дурной типизацией...
поясни, зачем web-у рантайм? поиграться в ферму или ещё какую хрень?
действительно важные вещи должны быть лаконичными, простыми и лёгкими.
всё остальное - свистоперделки
Web DRM, теперь Веб блобы...
> Web DRM, теперь Веб блобы...Веб-макаки ещё.
как бы уже. но хоть разгебать пока что можно. скоро нельзя будет.
алсо, мозилла тут с боку - лишь бы не оттеснили. а другие два преследуют чисто свои цели: блоб, слежка, непойми что ещё. прощай, свободный веб
Производительность, Игры, low-latency, и др это цель
Мозилла, если что - инициатор и этой штуки, и asm.js.
> Мозилла, если что - инициатор и этой штуки, и asm.js.У нас что, новая "корпорация добра"? Они вообще-то из людей состоят, а люди - обычные продажные мрази, так что злу сейчас ничто не противостоит. Кроме здравого смысла веб-сообщества.
О том и речь, что ни черта они не "корпорация добра". Собственно, особой продажности не замечено - vision-то у них свой есть, но этот vision - "перетащим всё в сеть".
>>динамического связыванияDLL hell теперь прямо в браузере.
Оно всё ранво в рамках одного сайта, так что разве что кто-то сам себе DLL Hell устроит
Ну и против кого они дружат?
Против десктопных приложений, вестимо
Кстати, они же прекрасно дружат в рамках работы над видеокодеком.
против разума.
> Ну и против кого они дружат?Против нас, хомячков. Теперь уже официально можно заливать в браузер всякую дрянь и деланно удивляться "ну вы же сами загрузили!".
>> Ну и против кого они дружат?
> Против нас, хомячков.Это ваши, вендохомячковые проблемы.
> Против нас, хомячков.Ну извини хомячок, придется тебе побыть нашей лабораторной крыской.
Короче, понятно. Движемся к тому что смотрелка сайтов будет DE и средой выполнения. А всё потому что некоторые долбо**ы (MS, Google, частично Apple) не умеют в POSIX и переносимость.
просвети нас убогих про переносимость, будь заюшкой
> Короче, понятно. Движемся к тому что смотрелка сайтов будет DE и средой
> выполнения. А всё потому что некоторые долбо**ы (MS, Google, частично Apple)
> не умеют в POSIX и переносимость.+1
Весь ржач в том, что MS уже профукала один раз Silverlight - ровно то, что ждал маркет в виде сегодняшних webassembly.
Разница в том, что с силверлайтом МС пыталась сделать "аналог и убийцу флеша" - и, как со всеми своими попытками сделать аналог круче оригинала, облажалась. А здесь наконец кто-то (и MS там не на первых ролях) постарался оценить, что действительно нужно, не цепляясь за существующие примеры.
> Весь ржач в том, что MS уже профукала один раз Silverlight -
> ровно то, что ждал маркет в виде сегодняшних webassembly.Только он получился монструозный, сложный в освоении ибо тот же дотнет, а это примерно как жаба и к тому же ни разу не кроссплатформенный. Логично что его такой ждал только пункт сбора металлолома. Остальным такое и даром не упало. Для начала большинство реально живых серверов виндой не пользуются и поэтому требования использовать на машине разработчиков маздай уже вызывают предсказуемые факи в камеру.
> Для начала большинство реально живых серверов виндой не пользуютсяНу давайте не будем врать сами себе. Вот статистика:
https://w3techs.com/technologies/overview/operating_system/allЭто не суперкомпьютеры. Здесь криворуких админов локалхоста навалом.
Inner-platform effect во всей красе.
Что только не придумают, лишь бы JS не учить.
Именно. Js коням оставьте
Сбывается давняя мечта: любой скриптовый язык в браузере. Точнее писть на любом языке, компилять, а выполнять все одно будет одна и таже ВМ.
> Что только не придумают, лишь бы JS не учить.Не учить, а дрессировать.
> Что только не придумают, лишь бы JS не учить.Прости великодушно, чувак, но я реально предпочту ЯП где есть хоть какой-то контроль типов, а константа - это константа, блин.
И пока разработчики самых популярных браузеров второй десяток лет бьются за окончательную смерть мерзкого JavaScript, огромное хипстерское лобби пытается продавить его как основной язык для разработки десктопных приложений.
Потому что на JS можно *овнокодить в два раза быстрее и интереснее :) Ну и заодно троянить во всю ширь.
Не сильно быстрее, и не сильно интереснее. Хотя язык развивается быстро ага.По факту он взлетел на том что изначально умеет асинхронность. В браузере она очень нужна, но провлялась не сильно, т.к. использовалась в основном для реакции на пользователя, да таймеры.
А вот на сервере да, очень нужна. Плюс всякие там пыхи ее не умеют, а серверные программисты в большинстве своем не понимают о чем вообще речь (в том числе и те что про треды начинают что-то рассказывать).
и серверных
Что гораздо хуже.
Потрясающе. Сначала мы выгнали из браузеров джаву, теперь создаём с нуля её копию на том же месте. С отставанием в 10-20 лет от оригинала, понятное дело.
Когда в браузеры притащили джаву она там, во-первых, не по-детски тупила, во-вторых для неё толком не было задач, в третьих она хреново интегрировалась со страницей и вообще работала по своим правилам. Ну и в четвёртых сама VM сильно отличается по сути. Байткод JVM - это, в общем-то, бинарная запись джавы ранних версий. А в то, что здесь, можно фактически любой язык будет засунуть. Да, и в пятых - для джавы правила игры выбирала Sun, а не основные игроки рынка.
> Байткод JVM - это, в общем-то, бинарная запись джавы ранних версий.Стековая VM - это "бинарная запись джавы"?
Я об опкодах. "Store into reference array ", "Create new array of reference", "Get length of array", "Check whether object is of given type", "get a field value of an object objectref", "instanceof", "invokedynamic", "invokeinterface" и так далее - а теперь попытайтесь на этом сделать эффективный Lua, или C++, или PHP, или Perl, или Python (исключением, кажется, оказался только Ruby). Неудобно или вообще не выйдет - сама ВМ слишком прибита к логике джавы.
Опять *овноразрабы изобретают виртуальные машины! Можно подумать, их и так мало.
И что обидно, даже при всех деньгах, мелкософт так и проефукала Silverlight - фактически те же webassembly, но ещё и совместимые с виндой.
Раньше: в браузере виртуальная машина которая исполняет текстовые файлы с javascript кодом.
Теперь: в браузере виртуальная машина которая исполняет текстовые файлы с платформо-языко-независимым байт кодом.Блин да наконецто, 100 лет же ждали, я как сплю и вижу когда я смогу на клиенте function setWindow(width = adoptive, height = adoptive) { ... }. И не думать что там у меня поедет на десктопе а что на мобайле. И без всех этих разметок, жыэс и прочего. А с обычным компилятором.
> я как сплю и вижу когда я смогу на клиенте function setWindow(width = adoptive, height =
> adoptive) { ... }. И не думатьключевое слово "и не думать"
так индустрия работает, сначала пораждает проблемы, даёт народу помучаться,
а затем предлагает "счастливое избавление" - ну вот уж теперь вам будет легче дышаться
правда там у вас чуток отжали прав, ну и проблемы с приватностью, ну ещё по мелочам..а хомяки и рады.. "лишь бы не думать.."
дайте только пофа.. поклониться айфонам и теслам..тьфу..
Интересует следующее: есть ли для новомодной технологии отладчик, среда исполнения отдельно от браузера
Отладчик - да, среда исполнения - нет. Планируется, но не в рамках MVP.
> статуса MVP (минимально жизнеспособный продукт)Вот оно что, MS'овский статус MVP оказывается неслабым таким стебом был :)
что только не выдумают, лишь бы код нормально не писать
> что только не выдумают, лишь бы код нормально не писатьНа JS это технически невозможно.
Если руки кривые, то да.В умелых руках и йух - балалайка!
Пилять...
3 строки текста не посмотреть без тонны г овноскриптов и стилей со шрифтами..
Теперь ещё и блобы..
Тебя кто-то заставляет?