URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 106286
[ Назад ]

Исходное сообщение
"В JavaScript-движок V8 добавлена поддержка WebAssembly"

Отправлено opennews , 10-Янв-16 09:24 
Разработчики  JavaScript-движка V8 сообщили (https://groups.google.com/forum/#!topic/v8-users/PInzACvS5I4) о реализации экспериментальной поддержки WebAssembly (https://github.com/WebAssembly/design/blob/master/README.md) (WASM), не зависящего от браузера универсального низкоуровневого промежуточного кода для выполнения в браузере приложений, скомпилированных из различных языков программирования. Компоненты для выполнения байткода WASM, JavaScript API для доступа к функциональности WebAssembly и сопутствующие элементы инфраструктуры, такие как компилятор из C/C++ в WebAssembly, приняты (https://chromium.googlesource.com/v8/v8/+/4c5b3609fd4de3e0c1...) в кодовую базу V8 и проекта Chromium.


Реализация WASM, интегрированная в V8, основана на генерации движком WASM промежуточного кода, единого с оптимизирующим JavaScript-компилятором TurboFan, что позволило добиться высокой скорости компиляции и высокого качества кода за счёт задействования типовых и проверенных подсистем JIT и runtime. Интеграция также дала возможность обеспечить взаимодействие между WASM и JavaScript без дополнительных прослоек.

По своим задачам WebAssembly во многом напоминает PNaCl (Portable Native Client) и Asm.js. Основное отличие от Asm.js состоит в том, что WebAssembly является бинарным форматом, не завязанным на исходных текстах JavaScript и позволяющим выполнять в браузере низкоуровневый промежуточный код. В отличие от PNaCl, промежуточный код WASM не является машинным кодом и не изолирован в отдельной виртуальной машине, а выполняется с похожим на JavaScript уровнем изоляции. Среди основных задач WebAssembly выделяется обеспечение переносимости между браузерами, предсказуемость поведения и идентичности выполнения кода на разных платформах. Использование WebAssembly также позволит существенно сократить размер приложений, благодаря компактному промежуточному коду, и увеличить скорость декодирования.


URL: https://groups.google.com/forum/#!topic/v8-users/PInzACvS5I4
Новость: http://www.opennet.me/opennews/art.shtml?num=43651


Содержание

Сообщения в этом обсуждении
"В JavaScript-движок V8 добавлена поддержка WebAssembly"
Отправлено Аноним , 10-Янв-16 09:24 
Быстрее бы уже, не терпится выкинуть JavaScript в окно.

"В JavaScript-движок V8 добавлена поддержка WebAssembly"
Отправлено th3m3 , 10-Янв-16 16:18 
JS никуда не денется после прихода WebAssembly. Сразу все переползут на C/C++? Это утопия. С php вон уже сколько лет слезть не могут.

"В JavaScript-движок V8 добавлена поддержка WebAssembly"
Отправлено Аноним , 10-Янв-16 18:09 
Нет, даже в мск. А вот за 75 тр это можно

"В JavaScript-движок V8 добавлена поддержка WebAssembly"
Отправлено cmp , 11-Янв-16 00:59 
Да ну, на хедхантер искали пхпшника за 100 штук, масяца 2 назад.

"В JavaScript-движок V8 добавлена поддержка WebAssembly"
Отправлено Аноним , 10-Янв-16 20:30 
> JS никуда не денется после прихода WebAssembly. Сразу все переползут на C/C++?
> Это утопия. С php вон уже сколько лет слезть не могут.

Компилятор в WASM для других языков запилить труда не составит, особенно для Lisp и JVM-based.


"В JavaScript-движок V8 добавлена поддержка WebAssembly"
Отправлено Аноним , 10-Янв-16 21:29 
> труда не составит

составит. комменты писать - не мешки ворочать.


"В JavaScript-движок V8 добавлена поддержка WebAssembly"
Отправлено Аноним , 10-Янв-16 21:30 
> не терпится выкинуть JavaScript в окно.

Чем он вам так не угодил? Интернет не любите?


"В JavaScript-движок V8 добавлена поддержка WebAssembly"
Отправлено th3m3 , 10-Янв-16 23:56 
Ага. Сидит в сети и плачет, сидит и плачет =)

"В JavaScript-движок V8 добавлена поддержка WebAssembly"
Отправлено АнонимХ , 11-Янв-16 19:34 
Почему только интернет? Поглядите логи графической сессии в линукс. Там куча ошибок js вылезает, а за ними и некорректная работа контролов. В мелочах. И при таком подходе к разработке, который обусловлен языком ( расслабляет девелоперов), отладить это невозможно.

"В JavaScript-движок V8 добавлена поддержка WebAssembly"
Отправлено Аноним , 11-Янв-16 22:11 
Поглядел. Никакого JS не вижу. Наверное не надо gnome 3 было пользоваться.

"В JavaScript-движок V8 добавлена поддержка WebAssembly"
Отправлено Аноним , 10-Янв-16 09:26 
>не зависящего от браузера универсального низкоуровневого промежуточного кода для выполнения в браузере приложений, скомпилированных из различных языков программирования

но ЗАЧЕМ?
нужно быстро и под систему - используй с++ и компилируй бинарь.
нужно календарик или кнопочку на сайт - используй js.
зачем на js писать ВСЁ и в браузере потом страдать?


"В JavaScript-движок V8 добавлена поддержка WebAssembly"
Отправлено цупцпцуп , 10-Янв-16 09:46 
Чтобы календарик был в 3D и со спецэффектами.

"В JavaScript-движок V8 добавлена поддержка WebAssembly"
Отправлено Аноним , 10-Янв-16 09:50 
Как этот
http://www.duarteramos.pt/media/share/DuarteRamos_2016Intera...

"В JavaScript-движок V8 добавлена поддержка WebAssembly"
Отправлено Нанобот , 10-Янв-16 10:30 
Быстрее обрабатывается браузером, меньше занимает места. Догадываюсь, что и компилятор в webassembly сделать проще

"В JavaScript-движок V8 добавлена поддержка WebAssembly"
Отправлено Kodesu , 10-Янв-16 11:57 
> скомпилированных из различных языков программирования
> зачем на js писать ВСЁ и в браузере потом страдать?

Ну ты понял. WA, наоборот, в какой-то степени открывает дорогу конкурентам JS.
> нужно быстро и под систему - используй с++ и компилируй бинарь.

Ага, юзеры так и побегут запускать мой бинарь. Браузер в первую очередь хорош тем, что при запуске скриптов обеспечивается приемлемая безопасность. Какое бы г-но ты не открыл, закроешь вкладку - и нет его.


"В JavaScript-движок V8 добавлена поддержка WebAssembly"
Отправлено freehck , 10-Янв-16 12:38 
Я хотел бы уточнить: а какие именно ограничения накладывают браузеры на исполняемый js-код? Я так понимаю, что скорее всего этот код может работать сетью. А может ли он работать с файлами? Подскажите, что и где почитать об этой самой безомасности, которую браузеры нам предоставляют.

"В JavaScript-движок V8 добавлена поддержка WebAssembly"
Отправлено maximnik0 , 10-Янв-16 13:44 
> сетью. А может ли он работать с файлами? Подскажите, что и
> где почитать об этой самой безомасности, которую браузеры нам предоставляют.

По стандартам с файлами только после диалогового окна на разрешение чтение(записи)файла .
Но в новых стандартах в браузерах разрешили создавать мини базы данных - и средств настройки этого безобразия пока нету :-(


"В JavaScript-движок V8 добавлена поддержка WebAssembly"
Отправлено Aleks Revo , 10-Янв-16 17:25 
В первую очередь код разных сайтов изолирован "пространством" самих этих сайтов. То есть, загружая и запуская веб-приложения - точно уверен, что они друг с другом не "воюют", не пытаются украсть друг у друга пароли и другие данные, подсунуть что-то своё и т.п. То есть в целом, это значительно более здоровая среда, чем полноправные приложения под системной учёткой пользователя с доступом ко всем файлам и в сеть, которые пользователь не может полноценно проверить (и не важно - из-за отсутствия исходников, квалификации или времени на всё это безобразие).

"В JavaScript-движок V8 добавлена поддержка WebAssembly"
Отправлено Crazy Alex , 10-Янв-16 18:13 
В первую очередь это приложения, которые пользователь не может контролировать. Он зачастую даже не понимает, когда они запускаются, не может остаться на определённой версии, не может модифицировать поведение за рамками разрешённого разработчиком.

А вопрос невозможности проверки пользвателем нормальных приложений решается делегированием - сисадмину, а в линуксе - ещё и маинтайнерам.

Плюс "не воюющие" сайты в результате не могут толком взаимодействовать. Гугл когда-то хотел протолкнуть WebIntents как стандарт, но не вышло. В результате - многократная реализация одного и того же, причём, как правило, в весьма куцем виде. О зоопарке интерфейсов вообще скромно умолчим.


"В JavaScript-движок V8 добавлена поддержка WebAssembly"
Отправлено Crazy Alex , 10-Янв-16 18:06 
В основном потому, что нужно сложное приложение, над которым пользователь (и система) не имеет контроля. Это, насколько я понимаю, основная движущая сила развития веб-приложений.

"В JavaScript-движок V8 добавлена поддержка WebAssembly"
Отправлено Аноним , 11-Янв-16 06:07 
Потому что теперь браузер — это доминирующая операционная система.

"В JavaScript-движок V8 добавлена поддержка WebAssembly"
Отправлено Аноним , 10-Янв-16 09:28 
и ещё - они же изобрели JVM!?

"В JavaScript-движок V8 добавлена поддержка WebAssembly"
Отправлено anonymous , 10-Янв-16 09:54 
байткод и виртуальная машина и раньше были, WASM более высокого уровня - "Абстрактное синтаксическое дерево".

"В JavaScript-движок V8 добавлена поддержка WebAssembly"
Отправлено Andrey Mitrofanov , 10-Янв-16 11:21 
> более высокого уровня -
> "Абстрактное синтаксическое дерево".

Lisp, значит, наконе-то?


"В JavaScript-движок V8 добавлена поддержка WebAssembly"
Отправлено rshadow , 10-Янв-16 14:59 
Любой скриптовый язык, созданный и до и после jvm.

"В JavaScript-движок V8 добавлена поддержка WebAssembly"
Отправлено Andrey Mitrofanov , 10-Янв-16 19:43 
> Любой скриптовый язык, созданный и до и после jvm.

Практически ни в одном "скриптовом языке, созданном от и до" *нет* трансляции в AST. В реализации, да. Посмотрит, например, на трудности переписывания "рукописного" интерпретатора cpython в компилятор pypy.

При этом программирование на lisp-е можно рассматривать практически, как написание этого самого AST.

---
Или я не понял Вашей сложной без-глагольной реплики: любой ... язык  $ЧТО?  Эмм, они все изобетают лисп? Ну, да, десятое правило Гринспена.

Только вот AST-то по жизни в компиляторах, да в лиспе.  Хорошо-хорошо, и в V8.

...шутка как-то затянулась.


"В JavaScript-движок V8 добавлена поддержка WebAssembly"
Отправлено Crazy Alex , 10-Янв-16 23:40 
Зато интерпретаторы этих скриптовых языков написаны обычно на С, их запустить в браузере можно уже сейчас - но медленнее, чем хотелось бы. Фактически, WebAssembly даст инфрастурктуру, на которой их модифицированные версии можно будет гонять достаточно быстро - то же управление памятью, эффективное взаимодействие с DOM и так далее.

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

А лисп... да пофигу на лисп. Со всей своей  крутостью (с которой я не спорю) на практике эта штуковина больно уж неудобна по причине адски бедного синтаксиса.


"В JavaScript-движок V8 добавлена поддержка WebAssembly"
Отправлено Бывший школьник , 11-Янв-16 18:28 
Tcl же

"В JavaScript-движок V8 добавлена поддержка WebAssembly"
Отправлено Тот_Самый_Анонимус , 11-Янв-16 08:26 
>Lisp, значит, наконе-то?

Под конём.


"В JavaScript-движок V8 добавлена поддержка WebAssembly"
Отправлено Andrey Mitrofanov , 11-Янв-16 21:20 
>>Lisp, значит, наконе-то?
> Под конём.

Клавиатура с конём поведут меня к прокурору. //Не напоминайте!? Прошу!


"В JavaScript-движок V8 добавлена поддержка WebAssembly"
Отправлено виндотролль , 11-Янв-16 21:28 
> "Абстрактное синтаксическое дерево"

«Двустороннее преобразование Лапласа».

Я не ошибся, это ж в этой ветке — конкурс на самый бессмысленный умно звучащий комментарий?


"В JavaScript-движок V8 добавлена поддержка WebAssembly"
Отправлено Andrey Mitrofanov , 11-Янв-16 21:31 
> Я не ошибся, это ж в этой ветке — конкурс на самый
> бессмысленный умно звучащий комментарий?

Ты не ошибся. https://en.wikipedia.org/wiki/Abstract_syntax_tree В глазах смотрящего.


"В JavaScript-движок V8 добавлена поддержка WebAssembly"
Отправлено виндотролль , 11-Янв-16 21:42 
> https://en.wikipedia.org/wiki/Abstract_syntax_tree В глазах смотрящего.

Ну, я знаю, что такое AST. Однако, смысл сего словосочетания в контексте целого комментария мне не ясен.


"В JavaScript-движок V8 добавлена поддержка WebAssembly"
Отправлено Andrey Mitrofanov , 11-Янв-16 21:47 
> целого комментария мне не ясен.

Теперь мы в тебе не сомневаемся совсем.


"В JavaScript-движок V8 добавлена поддержка WebAssembly"
Отправлено Алоним , 10-Янв-16 10:11 
Флеш уходит. ПНаХ никому не нужен. Видать кому-то очень не хватает возможности подсунуть клиенту нечитаемый бинарник. :-)

Нормально закешированый JS в WebAssembly не нуждается.


"В JavaScript-движок V8 добавлена поддержка WebAssembly"
Отправлено Kodesu , 10-Янв-16 11:47 
Справедливости ради стоит заметить, что нечитаемость легко достигается и при использовании только JS.

"В JavaScript-движок V8 добавлена поддержка WebAssembly"
Отправлено Алоним , 10-Янв-16 12:28 
Это правда — часто не хватает возможности отформатировать код прямо на странице view-source:, приходится копировать в редактор. Но всё же это легче чем проводить диззассемблирование и потом гадать над кодом вида if(0) { asd.324&*(#sdvc } — как оно вообще скомпилировалось?

"В JavaScript-движок V8 добавлена поддержка WebAssembly"
Отправлено Иван , 10-Янв-16 17:00 
В хроме. F12 -> вкладка "Sources" -> в левом нижем углу кнопка "{}" (Pretty print).

"В JavaScript-движок V8 добавлена поддержка WebAssembly"
Отправлено Аноним , 11-Янв-16 22:14 
> "{}" (Pretty print).

Попробуй это сделать на коде выданом emscripten.


"В JavaScript-движок V8 добавлена поддержка WebAssembly"
Отправлено Lain_13_too_lazy_to_login , 10-Янв-16 22:46 
Это помогает ровно до тех пор, пока код хорошо не обфусцируют. Благо такая пакость редво стречается, а в основном попадается eval(function(p,a,c,k,e,d){...}) и пободные безобидные штуки, легко разворачиваемые в исходый код.

"В JavaScript-движок V8 добавлена поддержка WebAssembly"
Отправлено Lain_13_too_lazy_to_login , 10-Янв-16 22:47 
*редко

"В JavaScript-движок V8 добавлена поддержка WebAssembly"
Отправлено Апоним , 10-Янв-16 12:35 
> Справедливости ради стоит заметить, что нечитаемость легко достигается и при использовании только JS.

Да, но WebAssembly — удобно-нечитаемый формат.


"В JavaScript-движок V8 добавлена поддержка WebAssembly"
Отправлено Аноним , 11-Янв-16 22:15 
> Да, но WebAssembly — удобно-нечитаемый формат.

Удачи в чтении того что выдал emscripten. Там такой чудный код, вида b158=15; a12=45; c81=25. Куда до него ассемблерной распечатке.


"В JavaScript-движок V8 добавлена поддержка WebAssembly"
Отправлено Aleks Revo , 10-Янв-16 17:29 
> Флеш уходит. ПНаХ никому не нужен. Видать кому-то очень не хватает возможности
> подсунуть клиенту нечитаемый бинарник. :-)
> Нормально закешированый JS в WebAssembly не нуждается.

А нахрен в большинстве случаев нужна читаемость изолированного приложения? Либо доверяешь данные (которые сам же собственноручно предоставляешь поставщику услуги), либо не доверяешь. Каким образом он эти данные будет жевать - это уже его проблемы. Никто же не закатывает истерик за нечитаемость серверной части кода? :-)


"В JavaScript-движок V8 добавлена поддержка WebAssembly"
Отправлено Crazy Alex , 10-Янв-16 18:23 
Во-первых, закатывают. AGPL не зря придумали. Во-вторых - читаемость = модифицируемость. Вон, для того же youtube не зря есть масса браузерных расширений, подправляющих его поведение.

"В JavaScript-движок V8 добавлена поддержка WebAssembly"
Отправлено Crazy Alex , 10-Янв-16 18:20 
Оно не читаемо не больше, чем asm.js, при этом меньше по объёму и быстрее парсится браузером. Несколько мегабайт джаваскрипта - это вешаться можно. И это вполне реальный случай.

А вопрос "зачем" исчезает, как только оказывается, что нужно делать что-то, на чём сборка мусора JS сходит с ума, или хотя бы где нужен эффективно реализованные структуры данных вроде графов. С объёмом данных, скажем, мегабайт 500. asm.js  в помощь в таких случаях - но у него своих костыльных ограничений предостаточно, а вот WebAssembly - это именно asm.js done right.

В общем, есть планка объёма кода/данных, после которой джаваскрипт не справляется. Другое дело, что такое вообще-то надо в нормальных десктопных приложениях реализовывать, но тренд сейчас такой уж.


"В JavaScript-движок V8 добавлена поддержка WebAssembly"
Отправлено s79 , 11-Янв-16 07:05 
Я не стесняюсь таки спросить, на кой надо отдавать клиенту 500 мегабайт данных в браузер для разовой обработки? чтоб потом жалиться на огнелиса, что он ест овер чем дофига памяти?

"В JavaScript-движок V8 добавлена поддержка WebAssembly"
Отправлено Crazy Alex , 11-Янв-16 12:58 
Представьте себе, что там полноценный графический редактор. Или игра какая. Или офисный пакет с адовых размеров документом. А память - закроете вкладку - отдаст.

WebAssembly - в основном именно о поддержке "больших" приложений, аналогичных десктопным. И, судя по спеке, они там замахнулись не только на браузер, а на "переносимые приложения в песочнице" в целом. Что, в общем, гнусно - но эта гнусность к техничским плюсам и минусам WebAssembly отношения не имеет.


"В JavaScript-движок V8 добавлена поддержка WebAssembly"
Отправлено rob pike , 11-Янв-16 15:48 
> на "переносимые приложения в песочнице"

Должно же это когда-нибудь у кого-нибудь получиться.
У этих не получится - следующие будут пробовать.

"За ними другие приходят
Они будут тоже трудны"


"В JavaScript-движок V8 добавлена поддержка WebAssembly"
Отправлено Crazy Alex , 11-Янв-16 20:13 
Ну, мне всё-таки ближе модель репозиториев, маинтайнеров и свободного софта. все эти "песочницы" создают слишком много проблем в плане взаимодействия, не решают основную проблему - недоверие создателю софта и создают у пользователя иллюзию безнаказанности.

"В JavaScript-движок V8 добавлена поддержка WebAssembly"
Отправлено виндотролль , 11-Янв-16 21:33 
> Несколько мегабайт джаваскрипта - это вешаться можно.

Веб должен быть гипертекстовым, а не гипертолстым. Аудио-, видео- и даже текстовым редакторам — место на компьютере, а не в браузере.


"В JavaScript-движок V8 добавлена поддержка WebAssembly"
Отправлено Andrey Mitrofanov , 11-Янв-16 21:52 
>> Несколько мегабайт джаваскрипта - это вешаться можно.
> Троль должен быть виндогэдэишным, а не гипертолстым. Аудио-, видео- и даже GNU
> имаксу -- место на компьютере, долой браузерé, ситуайён.

//trolled-over


"В JavaScript-движок V8 добавлена поддержка WebAssembly"
Отправлено виндотролль , 11-Янв-16 22:23 
как думаешь, тебя кто-то кроме тебя самого понимает? :)

"В JavaScript-движок V8 добавлена поддержка WebAssembly"
Отправлено Andrey Mitrofanov , 11-Янв-16 22:39 
> как думаешь, тебя кто-то кроме тебя самого понимает? :)

Тебя утешает, что таких, как ты много? Ну, ничего-ничего.


"В JavaScript-движок V8 добавлена поддержка WebAssembly"
Отправлено Аноним , 10-Янв-16 10:22 
Unreal Engine оплатил для своих игруль в IE?

"В JavaScript-движок V8 добавлена поддержка WebAssembly"
Отправлено Аноним , 10-Янв-16 12:28 
Сколько можно переизобретать виртуальную машину? И ещё рассказывать сказки про безопасность, скорость, малый объём.

"В JavaScript-движок V8 добавлена поддержка WebAssembly"
Отправлено Аноним , 10-Янв-16 12:38 
Сколько можно быть попугаем?

"В JavaScript-движок V8 добавлена поддержка WebAssembly"
Отправлено Аноним , 10-Янв-16 14:28 
Про строгую статическая типизация можно забыть, теперь баги удвоятся.

"В JavaScript-движок V8 добавлена поддержка WebAssembly"
Отправлено Crazy Alex , 10-Янв-16 18:29 
Наоборот, вообще-то. В сущности, сейчас единственные отработанные пути генерации WASM - компиляция сишного и плюсового кода через Emscripten или преобразование готового asm.js. Оба варианта строго статически типизированы. а дальше - там, конечно, хоть интерпретатор Питона можно будет запустить (можно и сейчас, но тормозит), но хуже, чем сейчас, определённо не станет.

"В JavaScript-движок V8 добавлена поддержка WebAssembly"
Отправлено Аноним , 10-Янв-16 20:07 
Нет. Проверка типов происходит на этапе компиляции, соответственно, вы можете использовать любой язык с любой системой типов, компилятор которого умеет генерировать байткод webassemble (или если будет бэкенд для llvm, то можно будет компилятор языка -> llvm ir -> webassembe ir). Теперь можно будет писать веб приложения на нормальных языках.

"В JavaScript-движок V8 добавлена поддержка WebAssembly"
Отправлено Аноним , 10-Янв-16 16:03 
кто нибудь обьяснит, что хрень это WebAssemby?

"В JavaScript-движок V8 добавлена поддержка WebAssembly"
Отправлено Аноним , 10-Янв-16 16:12 
Ассемблер для Web, что непонятного-то. Он будет исполняться в браузере, в него будут компилироваться другие языки, на нем самом никто писать не будет.

"В JavaScript-движок V8 добавлена поддержка WebAssembly"
Отправлено th3m3 , 10-Янв-16 16:21 
Если кратко, то ты сможешь запускать в браузере обычные программы и игры. Т.е. допустим есть у тебя игра Need For Speed и программа Ableton - если авторы перейдут на WebAssembly, то ты сможешь их запускать прямо в браузере. Так понятнее?

"В JavaScript-движок V8 добавлена поддержка WebAssembly"
Отправлено IMHO , 11-Янв-16 17:00 
писать сайты на ассемблере

"В JavaScript-движок V8 добавлена поддержка WebAssembly"
Отправлено Аноним , 11-Янв-16 22:19 
> кто нибудь обьяснит, что хрень это WebAssemby?

Это рантайм для веба. Вместо извращений с JS и emscripten.


"В JavaScript-движок V8 добавлена поддержка WebAssembly"
Отправлено Xasd , 10-Янв-16 16:46 
а в интерете нет ни одного примера использования этого WebAssembly (wasm)..

...есть только-лишь примеры того как бинарный формат (wasm) конвертируется в рантайме (средствами js, при открытии web-страницы) -- в формат AsmJs для последущего выполнения (выполнения AsmJs).

наиболее яркие примеры -- "AngryBotsPacked" и "PlatformerGamePacked" -- в них используется обычный формат AsmJs, запакованный в wasm-бинарник.

--------------------------------------------------

тык вот -- о чём это я -- а вот о чём!: вот написали новость -- "В JavaScript-движок V8 добавлена поддержка WebAssembly".

а как именно воспользоваться этой поддержкой? что именно нужно вызвать в V8, для того чтобы обработать wasm в режиме "native support"?

(и вообще -- точно ли её туда добавили, эту самую поддержку?)

просматривая исходный код полифиллов -- можно сделать вывод что там сразу происходит преобразование в AsmJs даже без проверки на возможность web-браузера нативно что-то сделать с форматом wasm

--------------------------------------------------

судя по https://github.com/WebAssembly/design/blob/master/Modules.md

использовать wasm-файлы можно будет -- через <script type="module">...</script> или importScripts внутри Worker. (или конструкция import , которая должна появиться во времена ES6)


"В JavaScript-движок V8 добавлена поддержка WebAssembly"
Отправлено Crazy Alex , 10-Янв-16 18:34 
Да забей пока, оно ещё совсем экспериментальное, десять раз поменяется. Плюс, TurboFan в даный момент - довольно бажная штука, с тем же asm.js иногда пессимизирующая так, что скорость на порядок падает, а то и просто чёрт знает что испольняется. Ждём нормальную поддержку (по факту - отдельный от JS движок).

"В JavaScript-движок V8 добавлена поддержка WebAssembly"
Отправлено iLex , 10-Янв-16 18:00 
Да лишь бы он был реально переносимым и кроссбраузерным, а то ж эти четыре упёртых барана как всегда не смогут согласовать стандарты и понапихают каждый своих фич, в итоге никакой совместимостью там даже пахнуть не будет.

"В JavaScript-движок V8 добавлена поддержка WebAssembly"
Отправлено Аноним , 10-Янв-16 18:55 
четыре? два же, и при этом второй загибается

"В JavaScript-движок V8 добавлена поддержка WebAssembly"
Отправлено iLex , 10-Янв-16 19:19 
Над проектом работают Google, Microsoft, Mozilla и Apple. Как думаете, смогут они договориться и все дружно потом придерживаться единого стандарта? Особенно учитывая, что MS уже сейчас объявила, что WebAssembly будет поддерживаться только Edge, но не IE. А что ж дальше-то будет?

"В JavaScript-движок V8 добавлена поддержка WebAssembly"
Отправлено Crazy Alex , 10-Янв-16 22:27 
А что не так? IE скоро сдохнет в любом случае, чего его развивать? Страшнее, чем нынешние различия между, скажем, компиляторами C, не будет - а такого уровня проблемы вполне решаемы.

"В JavaScript-движок V8 добавлена поддержка WebAssembly"
Отправлено Аноним , 10-Янв-16 19:31 
Сначала они кукарекают про то как ява и флеш не нужны, а потом сами же пытаются вставлять бинарники в веб и это типа круто потому что не флеш. Ох уж эти веб-хипстеры, лицемерие да и только!

А мне вот эта хрень очень напоминает ActiveX. От которого все тоже плевались и плюются. Ах, ну да, это же Майкрософт изобрёл, а не Гугл, конечно, это всё меняет...


"В JavaScript-движок V8 добавлена поддержка WebAssembly"
Отправлено Аноним , 10-Янв-16 19:57 
Веб ассембли работает на том же уровне изоляции, что и жс и имеет тот же апи, насколько я понимаю. Джава и флеш это внешние для браузера плагины, предоставляющие свой апи. Такой бинарник ничем не будет отличаться от минимизированного проприетарного скрипта на жс.
ЖС это вообще ошибка. Изначально надо было включить вм в браузер, и компилировать в её байткод код любом языке.

"В JavaScript-движок V8 добавлена поддержка WebAssembly"
Отправлено Аноним , 10-Янв-16 20:25 
JVM в браузер не мешало воткнуть ничего.

"В JavaScript-движок V8 добавлена поддержка WebAssembly"
Отправлено Crazy Alex , 10-Янв-16 23:42 
И завязаться на оракл и монструозную махину, рассчитанную на сервер и даже память отдавать не  умеющую.

"В JavaScript-движок V8 добавлена поддержка WebAssembly"
Отправлено Аноним , 11-Янв-16 01:21 
10 лет назад, когда этот вопрос был актуален, вместо Oracle был Sun, являвшийся корпорацией добра, и практически каждый современный телефон был завязан на JME, и всем было счастье, и никто не страдал. Может быть, ты не застал те времена.

"В JavaScript-движок V8 добавлена поддержка WebAssembly"
Отправлено Crazy Alex , 11-Янв-16 13:05 
Куда б я делся :-) И как раз потому, что J2ME иметь дело пришлось, знаю, что это было убогое и прожорливое (для своих возможностей) окружение, с несовместимостями, вынуждавшими держать штабеля телефонов и тестировать на каждой физической железке отдельно.

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

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


"В JavaScript-движок V8 добавлена поддержка WebAssembly"
Отправлено Аноним , 11-Янв-16 14:31 
>убогое и прожорливое ... с несовместимостями

Оно не было идеальным, но прекрасно выполняло свои задачи, не нужно.

>связываться со штуковиной, завязанной на одну контору,  не надо

Время показало, что советы и разработчики прекрасно покупаются заинтересованными сторонами, а большие компании неплохо заботятся о крупных клиентах, которые могли бы купить советы и разработчиков (если это не офигевший Google, конечно же, назвавший свое отсталое огороженное недоразумение "Java VM" без разрешения), так что все это смысла не имеет.

>десять лет назад и веб-приложений как таковых ещё особенно не было

Они начинали появляться. Очевидно, заботиться размещением JVM в браузере нужно было слегка заранее.


"В JavaScript-движок V8 добавлена поддержка WebAssembly"
Отправлено Crazy Alex , 11-Янв-16 20:10 
Оно хреново выполняло свои задачи. Оно запускалось по 15 секунд, было огорожено где надо и где не надо, имело безумную политику сертификации приложений и, как я говорил, очень проблемно в плане совместимости.

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

Что до конфликта гугла и оракла - лично мне здесь ближе позиция "оофигевшего гугла". Если оно компилирутеся обычным javac, а уже потом во что-то транслируется - по моему скромному мнению это всё же Java. А какие там батарейки-библиотеки прилагаются - дело, в общем, второстепенное.

А насчёт "заранее" - такое работает, когда есть какой-то план, а здесь - типичное стихийное развитие, скорее даже напоминающее революцию (если вспомнить историю WHATWG).


"В JavaScript-движок V8 добавлена поддержка WebAssembly"
Отправлено iZEN , 10-Янв-16 19:41 
> По своим задачам WebAssembly во многом напоминает PNaCl (Portable Native Client) и Asm.js. Основное отличие от Asm.js состоит в том, что WebAssembly является бинарным форматом, не завязанным на исходных текстах JavaScript и позволяющим выполнять в браузере низкоуровневый промежуточный код.

Что-то мне это напоминает. Постойте-ка, дайте подумать... А! Конечно же - WORA (Write Once, Run Anywhere). Конечно-конечно, не прошло и двадцати одного года, как то же блюдо, но под другим соусом. Браво, маэстры WASM! Перехватили всё-таки инициативу после затягивания петли на шее рабочего решения.


"В JavaScript-движок V8 добавлена поддержка WebAssembly"
Отправлено Andrey Mitrofanov , 10-Янв-16 19:51 
> Перехватили всё-таки инициативу после затягивания петли на шее рабочего решения.

Развейте Вашу мысль: Оракел затянул на шее, Гугель перехватил.  И что? Сорвите же покровы? Раскройте суть!


"В JavaScript-движок V8 добавлена поддержка WebAssembly"
Отправлено Аноним , 10-Янв-16 22:19 
Очевидно, изенька имеет в виду, что проклятый гугль выкинул жабоплугин с нпапи и навязал всем конкурирующее решение. В действительности же, рабочее решение для кучи продуктов, приносящих деньги, похерено, а на новом добреце будут только трояны писать.

"В JavaScript-движок V8 добавлена поддержка WebAssembly"
Отправлено Andrey Mitrofanov , 11-Янв-16 11:20 
> Очевидно, изенька имеет в виду, что проклятый гугль выкинул жабоплугин с нпапи
> и навязал всем конкурирующее решение.

После "встречи в суде" с оракелем, я даже готов понять сей ход. Мозиле заодно npapi прищемили. Пауки в банке, ядрёна...

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

Весь веб-два-нуль и далее оно ж и есть: троян-транспорт малварь.

Загрузить неизвестно что неизвестно откуда из интернетов и _исполнить_ в броузере (и молиться, что в этом нагромождении буферов, парсеров, свистоперделок и пр. (css, js, voip, more&more&more included; даже animated gif!) и пр и пр, (и несистеных патченых-бандленых библиотек, да) ничего не сбежит из "кастрюльки" песочницы с этим варевом). Медиа продАвцы, адвАреры и их друзья проприерасы, строители брозеров, знают, что делают с _вашим_ интернетом...


"В JavaScript-движок V8 добавлена поддержка WebAssembly"
Отправлено Crazy Alex , 10-Янв-16 22:24 
Ну, можно и так сказать... если внаглую проигнорировать все детали. Например, то, что на этой платформе запускается сишный код. То есть, по факту, там (с небольшими модификациями) запускается код на любом языке, с любыми парадигмами. У меня есть некоторый опыт работы с переводом на asm.js довольно сложной штуки на C - и оно действительно работает с приличной производительностью (не считая IE, правда - как всегда). С WebAssembly будет ещё лучше. А вот что-то подобное на джаве я слабо представляю.

"В JavaScript-движок V8 добавлена поддержка WebAssembly"
Отправлено Аноним , 11-Янв-16 07:42 
Ясный пень, ты ведь кроме страшных баек о жабе, рассказанных в курилке старшими MVP о программировании для jvm ничего не знаешь.

"В JavaScript-движок V8 добавлена поддержка WebAssembly"
Отправлено Crazy Alex , 11-Янв-16 13:16 
Мать вашу, вот все всегда, понимаешь, в курсе, что я видел, а что нет. Я, если что, с энтерпрайзом не первый год работаю. Вот там жаба на месте - монстр, но стабильный, дубовый и предсказуемый. А вот приличных десктопных приложений на JVM я не видел ни разу, это да.

Я вообще не понимаю, что вас так всех задевает, что некая технология имеет свою нишу и вне её - ни хрена не оптимальна? Нормальная же ситуация. В браузере завязываться на VM, допускающую довольно ограниченный набор подходов  к написанию кода, глупо. Не дать возможность удобного портирования огромного мешка кода, уже существующего на различных языках - глупо вдвойне. Ну просто потому, что веб и жив за счёт анархии, разнообразия всего и вся и возможности что-то дёшево сделать, иногда поступаясь качеством.


"В JavaScript-движок V8 добавлена поддержка WebAssembly"
Отправлено Аноним , 11-Янв-16 13:26 
Ок

"В JavaScript-движок V8 добавлена поддержка WebAssembly"
Отправлено Andrey Mitrofanov , 11-Янв-16 17:53 
> что нет. Я, если что, с энтерпрайзом не первый год работаю.
> Вот там жаба на месте - монстр, но стабильный, дубовый и
> предсказуемый. А вот приличных десктопных приложений на JVM я не видел
> ни разу, это да.

Меня, как админа локелхостика, само-переучившегося в админа линухх-сервера, раздражает разделение десктопа и сервера. Оное против B) моей бизнес-стратегии.

И проприертарь (1 апстрим без независимого сообщества) тоже раздражает, по другой причине... И майкросоуфты с оракелами и гугелями этого мира -- по третьей...

Да, тараканы, да, локалхостик, да, непрофессиональненько. //И +1 Вам за "стабильный, дубовый и предсказуемый" aka _работает же_.


"В JavaScript-движок V8 добавлена поддержка WebAssembly"
Отправлено Crazy Alex , 11-Янв-16 19:56 
А что раздражаться? Десктоп и сервер - это разные условия. Как по надёжности железа, так и по режиму. Норма для сервера - одно приложение, долго крутящееся и потребляющее более-менее одно и то же количество ресурсов. Здесь разные JIT могут хорошо себя показать и можно приложить усилия, чтобы оттюнить всё под конкретную задачу, и делает это квалиифицированный персонал. А на десктопе, когда постоянно что-то запускается, гасится, хаотически меняется нагрузка - и впридачу нормально следить за всем этим часто некому. Понятно, что для разных условий решения тоже разные.

Раздражение - это за пределами ТЗ. Проприетарь без независимого сообщества - риск, да. А вот когда собирается шайка майкрософтов, гуглей и чёртзнает кого ещё - это уже не риск. В том смысле, что могут сделать и криво (а могут - и нет), но тупят они долго и моментально всё угробить так, чтобы спрыгнуть некуда было - не сумеют, а скорее всего - вообще довольно долго тащить будут даже окровенно замшелые решения. В любом случае, WebAssembly ни в чём не хуже, чем существующий сейчас asm.js, но существенно менее костыльно. Единственное, где можно ждать проблемы - если эти товарищи всё попытаются в таком формате распространять. Но от засилья винды и припроетарного софта на ней это,  вобщем-то, ничем не отличается.

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


"В JavaScript-движок V8 добавлена поддержка WebAssembly"
Отправлено виндотролль , 11-Янв-16 22:55 
> В браузере завязываться на VM, допускающую довольно ограниченный
> набор подходов  к написанию кода, глупо. Не дать возможность удобного
> портирования огромного мешка кода, уже существующего на различных языках - глупо
> вдвойне.

Не троллинга ради. Как VM ограничивает подходы к написанию и мешает портированию огромного мешка кода?

Пиши себе новый бекенд для GCC дающий на выходе байткод для browservm и готово. Ну или свой компилятор с нуля...

Я не в курсе, как это работает, но разве портирование того огромного куска C на asm.js (о котором ты упоминал) как-то принципиально отличалось?


"В JavaScript-движок V8 добавлена поддержка WebAssembly"
Отправлено Crazy Alex , 12-Янв-16 17:13 
Я имел в виду, что конкретно JVM - ограничивает, так как её байткод жестко завязан именно на джавовскую объектную модель. Там опкоды вида "вызвать метод интерфейса" и тому подобное.

asm.js и его наследник WebAssembly в этом плане выглядят лучше - там достаточно низкоуровневый код, на котором можно сделать многое, плюс для WebAssembly в планах расширения, направленные именно на упрощение поддержки различных парадигм, вроде TCO, coroutines, низкоуровневого доступа к стеку и т.д.


"В JavaScript-движок V8 добавлена поддержка WebAssembly"
Отправлено виндотролль , 12-Янв-16 18:08 
А, если речь о JVM, то понятно. Спасибо.

"В JavaScript-движок V8 добавлена поддержка WebAssembly"
Отправлено anonymous , 11-Янв-16 01:26 
Сколько можно переизобретать active script?

"В JavaScript-движок V8 добавлена поддержка WebAssembly"
Отправлено Аноним , 12-Янв-16 10:43 
> Сколько можно переизобретать active script?

Предыдущие попытки напомните. Больше ремейков джавы было, на моей памяти.


"В JavaScript-движок V8 добавлена поддержка WebAssembly"
Отправлено Онаний Онаниевич , 11-Янв-16 23:50 
Уже сейчас народ пишет на других языках (TypeScript, ClojureScript, CoffeeScript, свежие версии EcmaScript) и компилирует в JavaScript. Думаю (и, наверно, надеюсь), что всё идёт к тому, что JavaScript вообще перестанет быть чем-то особенно "родным" для браузера и присоединится на общих правах к этому списку, а компилить все сразу будут в байткод.

"В JavaScript-движок V8 добавлена поддержка WebAssembly"
Отправлено Аноним , 12-Янв-16 10:42 
Лишь бы на JS не писать. Неосиляторы.

"В JavaScript-движок V8 добавлена поддержка WebAssembly"
Отправлено Аноним , 12-Янв-16 16:12 
даешь 100500 языков для написания менюшек!

"В JavaScript-движок V8 добавлена поддержка WebAssembly"
Отправлено Crazy Alex , 12-Янв-16 17:33 
Для менюшек-то и джаваскрипта хватает. Только сейчас в браузере отнюдь не только менюшки...