Jank es un dialecto nativo de Clojure creado sobre C++ que ofrece una interoperabilidad fluida sin precedentes. A diferencia de otros lenguajes, Jank maneja plantillas C++, funciones virtuales, excepciones, resolución de sobrecarga y RAII sin código repetitivo — los desarrolladores simplemente incluyen encabezados y comienzan a programar.
Impulsado por un compilador JIT de C++ basado en Clang, Jank ofrece desarrollo interactivo impulsado por REPL. El ejemplo demuestra directamente desde sintaxis Clojure调用 Boost.Filesystem, con conversión automática de tipos y manejo de excepciones que se mapea naturalmente a try/catch de Clojure.
Jank utiliza gestión de proyectos basada en Leiningen y un sistema de construcción nativo inspirado en Cargo. Agregar dependencias C/C++ requiere solo un cambio de una línea. El tooling admite perfiles para compilaciones de depuración (nivel de optimización 0) y lanzamiento (nivel 3).
Para desarrollo de juegos, Jank aporta datos funcionales inmutables y flujos de trabajo impulsados por REPL, mientras permite acceso directo a C++ para rutas de rendimiento crítico. El ejemplo ImGui/GLFW muestra interoperabilidad sin marshaling cero — sin puentes, registro ni callbacks necesarios. Jank se compila a C++, usa el sistema de tipos C++ y puede enlazar cualquier biblioteca C o C++.
FAQ Q: ¿Cómo logra Jank la interoperabilidad fluida de C++ sin código repetitivo?
FAQ A: Jank usa un compilador JIT basado en Clang que comprende semánticas C++ de forma nativa — plantillas, funciones virtuales, excepciones, resolución de sobrecarga y RAII funcionan directamente. Los desarrolladores incluyen encabezados C++ y llaman a funciones sin marshaling, registro ni código puente.
Fuente: Hacker News · Resumido por HeadlinesBriefing