jank es un dialecto robusto de Clojure que se ejecuta sobre C++, diseñado para eliminar la sobrecarga de código asociada a la interacción con sistemas de bajo nivel. A diferencia de otros lenguajes que requieren puentes o registros de funciones para acceder a C++, jank permite el uso directo de plantillas, funciones virtuales, excepciones, resolución de sobrecargas y gestión de recursos (RAII) sin boilerplate adicional. El sistema incluye un compilador JIT basado en Clang que permite un desarrollo interactivo mediante REPL, facilitando la compilación en tiempo real de código C++.
La arquitectura de jank se basa en Leiningen para la gestión de proyectos y ofrece un sistema de construcción nativo que puede encontrar dependencias instaladas o compilarlas desde el código fuente. Esto permite a los desarrolladores integrar librerías C y C++ estándar, como Boost, con facilidad. El lenguaje compila directamente a C++ y utiliza el sistema de tipos de C++, lo que garantiza un rendimiento óptimo sin la necesidad de callbacks o marshalling de datos. El ecosistema incluye soporte para editores nREPL y plugins específicos, integrando herramientas gráficas como ImGui y GLFW directamente en el flujo de trabajo funcional. jank es particularmente útil para desarrolladores que buscan la inmutabilidad y la programación funcional de Clojure, pero que requieren el rendimiento de C++ para aplicaciones de alto rendimiento, como juegos o sistemas embebidos.
