Se ha presentado la versión 2.0 de la herramienta de construcción Qbs. Para la construcción de Qbs se requiere Qt entre sus dependencias, aunque Qbs está diseñado para organizar la construcción de cualquier proyecto. Qbs utiliza una versión simplificada del lenguaje QML para definir los scripts de construcción del proyecto, lo que permite establecer reglas de construcción bastante flexibles, donde se pueden integrar módulos externos, utilizar funciones de JavaScript y crear reglas de construcción personalizadas.
El lenguaje de script utilizado en Qbs está adaptado para automatizar la generación y análisis de scripts de construcción en entornos de desarrollo integrados. Además, Qbs no genera archivos make, sino que controla directamente, sin intermediarios como la herramienta make, el inicio de compiladores y enlazadores, optimizando el proceso de construcción en función de un grafo detallado de todas las dependencias. La disponibilidad de datos originales sobre la estructura y dependencias del proyecto permite ejecutar operaciones en múltiples hilos de manera eficiente. Para proyectos grandes, que constan de numerosos archivos y subdirectorios, el rendimiento de la reconstrucción con Qbs puede superar a make en múltiples ocasiones: la reconstrucción se realiza casi al instante y no obliga al desarrollador a perder tiempo en espera.
Recordemos que en 2018 la empresa Qt Company decidió detener el desarrollo de Qbs. Qbs evolucionó como un reemplazo de qmake, pero finalmente se decidió utilizar CMake como el sistema de compilación principal para Qt a largo plazo. El desarrollo de Qbs ahora continúa en forma de un proyecto independiente, respaldado por la comunidad y desarrolladores interesados. La infraestructura de Qt Company todavía se utiliza para el desarrollo.
El cambio significativo en el número de versión está relacionado con la implementación de un nuevo backend de JavaScript, que reemplaza a QtScript, declarado obsoleto en Qt 6. Continuar manteniendo QtScript por cuenta propia debido a las complicadas vinculaciones con JavaScriptCore ha sido considerado poco realista, por lo que se eligió como base para el nuevo backend el motor de JavaScript autónomo y compacto QuickJS, creado por Fabrice Bellard, fundador de los proyectos QEMU y FFmpeg. El motor soporta la especificación ES2019 y, en términos de rendimiento, supera significativamente a los análogos existentes (XS por un 35%, DukTape más de dos veces, JerryScript tres veces, y MuJS siete veces).
Desde el punto de vista del desarrollo de scripts de construcción, la transición al nuevo motor no debería provocar cambios notables. El rendimiento también se mantendrá aproximadamente al mismo nivel. Entre las diferencias se destacan los requisitos más estrictos del nuevo motor en cuanto al uso de valores indefinidos, lo que puede revelar problemas en los proyectos existentes que habían pasado desapercibidos con el uso de QtScript.
Fuente: opennet.ru
