24 puntos por GN⁺ 2023-11-17 | 1 comentarios | Compartir por WhatsApp

Introducción a WebAssembly (Wasm)

  • WebAssembly (Wasm) es un bytecode de bajo nivel y de propósito general que se ejecuta en la web
  • Es un objetivo de compilación para varios lenguajes, como Rust, AssemblyScript (similar a Typescript), Emscripten (C/C++) y TinyGo (Go)
  • Actualmente está disponible en todos los navegadores principales y cuenta con runtimes para ejecutarse en servidores o interactuar con el sistema usando WASI
  • Wasm ofrece un formato binario compacto, además de rendimiento predecible y portabilidad para ejecutarse junto con JavaScript y otros lenguajes host

¿Qué es 'Wasm By Example'?

  • 'Wasm By Example' ofrece una introducción concisa y práctica a WebAssembly usando programas de ejemplo con snippets de código y comentarios
  • Incluye ejemplos que explican conceptos básicos de WebAssembly y otros que muestran cómo usar esos conceptos para construir funciones comunes en aplicaciones más grandes

Ejemplos de conceptos clave de WebAssembly (Wasm)

  • Proporciona ejemplos que representan los principales conceptos fundamentales de WebAssembly.
  • Estos ejemplos quizá no sean la forma más conveniente o productiva de construir proyectos con WebAssembly, pero son adecuados para aprender o para desarrollar partes simples o de bajo nivel de una aplicación.
    • Hello World
    • Exports
    • WebAssembly Linear Memory
    • Importing Javascript Functions Into WebAssembly

Ejemplos aplicando los conceptos

  • Amplía los ejemplos conceptuales para mostrar cómo estos ejemplos simples pueden usarse para construir funcionalidades comunes de aplicaciones más grandes
    • Reading and Writing Graphics
    • Reading and Writing Audio

Ejemplos de herramientas del ecosistema y funciones del lenguaje

  • Proporciona ejemplos que destacan herramientas, bibliotecas y funciones del lenguaje de programación elegido
    • Passing High Level Data Types with wasm-bindgen
  • Estos componentes del ecosistema pueden ayudar mucho a construir aplicaciones potentes.

Ejemplos de WebAssembly (Wasm) fuera del navegador web

  • Proporciona ejemplos que destacan WebAssembly System Interface (WASI), runtimes independientes de WebAssembly, herramientas para aplicaciones que usan WASI y casos de uso para tareas como cloud computing y dispositivos de Internet de las Cosas (IoT)
  • WebAssembly tiene características clave que lo hacen ideal para la web en el navegador, y esas mismas características también lo han convertido en una opción popular fuera del navegador
    • WASI Introduction
    • WASI Hello World

Opinión de GN⁺

Lo más importante de este texto es que WebAssembly (Wasm) es un objetivo de compilación para diversos lenguajes de programación y tiene la versatilidad de poder usarse no solo en navegadores web, sino también en servidores y distintos sistemas. 'Wasm By Example' muestra muy bien por qué esta tecnología resulta interesante y atractiva al ofrecer ejemplos prácticos que permiten a ingenieros de software principiantes entender WebAssembly con facilidad y probar aplicaciones reales. La portabilidad y el rendimiento de WebAssembly son factores importantes en el desarrollo web moderno, y este texto ofrece información útil para quienes quieran aprender esta tecnología.

1 comentarios

 
GN⁺ 2023-11-17
Opiniones en Hacker News
  • Es un caso interesante usar WASM para crear bibliotecas escritas en varios lenguajes y luego importarlas y usarlas desde otros lenguajes.
  • El conjunto de instrucciones de WASM, compatible con todos los navegadores principales, es atractivo, pero se cuestiona que incluso una demo simple de 'hello_world' genere páginas de varios megabytes.
  • Hay opiniones de que debería ofrecerse una vista general y una explicación sobre la estructura y el uso de WASM junto con ejemplos. También se menciona que los workers de Cloudflare pueden ejecutar WASM en servidores edge y que la comunidad de Swift también admite compilación a WASM.
  • Se sugiere que sería útil agregar esa categoría para ayudar a entender la sintaxis S-expr de WebAssembly.
  • Alguien escribió una guía sobre cómo hacer funcionar la depuración de WASM en VSCode, usando la nueva extensión de depuración WASM DWARF.
  • Está en desarrollo el libro 'WASM from the Ground Up', que enseña WASM creando un compilador desde cero, y se dice que hasta ahora ha sido informativo.
  • Hay quienes se preguntan si algún día WASM reemplazará a JavaScript en el navegador.
  • En Hacker News se publicó un ejemplo de una demo de Unity que corre usando WASM y WebGPU.
  • Hay alguien que está teniendo dificultades para encontrar información sobre un compilador ensamblador de WASM.
  • Se expresa sorpresa de que un ejemplo sencillo de 'add', escrito en un lenguaje que no es JavaScript usando WASM, tenga una función interactiva capaz de recibir parámetros en tiempo de ejecución.