¿Qué es el ensamblaje web?

Aquí hay algunas buenas respuestas. Y se reduce a eso:

Por el momento, la API del navegador solo puede programarse mediante el lenguaje de script JavaScript. Ese lenguaje tiene algunas desventajas desagradables que dificultan la optimización y cuesta mucha memoria.

La idea era presentar una máquina virtual desde la API del navegador que está ejecutando algún código de bytes, como también lo hace Java / JavaVM, solo que no es Java.

Este lenguaje generalmente no se programa a mano, pero usted compila el código en cualquier idioma que desee que admita la salida de código de bytes de WebAsm. Como LLVM hace esto ya con algunos idiomas.

Esto significa que tenemos un lenguaje compilado de tipo estático que se ejecuta en su página web promedio, lo que acorta el código y optimiza el tiempo de ejecución. Usted es independiente del idioma y no necesita aprender este lenguaje especial superfluo JS, que no es un gran diseño en absoluto.

Hay algunas demostraciones que se ejecutan en Chrome y Chromium y también las probé en mi Linux. Es lo suficientemente rápido para los juegos, por lo que el juego web tendrá un renacimiento con esto, pero también habrá posibilidades completamente nuevas abiertas.

Todavía hay cierta preocupación de mi parte sobre la seguridad, para ser honesto. Soy un gran defensor de WebAsm, pero no estoy seguro si no heredan todos los problemas de seguridad que están disponibles en Java en este paso. En general, es la misma idea, solo eludiendo el propio Java.

Y, por supuesto, tiene al menos el mismo potencial de velocidad. Java es un lenguaje de script rápido, o un script bastardo rápido, diría, que permite compilar en código de bytes, pero tiene mucho que hablar en contra. WebAsm es mucho más pequeño que eso y creo que esa es una de las buenas posibilidades de lograr cierto control de daños mediante un diseño seguro.

Veo hacia adelante con grandes expectativas, para ser honesto y espero que venga WebAsm. Me permitirá escribir algo en C y ponerlo en una interfaz web. O simplemente para portar algunos juegos que ya están ahí para el navegador. Totalmente posible, totalmente genial.

¡La reutilización del código sería genial!

Cómo: construir su primera cosa con WebAssembly

Demostración: Unity WebGL Player | AngryBots

WebAssembly es una nueva forma de funcionamiento de los navegadores. JavaScript es lo único que puede ejecutar en el navegador por ahora. Significa que ningún otro idioma puede ejecutarse dentro del navegador. Todo lo que tienes que hacer es convertir esos idiomas a JavaScript. Por ejemplo, puede escribir en Scala y luego convertir su código con ScalaJS a JavaScript. WASM lo va a cambiar. WebAssembly está más cerca del código de máquina que sus predecesores en este campo, por ejemplo, asm.js. Es un archivo binario con su propio formato, en el que puede reformatear cualquier lenguaje de programación y ejecutarlo en el navegador. Por lo tanto, ofrece la posibilidad de escribir código en idiomas de back-end y ejecutarlos en el navegador.

Para obtener más información, lea este artículo: Una primera mirada a WebAssembly: Gainer que convertirá los navegadores en levantadores de potencia.

Respuesta corta: es un código de bytes que puede ejecutarse en los navegadores. Muchos lenguajes, incluido C ++, se pueden compilar en el ensamblaje web.

Respuesta larga: una página web a menudo viene con fragmentos de código en javascript. Los navegadores tienen que leer el Javascript, analizarlo, darle sentido e interpretarlo o compilarlo y ejecutarlo.

Hay varios ineficientes en este proceso. Analizar un lenguaje basado en texto como Javascript es excelente para los humanos pero lento para la computadora. Javascript se escribe dinámicamente, lo que dificulta la optimización para obtener un buen código de máquina. Cada motor Javascript es relativamente lento en comparación con algo como Java o C ++. Esto no es un problema si estás leyendo tu correo electrónico, pero es un factor decisivo si quieres hacer juegos. Además, el tamaño del documento es innecesariamente grande, lo que hace que la descarga de la página sea más lenta.

Ok, entonces ¿por qué no simplemente entregar lenguaje ensamblador? Bueno, ha sido probado. ActiveX hizo exactamente eso. Fue una pesadilla de seguridad y también significa que la página solo se ejecutará en una plataforma. Pero bueno, ¡fue rápido!

Otro problema es que Javascript es solo un lenguaje mal diseñado que resultó de lanzarlo al mercado. Solo los lenguajes de php o de broma como brainfuck pueden competir en el espacio de “mal diseño”.

Entonces, los proveedores del navegador se unieron para solucionar estos problemas de una vez por todas. Comenzaron a diseñar conjuntamente una solución que llamaron ensamblaje web. Trabajaron entre sí para garantizar un amplio apoyo y éxito del nuevo estándar.

El resultado es un nuevo estándar. Se acuerdan el formato de archivo y los códigos de bytes. El ensamblaje web es lo suficientemente potente como para admitir C ++. Está diseñado para ser muy rápido de analizar y compilar eficientemente en código nativo. Está estáticamente escrito, lo que ayuda a los navegadores a generar código optimizado. Se ejecuta en el sandbox de Javascript por seguridad. Es muy compacto, lo que minimiza los tiempos de descarga. Es el Santo Grial para los jugadores que quieren jugar en sus navegadores.

¿Qué es WebAssembly?

WebAssembly pretende ser el lenguaje estándar de bajo nivel de la Web.

¿Y qué?

Hoy en día, muchos * idiomas utilizan JavaScript como objetivo de compilación, como si fuera el lenguaje de bajo nivel de la Web. Podría decirse que es la plataforma de software más ubicua del mundo.

El problema es que JavaScript tiene muchas peculiaridades heredadas que dificultan la eficiencia. Se han propuesto múltiples soluciones a ese problema.

Primero estaba asm.js, que es un subconjunto de JavaScript que carece de la mayoría de los bits extravagantes. Como tal, puede hacerse razonablemente eficiente con el soporte de tiempo de ejecución adecuado. Para un lenguaje que se supone que es de bajo nivel y delgado, todavía tiene una gran cantidad de rudo.

El siguiente paso es WebAssembly, que aspira a ser un mejor lenguaje de bajo nivel para la Web que JavaScript y asm.js, aún no es una tarea muy difícil. WebAssembly tendrá una máquina virtual de recolección de basura y un código de máquina binario real.

* Lenguajes notables que tienen JavaScript como su objetivo principal

  • ClojureScript
  • CoffeeScript
  • Olmo
  • Haxe
  • LispyScript
  • PureScript
  • Roy
  • Mecanografiado

Lenguajes notables que pueden orientar JavaScript entre otros

  • Ir a través de GopherJS
  • Haskell a través de ghcjs
  • Scala a través de Scala.js

Es una forma de permitir que los programadores usen cualquier lenguaje de código fuente en el navegador.

Se puede escribir un compilador para cualquier idioma que desee y compilarlo en “Web Assembly”. Este es un conjunto de instrucciones de máquina virtual que se ejecuta dentro del navegador.

Actualmente, debe usar JavaScript para hacer esto. Pero eso es solo por pura desgracia, realmente. Ciertamente no hay ninguna ventaja técnica para hacerlo.

Hacer que los navegadores admitan este nuevo conjunto de instrucciones llamado “Web Assembly” nos permitiría escribir el código del navegador en cualquier idioma. De una manera más sensata que la compilación cruzada a JavaScript, que es nuestra única alternativa actual.

Web Assembly (o WASM) es un formato de lenguaje de programación (Abstract Syntax Tree) y un entorno de ejecución (máquina de pila portátil) que puede ser un objetivo de compilación para otros lenguajes de programación. Se puede incrustar en el navegador web para proporcionar una forma común de admitir otros idiomas como alternativa a JavaScript (un objetivo loable, si alguna vez hubo uno). Estoy seguro de que Web Assembly también tiene otros objetivos, pero este es el mejor, en mi opinión.

Pueden describir mejor

WebAssembly

No copiaré / pegaré una página Wiki completa – lea WebAssembly – Wikipedia.

Algo que deseo se integró en todos los navegadores para reemplazar Javascript.