Краткая история расширения браузера…

В конце 90-х Интернет был недостаточно хорош. Апплеты Java были великолепны, поскольку они позволяли приложениям, которые обычно работали бы только как настольное приложение, работать на веб-странице. ActiveX в то время также был отличным сервисом, предоставляя возможности HTML, CSS и JavaScript, о которых можно было только мечтать.

Flash всегда предоставлял те же возможности, что и настольные приложения, а также старый добрый Silverlight. Из всех этих технологий Flash по-прежнему остается довольно заметным. Например, я не могу смотреть фильм на своем ноутбуке на рейсе United без установленного Adobe Flash Player.

Интернет всегда хотел предоставить больше, чем способны HTML, CSS, JavaScript и другие технологии HTML5. По мере того, как эти технологии продолжают развиваться и совершенствоваться, все основные производители браузеров предпринимают еще одну попытку. Эта новая технология, которая появится в ближайшем к вам веб-браузере, называется WebAssembly.

Добро пожаловать в Интернет, WebAssembly!

WebAssembly (WASM) позволит приложениям, написанным для операционной системы, а не для веб-браузера, работать в веб-браузере. WASM имеет свой собственный язык, который, как мне сказали, очень похож на ассемблерный код или Lisp. Но кто хочет писать ассемблерный код? Это было бы очень высоким барьером для внедрения этой радикальной и многообещающей технологии. Вот почему несколько языков могут компилироваться в WASM, включая C, C ++, Rust и C #. Некоторые из них имеют официальную поддержку дальше, чем другие. Rust в настоящее время находится в режиме предварительного просмотра, и вы должны добавить в компилятор сумасшедший флаг, чтобы это произошло. Многие другие языки находятся в процессе включения поддержки для сборки WASM. Прямо сейчас трудно не найти язык, который не имеет никакого плана для компиляции в WASM.

Будет ли хаос в Интернете? Да!

В нынешнем ландшафте Интернета большинство приложений создаются с использованием современных фреймворков JavaScript и включают современные функции, которые предоставляет прогрессивное веб-приложение (PWA). Как только WASM станет массовым благодаря широкой поддержке языков программирования, разработчики теперь имеют возможность писать свои веб-приложения на языке по своему выбору. Хотите создать простой сайт с контактами и информацией о странице, но умеете программировать только на Swift? Не стоит беспокоиться! Теперь вы можете писать приложения для Интернета!

Подрыв мобильной связи?

PWA уже пытаются разрушить традиционное пространство мобильных приложений. WASM принесет еще один уровень разрушения нативным мобильным приложениям. Как только мобильные браузеры станут совместимы с WASM, это станет совершенно новой игрой, в которой приложения WASM будут конкурировать с собственными приложениями. На мой взгляд, это самое интересное место, где WASM будет разрушительным. Если мобильным пользователям больше не нужно полагаться на Google Play или iOS App Store, будет интересно посмотреть, какой будет реакция со стороны Google и Apple.

А как насчет JavaScript?

Язык JavaScript получил множество новых функций, добавленных к нему за последние несколько лет. Это самый популярный язык на GitHub и язык Интернета. Когда Интернет откроется для WASM, будет меньше написанного кода JavaScript в процентах от языков, на которых работают веб-сайты. WASM обеспечивает равные условия для любого языка, который может компилироваться (транспилироваться?) В WASM. Некоторые языки, которые транслируются в JavaScript для работы в сети, такие как Elm и Typescript, вместо этого будут иметь переключатель для компиляции в WASM. Это означает меньше JavaScript. Извините, JavaScript, у вас все получилось. Я знаю, меня волнует только то, что я пишу о возможности использования меньшего количества JavaScript 😢

Как это повлияет на Node.js?

Как большой поклонник Node.js, я боюсь, что WASM негативно влияет на Node.js. Одна из вещей, которые мне нравятся в Node.js, - это то, что я могу писать свой внешний код, который находится на Typescript, на том же языке, что и мой внутренний код. Это одна из выгодных особенностей Node.js. Поскольку внешний код написан на Rust, Go, C #, Dart, Python и на всем остальном под солнцем, будет гораздо интереснее использовать те же навыки языка программирования, которые установлены на сервере. Я не удивлюсь, если в ближайшем будущем появится возможность запустить WASM на сервере.

Я напуган. Что я должен делать?

Мы все боимся того, что случится с Интернетом. Вы можете либо укрыться и посмотреть, что происходит, либо принять эту технологию и узнать о ней как можно больше. Отличное место для начала - webassembly.org. Просмотрите технологию, а затем вы сможете составить собственное обоснованное мнение о ней. Никто точно не знает, чего ожидать от WASM, но большинство согласны с тем, что будет хаос. Принеси это .. Хаос