3 puntos por GN⁺ 2025-11-24 | 1 comentarios | Compartir por WhatsApp
  • Racket 9.0 es una versión importante que introduce los hilos paralelos (Parallel Threads), ampliando el soporte existente para green threads, futures y places
  • Los nuevos hilos pueden crearse con el argumento #:pool y, con la configuración #:keep 'results, sus resultados pueden consultarse después con thread-wait
  • El wrapper black-box evita que el compilador optimizador elimine ciertas operaciones, mejorando la precisión de los benchmarks
  • La función decompile-linklet puede convertir un linklet de nuevo a una S-expression, y processor-count cambió para devolver el número de procesadores paralelos
  • Incluye varias actualizaciones, como el paquete “natipkg” para AArch64, la adición de la distribución Weibull y mejoras en la documentación

Principales cambios en Racket 9.0

  • En esta versión se introduce la nueva función de hilos paralelos (Parallel Threads)

    • Racket ya soportaba green threads, futures y places, pero los hilos paralelos se agregan como una ampliación importante
    • Los hilos paralelos pueden crearse mediante el argumento #:pool, y si se configuran con #:keep 'results, los resultados pueden consultarse después con thread-wait
  • El wrapper black-box evita que el compilador optimizador elimine por completo ciertos cálculos

    • Es útil para garantizar mediciones de rendimiento precisas al ejecutar benchmarks
  • La función decompile-linklet permite mapear un linklet de nuevo a una S-expression

    • Ofrece una forma de restaurar la representación interna durante el análisis y depuración de código
  • En BC Racket, la función processor-count cambió para devolver siempre la cantidad de procesadores paralelos

    • Esto permite verificar de forma consistente el número de procesadores en entornos de ejecución paralela
  • El paquete “natipkg” para AArch64 se distribuye ahora como novedad y puede usarse en la infraestructura de compilación y pruebas de paquetes

Mejoras adicionales

  • La función Check Syntax ahora soporta el seguimiento de identificadores más profundamente anidados dentro del campo “origin” de los objetos de sintaxis
  • Se agregó la distribución Weibull a la librería math
  • Incluye múltiples correcciones de errores y mejoras en la documentación

Comunidad y participación

  • En esta versión contribuyeron varios desarrolladores, entre ellos Alexander Shopov, Bogdan Popa, Matthew Flatt y Matthias Felleisen
  • Racket es un proyecto open source impulsado por la comunidad y da la bienvenida a nuevos contribuidores

Solicitud de retroalimentación y difusión

1 comentarios

 
GN⁺ 2025-11-24
Comentarios de Hacker News
  • Lo principal de esta noticia es que Racket ahora admite hilos paralelos
    Antes ya había formas de paralelizar, como places, pero este enfoque es mucho más ligero y familiar
    Como me gusta crear cosas con Racket, me da gusto que esto amplíe el campo de uso de Racket

    • A mí también me sorprendió al leer las notas de la versión. Da gusto que por fin hayan añadido este tipo de multithreading
      places no era flexible. No podías pasar lambdas fácilmente, y serializable-lambda funcionaba de forma contagiosa, así que en tiempo de ejecución solo podías enviar datos, no funciones
      Por eso era difícil construir una estructura para distribuir trabajo entre varios places
      Ojalá que con esta nueva funcionalidad de concurrencia eso ya sea posible
      Hasta ahora, por esta razón había estado usando GNU Guile en lugar de Racket. Guile era mucho más confiable para aprovechar múltiples núcleos mediante futures o fibers
      Yo también llegué a crear un modelo paralelo de árbol de decisión usando futures y obtuve una mejora de velocidad casi lineal
    • Me da curiosidad qué tipo de proyectos haces con Racket
      Soy desarrollador de Clojure, así que me gustan los lenguajes de la familia Lisp. Quisiera saber qué cosas haces con Racket
    • Que los hilos paralelos apenas se hayan añadido en la versión 9 me parece un poco contradictorio con que en la página principal describan a Racket como un “lenguaje maduro y pulido
  • Viendo este video, Racket puede sentirse difícil si no es tu primer lenguaje, pero es lo bastante sencillo como para que hasta niños puedan aprenderlo

    • Es un video realmente genial
  • Me gusta muchísimo Racket
    Por diversión escribí un libro sobre Racket, y se puede leer gratis en línea
    Entre los lenguajes de la familia Scheme, recomiendo Racket y Gerbil
    Racket es ideal para principiantes porque tiene un buen IDE y bibliotecas estándar y de terceros muy abundantes, mientras que Gerbil es bueno para programación de sistemas o utilidades de red

  • Racket es de verdad un lenguaje genial
    Es una buena forma de aprender sobre la familia Lisp, y todavía recuerdo con cariño cuando hacía tareas en el IDE DrRacket

  • Probé Lisp por primera vez a mediados de los 80, y desde entonces he vuelto de vez en cuando para aprender nuevas formas de pensar y técnicas de programación
    También intenté usar Racket varias veces, pero por alguna razón el software en sí no terminaba de encajar conmigo
    Tal vez si lo usara de manera constante me gustaría más, pero todavía no me imagino escribiendo un proyecto grande en Racket

    • Antes me gustaba, pero lo dejé porque el código era demasiado lento y pesado
      Era incluso más lento que Python; quizá haya mejorado desde la reescritura sobre Chez Scheme, pero ahora uso Common Lisp, que es rápido y ligero
    • Cuando dices “software”, me pregunto si te refieres al lenguaje en sí o al tooling
  • Conocí Racket porque vi que John Carmack había hecho trabajo relacionado con Oculus en Racket hace 10 años
    Video relacionado

  • Lisp es en sí mismo un metalenguaje, y Racket lo es todavía más
    Prácticamente se puede ver como un kit para crear lenguajes

    • Escucho eso muy seguido, pero en la práctica no hay tantos desarrolladores de PL creando lenguajes con Racket
      Yo usé Racket cuando enseñaba una clase de PL, pero como los estudiantes estaban acostumbrados a Java o Python, les costaba la sintaxis de Lisp
      Por eso no tengo muy claro para quién está hecho este lenguaje
  • El blog de Bogdan Popa (defn.io) tiene mucha información interesante sobre Racket
    Tengo ganas de probar personalmente la nueva funcionalidad de hilos

  • He intentado usar Racket varias veces, pero el IDE me pareció demasiado poco intuitivo y extraño
    Me pregunto si eso es parte del diseño intencional o si simplemente es así porque no había una alternativa mejor

    • El IDE no es el lenguaje en sí
      Racket también tiene buen soporte en VSCode (Magic Racket, Langserver), Emacs (Racket Mode), Vim y otros
      Puedes revisar la documentación oficial y el repositorio de Langserver
      DrRacket sigue valiendo la pena por funciones como el macro stepper, que no suelen estar en otros IDE
    • En racket-mode.com puedes ver una excelente integración con Emacs
  • Racket es un lenguaje divertido
    En nuestra universidad usamos la versión educativa de Racket en la clase introductoria de CS del primer año
    A algunos estudiantes no les gusta, pero hay quienes en silencio sí le agarran cariño

    • Me da curiosidad cómo se llamaba esa clase
    • Pero la mayoría dice que después de graduarse no volverá a usar Racket nunca más, y eso dice bastante