BUSY: un sistema de compilación ligero, de tipado estático y multiplataforma inspirado en Google GN

Fuentes: BUSY: a lean, statically typed, cross-platform build system inspired by Google GN

BUSY (BUild SYstem) es un sistema de compilación multiplataforma para las toolchains GCC, Clang y MSVC, con requisitos de sistema mínimos y fácil arranque en frío. Frente a alternativas como CMake, QMake, Meson o GN, su principal rasgo diferenciador es un lenguaje de especificación de tipado estático, y la posibilidad de compilar un proyecto partiendo de cero sin dependencias previas en la máquina anfitriona; de hecho, su tamaño es tan reducido que puede integrarse directamente en el árbol de fuentes del proyecto.

La herramienta está escrita en C89 y se integra con la máquina virtual de Lua, un lenguaje cuya compilación solo requiere un compilador C89 y produce un binario único de unos pocos cientos de kilobytes. BUSY hereda esa filosofía y permite arrancar una construcción con un simple "gcc *.c", sin necesidad de Ninja, Python ni de versiones recientes de C++.

El lenguaje de especificación soporta dos sintaxis —estilo C y estilo Pascal— y maneja conceptos como submódulos, grupos, configuraciones, bibliotecas estáticas y dinámicas, y conjuntos de fuentes. Incorpora además soporte específico para las herramientas Qt moc y rcc, lo que se demuestra en el ejemplo del compilador e IDE Oberon+.

Como proyectos de referencia se citan NAppGUI, una biblioteca GUI multiplataforma escrita en C89 por Francisco García, y el propio Oberon+, ambos compilables directamente con BUSY. El autor acompaña la herramienta con un IDE propio llamado LeanCreator, pensado para integrarse con BUSY y aprovechar compilaciones multinúcleo. El objetivo declarado es acercar a los sistemas de compilación logros clásicos de la ingeniería del software —modularización, tipado estático y compilación reproducible— todavía ausentes en buena parte del ecosistema actual.