W3C dá a WebAssembly o estado de estándar recomendado

Consorcio W3C anunciou sobre dar á tecnoloxía WebAssembly o estado de estándar recomendado. WebAssembly ofrece código intermedio universal, independente do navegador e de baixo nivel para executar aplicacións compiladas desde varias linguaxes de programación. WebAssembly sitúase como unha tecnoloxía portátil máis prometedora e entre navegadores para crear aplicacións web de alto rendemento. WebAssembly pódese usar para tarefas de alto rendemento, como codificación de vídeo, procesamento de audio, gráficos e manipulación 3D, desenvolvemento de xogos, operacións criptográficas, cálculos matemáticos e creación de implementacións portátiles de linguaxes de programación.

WebAssembly é similar en moitos aspectos a Asm.js, pero difire en que é un formato binario que non está vinculado a JavaScript. WebAssembly non require un colector de lixo porque utiliza unha xestión explícita de memoria. Usando JIT para WebAssembly, pode alcanzar niveis de rendemento próximos ao código nativo. Entre os principais obxectivos de WebAssembly está garantir a portabilidade, o comportamento previsible e a execución de código idéntico en diferentes plataformas. Ultimamente tamén ten WebAssembly avanzando como plataforma universal para a execución segura de código en calquera infraestrutura, sistema operativo e dispositivo, sen limitarse aos navegadores.

O W3C normalizou tres especificacións relacionadas con WebAssembly:

  • Núcleo de montaxe web — describe unha máquina virtual de baixo nivel para executar código intermedio de WebAssembly. Os recursos relacionados con WebAssembly veñen nun formato ".wasm", semellante a un ficheiro ".class" de Java, que contén datos estáticos e segmentos de código para traballar con eses datos.
  • API web de WebAssembly — define unha interface de programación baseada no mecanismo Promise para solicitar e executar recursos “.wasm”. O formato de recurso WebAssembly está optimizado para comezar a execución sen esperar a que o ficheiro estea completamente cargado, o que mellora a capacidade de resposta das aplicacións web.
  • Interface JavaScript de WebAssembly — Ofrece unha API para a integración con JavaScript. Permítelle obter valores e pasar parámetros ás funcións de WebAssembly. A execución de WebAssembly segue o modelo de seguridade de JavaScript e toda a interacción co sistema principal realízase do mesmo xeito que a execución de código JavaScript.

No futuro, pensamos preparar especificacións para funcións de WebAssembly como:

  • Multithreading con memoria compartida e acceso á memoria atómica;
  • Operacións vectoriais baseadas en SIMD, permitindo a paralelización da execución do bucle;
  • Tipos de referencia para facer referencia directamente a obxectos desde o código WebAssembly;
  • Capacidade de chamar funcións sen gastar espazo adicional na pila;
  • Integración con módulos ECMAScript: a capacidade de cargar código WebAssembly desde JavaScript como módulos que cumpran coa especificación ECMAScript 6;
  • Modo de funcionamento do colector de lixo;
  • Interfaces de depuración;
  • WASI (WebAssembly System Interface) - API para interacción directa co sistema operativo (API POSIX para traballar con ficheiros, sockets, etc.).

    Fonte: opennet.ru

Engadir un comentario