WebAssembly – ¡La próxima GRAN cosa!

Muy pronto, JavaScript dejaría de ser la lingua franca de la web. Algunos de los grandes jugadores como Google, Microsoft, Mozilla, Apple, etc. junto con W3C se han unido para crear un nuevo estándar llamado WebAssembly. Lo bueno, será compatible con todos los navegadores. 

Entonces, ¿qué significa WebAssembly
Oficialmente, WebAssembly o wasm es un nuevo formato portátil, eficiente en tamaño y tiempo de carga, adecuado para la compilación en la web. Es un nuevo formato binario para la web . Escribe aplicaciones para la Web y lenguajes distintos a JavaScript. Incluye un lenguaje de bajo nivel similar a un ensamblado que puede representarse con texto y luego convertirse a un formato binario que se ejecuta en todos los navegadores modernos; sin embargo, no escribirá este código directamente, sino que lo usará como objetivo de compilación para programas escritos en otros idiomas.

¿Por qué se necesita WebAssembly? 
JavaScript es robusto y útil. Como cualquier otro idioma, no es adecuado para resolver todos los problemas. 

Durante muchos años, muchas empresas trataron de corregir la deficiencia de JavaScript a su manera al extenderlo, como asm.js (Mozilla), TypeScript (Microsoft), NACL (Google). Ahora, estos proyectos y empresas se han unido junto con W3C para brindar una solución llamada WebAssembly. Con Emscripten, otros lenguajes se pueden compilar o transpirar a JavaScript, pero aún así, JavaScript es el objetivo principal de estos, no de VM. Con WebAssembly, se elimina la necesidad de transpilar a JavaScript, pero desciende al nivel bajo del sistema equivalente al código de bytes.

Imagine un mundo en el que pueda crear software con C++, Rust, Python, Go o incluso COBOL y entregar ese software al usuario final en un navegador web sin ninguna instalación y con un rendimiento casi nativo. Ese mundo se hizo realidad en diciembre de 2019. cuando el ensamblaje web se convirtió en un estándar oficial del W3C.

Puede crear un juego con Unity y C# y luego compilarlo en el ensamblado web donde se puede entregar en el navegador. Ahora, es importante tener en cuenta que no está destinado a reemplazar JavaScript, de hecho, los dos funcionan bien juntos, Figma, por ejemplo, usa React.js para su interfaz de usuario externa que en el interior tiene una herramienta de diseño C++ de alto rendimiento que se siente tan rápido como el software nativo.

El desarrollo web es en sí mismo una parte desafiante en la que las cosas evolucionan rápidamente y WebAssembly será una nueva incorporación. Con esto, es posible que veamos la web utilizada en muchas aplicaciones nuevas, lo que no es posible en el escenario actual. WebAssembly abrirá más puertas al liberarse de las ataduras de la web actual. 
 

WebAssembly es muy flexible de usar y admite lenguajes como: .Net, AssemblyScript, Astro, Brainfuck, C, C#, C++, Clean, Co, COBOL, D, Eel, Elixir, F#, Faust, Forest, Forth, Go, Grain, Haskell, Java, JavaScript, Julia, Idris, Kotlin/Native, Kou, Lobster, Lua, Lys, Never, Nim, Ocaml, Perl, PHP, Plorth, Poetry, Python, Prolog, Ruby, Rust, Scheme, Scopes, Swift, TypeScript, Wah, Walt, Wam y Zig.

Beneficios de WebAssembly sobre JavaScript – 
 

  1. Escriba código crítico para el rendimiento usando otros lenguajes como c/c++. 
     
  2. WebAssembly se puede decodificar de forma nativa mucho más rápido de lo que se puede analizar JavaScript. 
     
  3. Se carga significativamente más rápido en dispositivos móviles. 
     
  4. Compartir código entre aplicaciones. 
     

¿Es este el fin de JavaScript?  
¡UN GRAN NO! JavaScript tiene suficiente inercia para impulsar la web durante las próximas décadas. Si bien WebAssembly permitirá compilar más idiomas en la web, JavaScript llegó para quedarse. WebAssembly impulsará JavaScript al complementarlo, las aplicaciones escritas en WebAssembly también podrán integrarse con JavaScript. El hecho de que JavaScript esté dando suficiente competencia a los lenguajes back-end establecidos con Node.js demuestra que JavaScript sigue siendo fuerte y continuará. Mientras tanto, lo mejor es quedarse con JavaScript y conocer sus nuevas funciones. JavaScript también tiene nuevas funciones interesantes en desarrollo, como pthreads, simd. 

WebAssembly aún está en pañales. Solo el tiempo podría decirnos cómo evolucionará. Durante algún tiempo, wasm y asm.js seguirán siendo equivalentes para admitir el relleno múltiple de wasm a través de JS. Después de eso, wasm y JS pueden divergir. Traer un nuevo estándar a la web será tan difícil como emocionante. Pero la ventaja es que ahora tenemos un estándar abierto, independiente del proveedor, multinavegador, basado en la experiencia, compromiso y participación en la importante implementación de código abierto en la web. 

Referencia:  
Mi publicación de blog
 

Publicación traducida automáticamente

Artículo escrito por Deepak Singh 16 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *