Qbs est un système d'automatisation de construction dirigé par la communauté et indépendant du langage. Il est rapide et offre un langage facile à apprendre basé sur QML.
La sortie de Qbs 2.0, un logiciel libre, open source et multiplateforme de gestion du processus de développement logiciel, a été annoncée récemment . Il a été conçu pour prendre en charge des projets vastes et complexes écrits dans divers langages de programmation, principalement C/C++.
La nouvelle version 2.0 est significative de par son numéro de version, car elle est associée à la mise en œuvre d'un nouveau backend JavaScript , qui a remplacé QtScript, devenu obsolète dans Qt 6.
Pour ceux qui ne connaissent pas Qbs, il utilise une version simplifiée du langage QML pour définir les scripts de construction de projet, permettant des règles de construction assez flexibles qui peuvent connecter des modules externes, utiliser des fonctions JavaScript et créer des règles de construction arbitraires.
Qbs est unique en ce sens qu'il ne possède aucun mécanisme de compilation interne, garantissant ainsi la possibilité de créer plusieurs compilations à partir d'un seul arbre source, y compris la compilation à partir d'un seul appel de commande et en parallèle.
Il s'agit d'une fonctionnalité essentielle, garantissant que les fichiers sources restent intacts même en cas de suppression d'un répertoire de compilation et qu'aucun fichier de sortie n'est écrit dans ce répertoire. Qt est requis comme dépendance pour la compilation de Qbs, bien que Qbs soit conçu pour gérer l'assemblage de tout projet.
Le langage de script utilisé dans Qbs est conçu pour automatiser la génération et l'analyse des scripts de construction par les IDE. De plus, Qbs ne génère pas de makefiles et, sans intermédiaires comme l'utilitaire make, contrôle la publication des compilateurs et des éditeurs de liens, optimisant le processus de construction sur la base d'un graphique détaillé de toutes les dépendances.
La présence de données initiales sur la structure et les dépendances dans le projet permet de paralléliser efficacement l'exécution des opérations dans plusieurs threads. Pour les grands projets constitués d'un grand nombre de fichiers et de sous-répertoires, les performances des reconstructions utilisant Qbs peuvent être plusieurs fois supérieures à celles de make : la reconstruction est presque instantanée et ne fait pas perdre de temps au développeur.
Principales actualités de QBS 2.0
Cette nouvelle version de QBS 2.0 est remarquable, comme mentionné au début, en raison du nouveau moteur JavaScript qui remplace QtScript, devenu obsolète pour Qt 6, car il était considéré comme irréaliste de continuer à maintenir QtScript seul en raison de ses liaisons complexes avec JavaScriptCore.
La perspective de conserver QtScript avec sa dépendance complexe ne semblait pas particulièrement attrayante. Cependant, aucun des deux candidats n'a proposé d'API pour intercepter les accès à la propriété, ce dont les développeurs disent avoir absolument besoin pour des raisons de performances.
Du point de vue de l'utilisateur, il ne devrait y avoir aucun changement notable ; en particulier, les performances semblent être à peu près les mêmes. Cependant, QtScript a été assez indulgent en acceptant des valeurs indéfinies dans des contextes où il n'était pas obligé de le faire, de sorte que la nouvelle implémentation pourrait découvrir des bogues dans vos projets.
Ce moteur est conforme à la spécification ES2019 et surpasse largement ses concurrents actuels (XS de 35 %, DukTape de plus du double, JerryScript de trois fois et MuJS de sept fois). Du point de vue du développement des scripts de compilation, la transition vers ce nouveau moteur ne devrait entraîner aucun changement notable.
Les performances resteront quasiment inchangées. Parmi les différences, le nouveau moteur impose des exigences plus strictes concernant l'utilisation des valeurs nulles, ce qui peut révéler des problèmes dans les projets existants qui étaient passés inaperçus lors de l'utilisation de QtScript.
De plus, il est également mentionné que les fichiers de projet qmake ont été supprimés, ce qui a permis de réduire le travail de maintenance pour les développeurs.
Enfin, il est mentionné que la version 2.1 verra une réécriture du code avec laquelle les développeurs présument qu'ils auront plusieurs nouvelles fonctionnalités, ainsi que des améliorations générales des performances.
Si vous souhaitez en savoir plus, vous trouverez les détails en suivant ce lien.