Июн 18, 2015 - 0 Comments - Интересно -

Анонсирован WebAssembly, обеспечивающий запуск скомпилированного кода в браузерах

18.06.2015 10:49 Анонсирован WebAssembly, обеспечивающий запуск скомпилированного кода в браузерах

Бренден Айк (Brendan Eich), создатель языка JavaScript, представил проект WebAssembly, совместно развиваемый ведущими производителями браузеров под эгидой организации W3C. В рамках проекта планируется подготовить унифицированный низкоуровневый промежуточный код для выполнения в браузере приложений, скомпилированных из различных языков программирования, фокусируясь на начальном этапе в основном на языках С и С++, но не ограничиваясь ими.

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

Для генерации кода WebAssembly планируется подготовить специальный бэкенд к clang/LLVM, который сможет быть использован в том числе для генерации кода уже существующими проектами, такими как Emscripten и PNaCl. Т.е. вместо генерации JavaScript и собственного байткода, Emscripten и PNaCl смогут генерировать универсальный код WebAssembly. В настоящее время для экспериментов предлагаются рабочие прототипы кодировщика и декодировщика. Для изучения кода WebAssembly и отладки предусмотрена возможность преобразования промежуточного бинарного кода в наглядное текстовое представление.

Среди основных задач WebAssembly выделяется обеспечение переносимости между браузерами, предсказуемость поведения и идентичности выполнения кода на разных платформах. Использование WebAssembly также позволит существенно сократить размер приложений, благодаря компактному промежуточному коду, и увеличить скорость декодирования. В частности, текущий прототип WebAssembly демонстрирует в 20 раз более высокую скорость декодирования промежуточного кода по сравнению с JavaScript и генерирует на 45% более компактное представление кода по сравнению с минимизированным кодом Asm.js, сжатым при помощи gzip.

По мере развития проекта, его планируется расширить поддержкой таких возможностей, как динамическое связывание, полное управление памятью (mmap, shared memory), низкоуровневый доступ к структурам сборщика мусора, JIT-компиляция, многопроцессный режим выполнения, SIMD API, асинхронные сигналы, расширенные целочисленные операции и т.п.

WebAssembly позиционируется как совместный проект, развиваемый всеми ведущими производителями браузеров. В основную команду, которая будет развивать WebAssembly, вошли разработчики PNaCl и движка V8 из Google, представители Microsoft и Mozilla, а также разработчики Emscripten и WebKit. Внедрение WebAssembly даст возможность воплотить в жизнь создание новых продуктов, работающих в браузере, в том числе высокопроизводительных игр, систем редактирования видео/звука/изображений, P2P-систем, САПР, средств разработки и коммуникации, в том числе упоминается возможность запуска локального web-сервера в браузере и эффективная упаковка web-фреймворков.

  1. Главная ссылка к новости (https://brendaneich.com/2015/06/from-asm…)
  2. OpenNews: Релиз Firefox 22 с поддержкой Asm.js
  3. OpenNews: В Firefox 22 появится Asm.js, низкоуровневое высокопроизводительное подмножество JavaScript
  4. OpenNews: Для Firefox представлен API для задействования в web-приложениях инструкций SIMD
  5. OpenNews: Представлен Portable Native Client для запуска платформонезависимых C/C++ программ в браузере
  6. OpenNews: Выпуск web-браузера Chrome 31 с реализацией технологии Portable Native Client
Тип: Интересно / К сведению
Ключевые слова: webassembly, (найти похожие документы)
При перепечатке указание ссылки на opennet.ru обязательно
 
 
 
+/
> В масштабе безопасности ничего не должно измениться.

динамическое связывание, полное управление памятью (mmap, shared memory), низкоуровневый доступ к структурам сборщика мусора, JIT-компиляция, многопроцессный режим выполнения,
SIMD API, асинхронные сигналы, расширенные целочисленные операции и т.п.

Ню-ню.

 
 
+1 +/
Ну вот и будет эта программа возиться с такими же привилегиями как и яваскрипт интерпретатор. Пусть с масштабе этих привилегий хоть голышом под луной танцует. В худшем случае засегфолтится.
 
+12 +/
>в том числе упоминается возможность запуска локального web-сервера в браузере

Ну ладно веб-сервер, а нормальный браузер-то внутри браузера можно будет запустить? Такого, чтобы памяти много не жрал?

 
+4 +/
Новость конечно хорошая, но как бы разработчики не начали по старой памяти тянуть различные фреймворки вроде Qt или .NET. Сколько будет весить средний сайт 50Мб? Или 100Мб?
 
 
+/
Если у них= хватит мозгов сделать библиотеки с манифестами и кросс-сайтное кэширование для них — то невелика разница. Загрузится один раз, и всё. Результат может запросто оказаться компактнее и шустрее, чем возня с развесистым DOM-деревом.
 

Ваш комментарий
 

This entry passed through the Full-Text RSS service — if this is your content and you’re reading it on someone else’s site, please read the FAQ at fivefilters.org/content-only/faq.php#publishers.


Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Человек ? *