The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

В JavaScript-движок V8 добавлена поддержка WebAssembly

10.01.2016 09:13

Разработчики JavaScript-движка V8 сообщили о реализации экспериментальной поддержки WebAssembly (WASM), не зависящего от браузера универсального низкоуровневого промежуточного кода для выполнения в браузере приложений, скомпилированных из различных языков программирования. Компоненты для выполнения байткода WASM, JavaScript API для доступа к функциональности WebAssembly и сопутствующие элементы инфраструктуры, такие как компилятор из C/C++ в WebAssembly, приняты в кодовую базу 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 также позволит существенно сократить размер приложений, благодаря компактному промежуточному коду, и увеличить скорость декодирования.

  1. Главная ссылка к новости (https://groups.google.com/foru...)
  2. OpenNews: В Firefox 45 появится WebExtensions, совместимый с Chrome интерфейс разработки дополнений
  3. OpenNews: План развития в Firefox технологий, необходимых для разработки компьютерных игр
  4. OpenNews: Анонсирован WebAssembly, обеспечивающий запуск скомпилированного кода в браузерах
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/43651-webassembly
Ключевые слова: webassembly
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (98) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (-), 09:24, 10/01/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Быстрее бы уже, не терпится выкинуть JavaScript в окно.
     
     
  • 2.26, th3m3 (ok), 16:18, 10/01/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    JS никуда не денется после прихода WebAssembly. Сразу все переползут на C/C++? Это утопия. С php вон уже сколько лет слезть не могут.
     
     
     
    Часть нити удалена модератором

  • 4.36, Аноним (-), 18:09, 10/01/2016 [ответить]  
  • +/
    Нет, даже в мск. А вот за 75 тр это можно
     
     
  • 5.64, cmp (??), 00:59, 11/01/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Да ну, на хедхантер искали пхпшника за 100 штук, масяца 2 назад.
     
  • 3.52, Аноним (-), 20:30, 10/01/2016 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > JS никуда не денется после прихода WebAssembly. Сразу все переползут на C/C++?
    > Это утопия. С php вон уже сколько лет слезть не могут.

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

     
     
  • 4.53, Аноним (-), 21:29, 10/01/2016 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > труда не составит

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

     
  • 2.54, Аноним (-), 21:30, 10/01/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > не терпится выкинуть JavaScript в окно.

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

     
     
  • 3.63, th3m3 (ok), 23:56, 10/01/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Ага. Сидит в сети и плачет, сидит и плачет =)
     
  • 3.81, АнонимХ (??), 19:34, 11/01/2016 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Почему только интернет? Поглядите логи графической сессии в линукс. Там куча ошибок js вылезает, а за ними и некорректная работа контролов. В мелочах. И при таком подходе к разработке, который обусловлен языком ( расслабляет девелоперов), отладить это невозможно.
     
     
  • 4.92, Аноним (-), 22:11, 11/01/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Поглядел. Никакого JS не вижу. Наверное не надо gnome 3 было пользоваться.
     

  • 1.2, Аноним (-), 09:26, 10/01/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +8 +/
    >не зависящего от браузера универсального низкоуровневого промежуточного кода для выполнения в браузере приложений, скомпилированных из различных языков программирования

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

     
     
  • 2.4, цупцпцуп (?), 09:46, 10/01/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Чтобы календарик был в 3D и со спецэффектами.
     
     
  • 3.5, Аноним (-), 09:50, 10/01/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Как этот
    http://www.duarteramos.pt/media/share/DuarteRamos_2016InteractiveCalendar_Ver
     
  • 2.9, Нанобот (ok), 10:30, 10/01/2016 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Быстрее обрабатывается браузером, меньше занимает места. Догадываюсь, что и компилятор в webassembly сделать проще
     
  • 2.12, Kodesu (ok), 11:57, 10/01/2016 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > скомпилированных из различных языков программирования
    > зачем на js писать ВСЁ и в браузере потом страдать?

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

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

     
     
  • 3.19, freehck (ok), 12:38, 10/01/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Я хотел бы уточнить: а какие именно ограничения накладывают браузеры на исполняемый js-код? Я так понимаю, что скорее всего этот код может работать сетью. А может ли он работать с файлами? Подскажите, что и где почитать об этой самой безомасности, которую браузеры нам предоставляют.
     
     
  • 4.20, maximnik0 (?), 13:44, 10/01/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > сетью. А может ли он работать с файлами? Подскажите, что и
    > где почитать об этой самой безомасности, которую браузеры нам предоставляют.

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

     
  • 4.31, Aleks Revo (ok), 17:25, 10/01/2016 [^] [^^] [^^^] [ответить]  
  • –2 +/
    В первую очередь код разных сайтов изолирован "пространством" самих этих сайтов. То есть, загружая и запуская веб-приложения - точно уверен, что они друг с другом не "воюют", не пытаются украсть друг у друга пароли и другие данные, подсунуть что-то своё и т.п. То есть в целом, это значительно более здоровая среда, чем полноправные приложения под системной учёткой пользователя с доступом ко всем файлам и в сеть, которые пользователь не может полноценно проверить (и не важно - из-за отсутствия исходников, квалификации или времени на всё это безобразие).
     
     
  • 5.37, Crazy Alex (ok), 18:13, 10/01/2016 [^] [^^] [^^^] [ответить]  
  • +4 +/
    В первую очередь это приложения, которые пользователь не может контролировать. Он зачастую даже не понимает, когда они запускаются, не может остаться на определённой версии, не может модифицировать поведение за рамками разрешённого разработчиком.

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

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

     
  • 2.34, Crazy Alex (ok), 18:06, 10/01/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    В основном потому, что нужно сложное приложение, над которым пользователь (и система) не имеет контроля. Это, насколько я понимаю, основная движущая сила развития веб-приложений.
     
  • 2.67, Аноним (-), 06:07, 11/01/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Потому что теперь браузер — это доминирующая операционная система.
     

  • 1.3, Аноним (-), 09:28, 10/01/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    и ещё - они же изобрели JVM!?
     
     
  • 2.6, anonymous (??), 09:54, 10/01/2016 [^] [^^] [^^^] [ответить]  
  • +/
    байткод и виртуальная машина и раньше были, WASM более высокого уровня - "Абстрактное синтаксическое дерево".
     
     
  • 3.10, Andrey Mitrofanov (?), 11:21, 10/01/2016 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > более высокого уровня -
    > "Абстрактное синтаксическое дерево".

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

     
     
  • 4.22, rshadow (ok), 14:59, 10/01/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Любой скриптовый язык, созданный и до и после jvm.
     
     
  • 5.47, Andrey Mitrofanov (?), 19:43, 10/01/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Любой скриптовый язык, созданный и до и после jvm.

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

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

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

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

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

     
     
  • 6.61, Crazy Alex (ok), 23:40, 10/01/2016 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Зато интерпретаторы этих скриптовых языков написаны обычно на С, их запустить в браузере можно уже сейчас - но медленнее, чем хотелось бы. Фактически, WebAssembly даст инфрастурктуру, на которой их модифицированные версии можно будет гонять достаточно быстро - то же управление памятью, эффективное взаимодействие с DOM и так далее.

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

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

     
  • 6.80, Бывший школьник (?), 18:28, 11/01/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Tcl же
     
  • 4.70, Тот_Самый_Анонимус (?), 08:26, 11/01/2016 [^] [^^] [^^^] [ответить]  
  • +/
    >Lisp, значит, наконе-то?

    Под конём.

     
     
  • 5.85, Andrey Mitrofanov (?), 21:20, 11/01/2016 [^] [^^] [^^^] [ответить]  
  • +/
    >>Lisp, значит, наконе-то?
    > Под конём.

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

     
  • 3.86, виндотролль (ok), 21:28, 11/01/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > "Абстрактное синтаксическое дерево"

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

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

     
     
  • 4.87, Andrey Mitrofanov (?), 21:31, 11/01/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > Я не ошибся, это ж в этой ветке — конкурс на самый
    > бессмысленный умно звучащий комментарий?

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

     
     
  • 5.89, виндотролль (ok), 21:42, 11/01/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > https://en.wikipedia.org/wiki/Abstract_syntax_tree В глазах смотрящего.

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

     
     
  • 6.90, Andrey Mitrofanov (?), 21:47, 11/01/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > целого комментария мне не ясен.

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

     

  • 1.7, Алоним (?), 10:11, 10/01/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +4 +/
    Флеш уходит. ПНаХ никому не нужен. Видать кому-то очень не хватает возможности подсунуть клиенту нечитаемый бинарник. :-)

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

     
     
  • 2.11, Kodesu (ok), 11:47, 10/01/2016 [^] [^^] [^^^] [ответить]  
  • +8 +/
    Справедливости ради стоит заметить, что нечитаемость легко достигается и при использовании только JS.
     
     
  • 3.15, Алоним (?), 12:28, 10/01/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Это правда — часто не хватает возможности отформатировать код прямо на странице view-source:, приходится копировать в редактор. Но всё же это легче чем проводить диззассемблирование и потом гадать над кодом вида if(0) { asd.324&*(#sdvc } — как оно вообще скомпилировалось?
     
     
  • 4.29, Иван (??), 17:00, 10/01/2016 [^] [^^] [^^^] [ответить]  
  • +/
    В хроме. F12 -> вкладка "Sources" -> в левом нижем углу кнопка "{}" (Pretty print).
     
     
  • 5.93, Аноним (-), 22:14, 11/01/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > "{}" (Pretty print).

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

     
  • 4.59, Lain_13_too_lazy_to_login (?), 22:46, 10/01/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Это помогает ровно до тех пор, пока код хорошо не обфусцируют. Благо такая пакость редво стречается, а в основном попадается eval(function(p,a,c,k,e,d){...}) и пободные безобидные штуки, легко разворачиваемые в исходый код.
     
     
  • 5.60, Lain_13_too_lazy_to_login (?), 22:47, 10/01/2016 [^] [^^] [^^^] [ответить]  
  • +/
    *редко
     
  • 3.17, Апоним (?), 12:35, 10/01/2016 [^] [^^] [^^^] [ответить]  
  • +4 +/
    > Справедливости ради стоит заметить, что нечитаемость легко достигается и при использовании только JS.

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

     
     
  • 4.94, Аноним (-), 22:15, 11/01/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > Да, но WebAssembly — удобно-нечитаемый формат.

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

     
  • 2.32, Aleks Revo (ok), 17:29, 10/01/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > Флеш уходит. ПНаХ никому не нужен. Видать кому-то очень не хватает возможности
    > подсунуть клиенту нечитаемый бинарник. :-)
    > Нормально закешированый JS в WebAssembly не нуждается.

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

     
     
  • 3.39, Crazy Alex (ok), 18:23, 10/01/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Во-первых, закатывают. AGPL не зря придумали. Во-вторых - читаемость = модифицируемость. Вон, для того же youtube не зря есть масса браузерных расширений, подправляющих его поведение.
     
  • 2.38, Crazy Alex (ok), 18:20, 10/01/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Оно не читаемо не больше, чем asm.js, при этом меньше по объёму и быстрее парсится браузером. Несколько мегабайт джаваскрипта - это вешаться можно. И это вполне реальный случай.

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

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

     
     
  • 3.68, s79 (?), 07:05, 11/01/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Я не стесняюсь таки спросить, на кой надо отдавать клиенту 500 мегабайт данных в браузер для разовой обработки? чтоб потом жалиться на огнелиса, что он ест овер чем дофига памяти?
     
     
  • 4.72, Crazy Alex (ok), 12:58, 11/01/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Представьте себе, что там полноценный графический редактор. Или игра какая. Или офисный пакет с адовых размеров документом. А память - закроете вкладку - отдаст.

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

     
     
  • 5.77, rob pike (?), 15:48, 11/01/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > на "переносимые приложения в песочнице"

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

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

     
     
  • 6.84, Crazy Alex (ok), 20:13, 11/01/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Ну, мне всё-таки ближе модель репозиториев, маинтайнеров и свободного софта. все эти "песочницы" создают слишком много проблем в плане взаимодействия, не решают основную проблему - недоверие создателю софта и создают у пользователя иллюзию безнаказанности.
     
  • 3.88, виндотролль (ok), 21:33, 11/01/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > Несколько мегабайт джаваскрипта - это вешаться можно.

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

     
     
  • 4.91, Andrey Mitrofanov (?), 21:52, 11/01/2016 [^] [^^] [^^^] [ответить]  
  • +/
    >> Несколько мегабайт джаваскрипта - это вешаться можно.
    > Троль должен быть виндогэдэишным, а не гипертолстым. Аудио-, видео- и даже GNU
    > имаксу -- место на компьютере, долой браузерé, ситуайён.

    //trolled-over

     
     
  • 5.96, виндотролль (ok), 22:23, 11/01/2016 [^] [^^] [^^^] [ответить]  
  • +/
    как думаешь, тебя кто-то кроме тебя самого понимает? :)
     
     
  • 6.97, Andrey Mitrofanov (?), 22:39, 11/01/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > как думаешь, тебя кто-то кроме тебя самого понимает? :)

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

     

  • 1.8, Аноним (-), 10:22, 10/01/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Unreal Engine оплатил для своих игруль в IE?
     
  • 1.16, Аноним (-), 12:28, 10/01/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Сколько можно переизобретать виртуальную машину? И ещё рассказывать сказки про безопасность, скорость, малый объём.
     
     
  • 2.18, Аноним (-), 12:38, 10/01/2016 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Сколько можно быть попугаем?
     

  • 1.21, Аноним (-), 14:28, 10/01/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Про строгую статическая типизация можно забыть, теперь баги удвоятся.
     
     
  • 2.40, Crazy Alex (ok), 18:29, 10/01/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Наоборот, вообще-то. В сущности, сейчас единственные отработанные пути генерации WASM - компиляция сишного и плюсового кода через Emscripten или преобразование готового asm.js. Оба варианта строго статически типизированы. а дальше - там, конечно, хоть интерпретатор Питона можно будет запустить (можно и сейчас, но тормозит), но хуже, чем сейчас, определённо не станет.
     
  • 2.50, Аноним (-), 20:07, 10/01/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Нет. Проверка типов происходит на этапе компиляции, соответственно, вы можете использовать любой язык с любой системой типов, компилятор которого умеет генерировать байткод webassemble (или если будет бэкенд для llvm, то можно будет компилятор языка -> llvm ir -> webassembe ir). Теперь можно будет писать веб приложения на нормальных языках.
     

  • 1.23, Аноним (-), 16:03, 10/01/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    кто нибудь обьяснит, что хрень это WebAssemby?
     
     
  • 2.24, Аноним (-), 16:12, 10/01/2016 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Ассемблер для Web, что непонятного-то. Он будет исполняться в браузере, в него будут компилироваться другие языки, на нем самом никто писать не будет.
     
  • 2.27, th3m3 (ok), 16:21, 10/01/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Если кратко, то ты сможешь запускать в браузере обычные программы и игры. Т.е. допустим есть у тебя игра Need For Speed и программа Ableton - если авторы перейдут на WebAssembly, то ты сможешь их запускать прямо в браузере. Так понятнее?
     
  • 2.78, IMHO (?), 17:00, 11/01/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    писать сайты на ассемблере
     
  • 2.95, Аноним (-), 22:19, 11/01/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > кто нибудь обьяснит, что хрень это WebAssemby?

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

     

  • 1.28, Xasd (ok), 16:46, 10/01/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    а в интерете нет ни одного примера использования этого 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)

     
     
  • 2.41, Crazy Alex (ok), 18:34, 10/01/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Да забей пока, оно ещё совсем экспериментальное, десять раз поменяется. Плюс, TurboFan в даный момент - довольно бажная штука, с тем же asm.js иногда пессимизирующая так, что скорость на порядок падает, а то и просто чёрт знает что испольняется. Ждём нормальную поддержку (по факту - отдельный от JS движок).
     

  • 1.33, iLex (?), 18:00, 10/01/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Да лишь бы он был реально переносимым и кроссбраузерным, а то ж эти четыре упёртых барана как всегда не смогут согласовать стандарты и понапихают каждый своих фич, в итоге никакой совместимостью там даже пахнуть не будет.
     
     
  • 2.42, Аноним (-), 18:55, 10/01/2016 [^] [^^] [^^^] [ответить]  
  • +/
    четыре? два же, и при этом второй загибается
     
     
  • 3.44, iLex (?), 19:19, 10/01/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Над проектом работают Google, Microsoft, Mozilla и Apple. Как думаете, смогут они договориться и все дружно потом придерживаться единого стандарта? Особенно учитывая, что MS уже сейчас объявила, что WebAssembly будет поддерживаться только Edge, но не IE. А что ж дальше-то будет?
     
     
  • 4.58, Crazy Alex (ok), 22:27, 10/01/2016 [^] [^^] [^^^] [ответить]  
  • +/
    А что не так? IE скоро сдохнет в любом случае, чего его развивать? Страшнее, чем нынешние различия между, скажем, компиляторами C, не будет - а такого уровня проблемы вполне решаемы.
     

  • 1.45, Аноним (-), 19:31, 10/01/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Сначала они кукарекают про то как ява и флеш не нужны, а потом сами же пытаются вставлять бинарники в веб и это типа круто потому что не флеш. Ох уж эти веб-хипстеры, лицемерие да и только!

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

     
     
  • 2.49, Аноним (-), 19:57, 10/01/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Веб ассембли работает на том же уровне изоляции, что и жс и имеет тот же апи, насколько я понимаю. Джава и флеш это внешние для браузера плагины, предоставляющие свой апи. Такой бинарник ничем не будет отличаться от минимизированного проприетарного скрипта на жс.
    ЖС это вообще ошибка. Изначально надо было включить вм в браузер, и компилировать в её байткод код любом языке.
     
     
  • 3.51, Аноним (-), 20:25, 10/01/2016 [^] [^^] [^^^] [ответить]  
  • +/
    JVM в браузер не мешало воткнуть ничего.
     
     
  • 4.62, Crazy Alex (ok), 23:42, 10/01/2016 [^] [^^] [^^^] [ответить]  
  • +/
    И завязаться на оракл и монструозную махину, рассчитанную на сервер и даже память отдавать не  умеющую.
     
     
  • 5.65, Аноним (-), 01:21, 11/01/2016 [^] [^^] [^^^] [ответить]  
  • +/
    10 лет назад, когда этот вопрос был актуален, вместо Oracle был Sun, являвшийся корпорацией добра, и практически каждый современный телефон был завязан на JME, и всем было счастье, и никто не страдал. Может быть, ты не застал те времена.
     
     
  • 6.73, Crazy Alex (ok), 13:05, 11/01/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Куда б я делся :-) И как раз потому, что J2ME иметь дело пришлось, знаю, что это было убогое и прожорливое (для своих возможностей) окружение, с несовместимостями, вынуждавшими держать штабеля телефонов и тестировать на каждой физической железке отдельно.

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

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

     
     
  • 7.76, Аноним (-), 14:31, 11/01/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >убогое и прожорливое ... с несовместимостями

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

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

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

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

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

     
     
  • 8.83, Crazy Alex (ok), 20:10, 11/01/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Оно хреново выполняло свои задачи Оно запускалось по 15 секунд, было огорожено ... текст свёрнут, показать
     

  • 1.46, iZEN (ok), 19:41, 10/01/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > По своим задачам WebAssembly во многом напоминает PNaCl (Portable Native Client) и Asm.js. Основное отличие от Asm.js состоит в том, что WebAssembly является бинарным форматом, не завязанным на исходных текстах JavaScript и позволяющим выполнять в браузере низкоуровневый промежуточный код.

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

     
     
  • 2.48, Andrey Mitrofanov (?), 19:51, 10/01/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > Перехватили всё-таки инициативу после затягивания петли на шее рабочего решения.

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

     
     
  • 3.56, Аноним (-), 22:19, 10/01/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Очевидно, изенька имеет в виду, что проклятый гугль выкинул жабоплугин с нпапи и навязал всем конкурирующее решение. В действительности же, рабочее решение для кучи продуктов, приносящих деньги, похерено, а на новом добреце будут только трояны писать.
     
     
  • 4.71, Andrey Mitrofanov (?), 11:20, 11/01/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > Очевидно, изенька имеет в виду, что проклятый гугль выкинул жабоплугин с нпапи
    > и навязал всем конкурирующее решение.

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

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

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

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

     
  • 2.57, Crazy Alex (ok), 22:24, 10/01/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Ну, можно и так сказать... если внаглую проигнорировать все детали. Например, то, что на этой платформе запускается сишный код. То есть, по факту, там (с небольшими модификациями) запускается код на любом языке, с любыми парадигмами. У меня есть некоторый опыт работы с переводом на asm.js довольно сложной штуки на C - и оно действительно работает с приличной производительностью (не считая IE, правда - как всегда). С WebAssembly будет ещё лучше. А вот что-то подобное на джаве я слабо представляю.
     
     
  • 3.69, Аноним (-), 07:42, 11/01/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Ясный пень, ты ведь кроме страшных баек о жабе, рассказанных в курилке старшими MVP о программировании для jvm ничего не знаешь.
     
     
  • 4.74, Crazy Alex (ok), 13:16, 11/01/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Мать вашу, вот все всегда, понимаешь, в курсе, что я видел, а что нет. Я, если что, с энтерпрайзом не первый год работаю. Вот там жаба на месте - монстр, но стабильный, дубовый и предсказуемый. А вот приличных десктопных приложений на JVM я не видел ни разу, это да.

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

     
     
  • 5.75, Аноним (-), 13:26, 11/01/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Ок
     
  • 5.79, Andrey Mitrofanov (?), 17:53, 11/01/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > что нет. Я, если что, с энтерпрайзом не первый год работаю.
    > Вот там жаба на месте - монстр, но стабильный, дубовый и
    > предсказуемый. А вот приличных десктопных приложений на JVM я не видел
    > ни разу, это да.

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

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

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

     
     
  • 6.82, Crazy Alex (ok), 19:56, 11/01/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    А что раздражаться? Десктоп и сервер - это разные условия. Как по надёжности железа, так и по режиму. Норма для сервера - одно приложение, долго крутящееся и потребляющее более-менее одно и то же количество ресурсов. Здесь разные JIT могут хорошо себя показать и можно приложить усилия, чтобы оттюнить всё под конкретную задачу, и делает это квалиифицированный персонал. А на десктопе, когда постоянно что-то запускается, гасится, хаотически меняется нагрузка - и впридачу нормально следить за всем этим часто некому. Понятно, что для разных условий решения тоже разные.

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

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

     
  • 5.98, виндотролль (ok), 22:55, 11/01/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > В браузере завязываться на VM, допускающую довольно ограниченный
    > набор подходов  к написанию кода, глупо. Не дать возможность удобного
    > портирования огромного мешка кода, уже существующего на различных языках - глупо
    > вдвойне.

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

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

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

     
     
  • 6.103, Crazy Alex (ok), 17:13, 12/01/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Я имел в виду, что конкретно JVM - ограничивает, так как её байткод жестко завязан именно на джавовскую объектную модель. Там опкоды вида "вызвать метод интерфейса" и тому подобное.

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

     
     
  • 7.105, виндотролль (ok), 18:08, 12/01/2016 [^] [^^] [^^^] [ответить]  
  • +/
    А, если речь о JVM, то понятно. Спасибо.
     

  • 1.66, anonymous (??), 01:26, 11/01/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Сколько можно переизобретать active script?
     
     
  • 2.101, Аноним (-), 10:43, 12/01/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > Сколько можно переизобретать active script?

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

     

  • 1.99, Онаний Онаниевич (?), 23:50, 11/01/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Уже сейчас народ пишет на других языках (TypeScript, ClojureScript, CoffeeScript, свежие версии EcmaScript) и компилирует в JavaScript. Думаю (и, наверно, надеюсь), что всё идёт к тому, что JavaScript вообще перестанет быть чем-то особенно "родным" для браузера и присоединится на общих правах к этому списку, а компилить все сразу будут в байткод.
     
     
  • 2.100, Аноним (-), 10:42, 12/01/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Лишь бы на JS не писать. Неосиляторы.
     
  • 2.102, Аноним (-), 16:12, 12/01/2016 [^] [^^] [^^^] [ответить]  
  • +/
    даешь 100500 языков для написания менюшек!
     
     
  • 3.104, Crazy Alex (ok), 17:33, 12/01/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Для менюшек-то и джаваскрипта хватает. Только сейчас в браузере отнюдь не только менюшки...
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру