2 puntos por GN⁺ 2026-02-09 | 1 comentarios | Compartir por WhatsApp
  • Proyecto diseñado para ejecutar código Scheme en WebAssembly (navegadores con soporte de GC), e incluye un compilador de Scheme→Wasm y una cadena de herramientas Wasm completa
  • Está construido sobre GNU Guile, no tiene dependencias adicionales y cuenta con una estructura autosuficiente (toolchain self-contained)
  • En el entorno REPL de Guile es posible probar binarios de Hoot mediante el intérprete de Wasm
  • La versión más reciente es v0.7.0 y se proporcionan enlaces a archivos de lanzamiento, firmas, documentación y anuncio oficial
  • Como intento por extender el lenguaje Scheme al entorno web, muestra el potencial de expansión del ecosistema Lisp en el navegador

Resumen de Hoot

  • Hoot es un proyecto desarrollado por Spritely Institute que permite ejecutar código Scheme sobre WebAssembly (Wasm)
    • Funciona en navegadores web que admiten la función de GC (Garbage Collection)
    • Incluye un compilador que convierte código Scheme a Wasm y una cadena de herramientas completa para desarrollo relacionado con Wasm
  • Está construido sobre Guile y no tiene dependencias externas adicionales
    • La cadena de herramientas es autosuficiente e integra un intérprete de Wasm, lo que permite probar directamente binarios de Hoot desde el REPL de Guile

Distribución y desarrollo

  • La versión más reciente es v0.7.0, y se ofrecen enlaces a archivos de descarga, firmas, documentación y anuncio oficial
    • Archivo de lanzamiento: guile-hoot-0.7.0.tar.gz
    • También se proporcionan archivos de documentación y firma, junto con la página de noticias relacionada
  • La versión de desarrollo está disponible en el repositorio de Codeberg (https://codeberg.org/spritely/hoot)

Material relacionado

  • Se ofrecen varios artículos sobre creación de páginas web interactivas con Hoot y ejecución de Scheme dentro del navegador
    • “Building interactive web pages with Hoot”
    • “Scheme in the browser: A Hoot of a tale”
    • “Lisp Game Jam - ‘Wireworld’ - Hoot's low level Wasm tooling in action”
  • También puede consultarse información adicional desde la perspectiva de los desarrolladores a través del blog de Andy Wingo y un video de entrevista de System Crafters

1 comentarios

 
GN⁺ 2026-02-09
Comentarios de Hacker News
  • Es interesante ver que el desarrollo de Guile se está activando últimamente
    Aunque da un poco de pena que parezca que mucha gente de la antigua comunidad de Racket se esté pasando para allá
    Es triste cuando una comunidad se divide, y Guile todavía da la impresión de estar por detrás de Racket en rendimiento y variedad de bibliotecas

    • En mi experiencia, en realidad fue al revés. Guile arrancaba más rápido que Racket y, como la mayor parte de lo que hago está más centrado en I/O, Guile me funcionó mejor
      Los benchmarks dicen otra cosa, pero parece algo que habría que comprobar directamente
    • Guile actualmente tiene una arquitectura de VM de bytecode + JIT, así que es más lento que Chez/Racket, pero aun así es bastante rápido
      Lo suficiente como para correr juegos a 60fps, y el GC ocurre con poca frecuencia
      El ecosistema de bibliotecas también ha mejorado mucho frente a antes
    • Recuerdo haber visto hace tiempo una entrada de blog sobre un problema de “Missing Stair” en la comunidad de Racket
      (wiki de Missing Stair)
      Después de ese incidente, la fragmentación de la comunidad parece haber sido un resultado inevitable
    • Me alegra que Guile esté recibiendo atención, pero no hay que subestimar a Racket
      • El trabajo de WASM en Guile es prometedor, y del lado de Racket Jens Axel Soegaard también está desarrollando un compilador relacionado
      • El rehosting basado en Chez de Racket parece una buena decisión, y da la impresión de que su estructura interna también se volvió más manejable que la de Guile
      • Racket sigue destacando en metaprogramación y en su sistema de módulos
        Por ejemplo, con Overeasy se pueden hacer pruebas, y con McFly se puede escribir documentación en línea
      • La familia Scheme sigue siendo, en gran medida, un lenguaje para gente que todavía puede darse el lujo de no preocuparse por las “palabras clave para conseguir empleo”
        También influye que el ambiente de la industria se haya puesto más difícil últimamente después de la generación de código con IA y el colapso de la inversión de VC
    • Me pregunto si alguna vez se ha benchmarkeado Hoot, otra implementación de Guile (por ejemplo, ejecutándose sobre V8)
  • El proyecto en sí está genial, pero me deja pensando que ojalá hubieran usado otro lenguaje en vez de Guile

    • Aun así, Guile es el lenguaje de Guix, así que tiene un ecosistema bastante rico
      A través de Guix se pueden hacer fácilmente builds reproducibles
      Eso sí, siguen quedando problemas relacionados con el debugger, el expansor de macros y las bibliotecas estándar de R6RS
      El soporte multicore de Racket antes era pesado, pero ahora parece haber mejorado frente a los fibers/futures de Guile
    • Si lo que se quiere decir es usar otra implementación de Scheme distinta de Guile, entonces con la sintaxis estándar de R6RS/R7RS la portabilidad no debería ser difícil
  • Qué bueno ver que vuelvan a aparecer intentos como este de compilar a WASM
    Antes parecía que el entusiasmo se había apagado, pero si aumentan este tipo de lenguajes, mejor, porque así se puede evitar JavaScript

  • Este proyecto me hizo pensar en la futura dirección de los lenguajes de programación
    Si la IA se convierte en quien escribe la mayor parte del código, probablemente los lenguajes cambien para priorizar la claridad y la reducción de errores
    Serán menos divertidos para los humanos, pero producirán código más fácil de corregir
    En ese contexto, lenguajes como Rust probablemente se mantendrán en los puestos altos
    Lo que me pregunto es si un lenguaje como Hoot podrá encontrar un lugar incluso en ámbitos especializados, o si se quedará como un lenguaje de hobby

    • Yo también me he preguntado cómo sería un lenguaje centrado en IA, y creo que probablemente algo de la familia Scheme/Lisp se acerque más a esa dirección
  • ¡Está realmente genial! Me pregunto si también podría funcionar en Cloudflare Workers

  • Ojalá Guile tuviera un mejor soporte para Windows

  • repl.wasm pesa 1.6MiB, así que parece un poco grande. Me pregunto cuánto pesará el ejemplo de todo

    • Este REPL no es el binario más pequeño, pero con compresión gzip baja a 339K
      Todavía ni siquiera se le ha aplicado la optimización de wasm-opt
      Hoot es un compilador AOT, así que en el REPL se incluye código adicional como el expansor de macros, el sistema de módulos del runtime y el intérprete
      Un ejemplo real, todo.wasm, anda por los 566K (143K comprimido) e incluye también un algoritmo de diff de DOM virtual
      Se espera que con optimizaciones adicionales, como reducir la cantidad de variables locales o adoptar la propuesta de stack switching, el tamaño pueda bajar todavía más
      Los temas relacionados están resumidos aquí
  • woot (expresión breve de entusiasmo)

  • Esto es precisamente lo que JavaScript originalmente apuntaba a ser
    Si Netscape no hubiera impuesto una sintaxis estilo C/Java, quizá se habría convertido en un lenguaje como este