Если вы когда-либо начинали урок компьютерного программирования и языков программирования, вы, вероятно, слышали термины «языки высокого уровня» и «языки низкого уровня». И вам, скорее всего, говорили, что языки высокого уровня читаются, интерпретируются и имеют больше смысла на человеческом уровне мышления, в то время как языки низкого уровня ближе к обработке на уровне компьютера. По сути, чтобы подвести итог всему этому, языки более низкого уровня больше напоминают инструкции, которые считывают и выполняют настоящие компьютерные чипы, в то время как языки более высокого уровня содержат больше абстракций для использования человеком.
Тогда имеет смысл, что, хотя языки более высокого уровня более эффективны для человеческого использования, такого как разработка и обслуживание, языки более низкого уровня будут намного быстрее для использования на компьютере, например, для чтения и выполнения инструкций. Таким образом, красота и привлекательность скомпилированного кода, особенно зрелых комплаентных языков, которые усовершенствовали методы компиляции для создания быстрого и эффективного машинного кода из их высокоуровневой формы.
Однако в Интернете, где преобладают браузеры, использующие JavaScript, доступ к этим преимуществам производительности является проблемой. И из этой проблемы в итоге выросла WebAssembly.
Как вы, возможно, уже догадались, WebAssembly — это низкоуровневый язык, похожий на ассемблер, который может запускаться браузерами в Интернете. Он реализован в двоичном формате, который может быть легко интерпретирован машинами, но он был разработан для работы с javascript, де-факто языком Интернета, и вместе с ним.
WebAssembly предоставляет несколько замечательных функций, которые делают веб-разработку более мощной и потрясающей, чем когда-либо прежде:
- Он предоставляет целевой формат машинного уровня для языков с моделями памяти более низкого уровня, такими как C/C++, для компиляции.
- Он предоставляет язык для непосредственного создания программ веб-сборки.
- Хотя он не может напрямую обращаться к DOM и другим веб-функциям, он предоставляет простой в использовании Javascript API, так что программы на любом языке вызывают и используют другой.
Это означает, что, во-первых, программисты могут создавать очень быстрые и мощные крупномасштабные кодовые базы со скоростью, сравнимой с теми, которые выполняются непосредственно на машине. Они также могут портировать программы C/C++ на javascript и веб-браузеры. И в будущем веб-сборка нацелена на то, чтобы иметь возможность компилировать больше языков в свой формат .wasm, начиная с таких, как Java.
Самое приятное то, что он хорошо поддерживается браузерами и хорошо задокументирован Mozilla, так что вы можете проверить его и сразу начать использовать!