WebAssembly, возможно, является самой захватывающей разработкой в любой области программирования на данный момент, и она только что достигла важной вехи — консенсуса.
WebAssembly (WASM)-это низкоуровневый промежуточный язык, который может обрабатываться движком JavaScript наряду с JavaScript. Преимущество WASM заключается в том, что это гораздо более низкоуровневое представление программы, чем эквивалентный JavaScript. Это позволяет движку запускать код намного быстрее, чем более сложный и выразительный JavaScript. Ограниченный диапазон выражений, который допускает WASM, вероятно, означает, что вы не собираетесь писать непосредственно в него. Вместо этого идея заключается в том, что компилятор будет создавать WASM из других языков.
WASM неуклонно прогрессирует, но на этой неделе «заинтересованные стороны в веб-сборке» согласились, что пришло время завершить этап предварительного просмотра браузера и объявить API WASM и двоичный формат завершенными для первоначальной реализации. Это означает, что теперь мы можем перейти к браузерам с поддержкой WASM по умолчанию.
Члены CG WebAssembly, представляющие четыре браузера, Chrome, Edge, Firefox и WebKit, пришли к единому мнению о том, что разработка исходного (MVP [1]) API веб-сборки и двоичного формата завершена до такой степени, что дальнейшая работа по проектированию невозможна без опыта реализации и значительного использования. Это означает конец предварительного просмотра браузера и сигнализирует о том, что браузеры могут начать доставку WebAssembly по умолчанию. С этого момента будущие функции будут разработаны для обеспечения обратной совместимости.
Это не означает, что все сделано и вытерто, так как еще много работы осталось незавершенным. В настоящее время у нас есть базовая цепочка инструментов в виде компилятора Emscripten. Это означает, что вы можете программировать на C/C++, что не является самым широким выбором в мире. В представлении также много пропусков — нет собственных строк, нет обработки исключений и так Далее. Эти вещи можно эмулировать в базовом WASM, но результирующий код имеет тенденцию быть медленным.
Следующим шагом является формирование рабочей группы W3C для завершения формальной спецификации. Сообщество также определилось с логотипом WASM:
Симпатичная особенность логотипа заключается в том, что выемка в верхней части позволяет ему соединяться с логотипом JavaScript:
Это подводит нас к ключевому вопросу — является ли WASM убийцей JavaScript?
Сторонники WASM на ранней стадии собираются использовать его из-за преимуществ скорости, которые он предлагает, и его способности переносить существующие программы в Интернет, а не как отказ от JavaScript. Однако по мере того, как мы будем двигаться дальше, должна быть возможность писать на любом языке, который вам нравится, компилировать его в WASM и запускать в любом браузере. Это воспринимается многими как будущий мир, в котором JavaScript больше не управляет Интернетом.
Это вероятно?
Существует много инвестиций в JavaScript, и WASM предназначен для работы на том же движке, который его запускает, поэтому он не будет в невыгодном положении из-за принятия WASM. На данный момент WASM все еще нуждается в JavaScript для таких вещей, как взаимодействие с DOM, и это делает его партнерством. Если будущее без JavaScripts станет реальностью, то WASM должен быть значительно расширен, и этого может не произойти, если взаимодействие с JavaScript является более дешевым вариантом.
Это действительно может оказаться партнерством, а не поглощением.
Ян Эллиот является автором недавно опубликованного Just jQuery: The Core UI (I/O Press)