Ir al contenido principal

Entradas

AssemblyScript: de Typescript a WebAssembly

  AssemblyScript es un lenguaje que permite escribir código en TypeScript/JavaScript y compilarlo a WebAssembly . Su principal ventaja es la familiaridad para desarrolladores web, mientras que sus desventajas incluyen menor rendimiento comparado con Rust o C++ y un ecosistema aún limitado. Es ideal para proyectos que requieren optimización moderada sin salir del mundo JavaScript. Basado en TypeScript que compila a WebAssembly . Diseñado para que desarrolladores web puedan aprovechar Wasm sin aprender C, C++ o Rust.  Usa un subconjunto de TypeScript , lo que facilita la transición para quienes ya trabajan con JavaScript. Ventajas de AssemblyScript: Familiaridad: Los desarrolladores web que conocen TypeScript pueden empezar rápidamente.  Integración sencilla: Se comunica bien con JavaScript, ideal para proyectos web híbridos.  Curva de aprendizaje baja: No requiere aprender un lenguaje nuevo como Rust.  Rapidez relativa:...
Entradas recientes

TeaVM: convertir código Java a WebAssembly

TeaVM es un compilador ahead-of-time que transforma bytecode de Java en JavaScript o WebAssembly, permitiendo ejecutar aplicaciones Java directamente en el navegador sin necesidad de reescribirlas en JavaScript. Es útil para quienes quieren aprovechar su código Java (o incluso Kotlin y Scala) en entornos web modernos. Es similar a lo que se hacía con GWT (Google Web Toolkit). Convertir tu código Java a código Javascript. En este blog ya hemos hablado de WebAssembly: WebAssembly con Rust. WebAssembly con Python. WebAssembly con C/C++ Creando un proyecto Java (y TeaVM) 1. Creamos nuestro proyecto Java con Maven: $ mvn - DarchetypeCatalog = local - DarchetypeGroupId = org . teavm - DarchetypeArtifactId = teavm - maven - webapp - DarchetypeVersion = 0.13.1 archetype:generate $ cd demo - teavm 2. Una vez ubicados en el directorio creado modificaremos el programa principal `` MainClass.java ``. package com.inforhomex.web ; impor...

WebAssembly con Rust

  WebAssembly es un lenguaje de bajo nivel, similar a ensamblador, diseñado para ser rápido de cargar y ejecutar en navegadores modernos. Su objetivo es permitir que aplicaciones escritas en distintos lenguajes se ejecuten en la web con velocidad casi nativa . Los formatos que soporta son: .wasm : un formato binario ejecutable.  .wat : un formato formato de texto legible. Se complementa con JavaScript; permite invocar funciones WASM desde JS y viceversa. Como hemos visto en este blog: Si quieres usar WebAssembly con C/C++ tendrás que usar Emscripten .  Si quieres usar WebAssembly con Python puedes usar Pyodide . También puedes optar por usar un lenguaje como Grain cuya compilación es directa a WASM . ¿Cuál es el objetivo de WebAssembly? El objetivo de WebAssembly es compilar código escrito en lenguajes como Rust, C o C++ (entre otros) y transformarlo en un módulo .wasm que puede ejecutarse en navegadores o en entornos como Node.js con rendimi...

Gren: un lenguaje de programación funcional

Gren es un lenguaje de programación funcional con efectos secundarios cuidadosamente gestionados y un sólido sistema de tipos estático. El lenguaje se compone de pocos conceptos con nombres legibles para humanos que se combinan bien, lo que permite lograr más con menos. Su objetivo es poder escribir código que se ejecute tanto en el navegador como en el backend . Algunas de sus características más notables son: Compila a JS, con enfoque a WASM .  Es muy portable.  Tiene soporte incorporado para Node.  Tiene evaluación estricta y soporte de source-map .  Fácil  depuración y el perfilado utilizando las mismas herramientas que usarías para Node o navegadores. Para instalarlo tenemos dos opciones. Con Npm: $ npm install - g gren - lang Con Nix : $ nix - shell - p gren Un vistazo a Gren Gren es bastante similar al lenguaje de programación Elm.  Demos un pequeño vistazo al lenguaje. Tipos de datos en Gren . ...

Webassembly: Hola, mundo en Python (con Pyodide)

Continuamos, después de un tiempo considerable, a hablar de Webassembly . Esta vez como lenguaje base usaremos Python. Como herramienta extra usaremos Pyodide , una distribución de CPython compilada a WebAssembly (WASM) que permite ejecutar código Python directamente en el navegador web o en Node.js. No es necesaria su instalación, aunque existe la posibilidad de hacerlo. Pyodide nos permite: Ejecutar Python en el navegador sin instalación.  Usar librerías científicas y de análisis de datos.  Integrar Python con JavaScript y el DOM.  Crear notebooks y aplicaciones web interactivas. Programando en Python (y Pyodide) Hagamos algunos ejercicios para comprobar el funcionamiento de esta herramienta. Ejemplo 1. Escribir el clásico "Hola, mundo" en Python y Pyodide . holamundo.html <!DOCTYPE html> < html > < head > < meta charset = "utf-8" > < title > Hola Mundo con Pyodide </ title > < s...