Récemment la sortie de la nouvelle version de Qbs 2.0 a été annoncée, qui est un logiciel multiplateforme gratuit et open source pour gérer le processus de création de logiciels. Il a été conçu pour prendre en charge de grands projets complexes, écrits dans divers langages de programmation, principalement C/C++.
La nouvelle version 2.0 est un numéro de version important, car il est associé à la mise en œuvre d’un nouveau backend JavaScript.qui a remplacé QtScript, qui était obsolète dans Qt 6.
Pour ceux qui ne connaissent pas Qbs, qu’ils sachent que ce utilise une version simplifiée du langage QML pour définir des scripts de construction de projet, vous permettant de définir des règles de construction assez flexibles où des modules externes peuvent être branchés, des fonctions JavaScript peuvent être utilisées et des règles de construction arbitraires peuvent être créées.
Qbs est unique en ce qu’ile ne dispose d’aucun mécanisme de compilations internes, assurer la possibilité de créer plusieurs versions à partir d’une seule arborescence source, y compris la création à partir d’un seul appel de commande et en parallèle.
Il s’agit d’une caractéristique essentielle, qui garantit que les fichiers source ne sont pas affectés si un répertoire de construction est supprimé et qu’aucun artefact de sortie n’est écrit dans le répertoire source. Pour construire Qbs, Qt est requis en tant que dépendance, bien que Qbs lui-même soit conçu pour organiser l’assemblage de n’importe quel 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 meilleures que celles de make : la reconstruction est presque instantanée et ne fait pas perdre de temps au développeur.
Principales nouveautés de QBS 2.0
Cette nouvelle version de QBS 2.0 est remarquable comme mentionné au début, en raison de la nouveau moteur JavaScript qui vient remplacer QtScript qui était obsolète pour Qt 6, car il était considéré comme irréaliste de continuer à prendre en charge QtScript seul en raison de liaisons complexes à 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.
Le moteur est conforme à la spécification ES2019 et surpasse de manière significative ses homologues existants en termes de performances (XS de 35 %, DukTape de plus de deux fois, JerryScript de trois fois et MuJS de sept fois). Du point de vue du développement de scripts de build, la transition vers un nouveau moteur ne devrait pas entraîner de changements notables.
Les performances resteront également à peu près les mêmes. Parmi les différences, il existe des exigences plus strictes dans le nouveau moteur pour l’utilisation de valeurs nulles, ce qui peut révéler des problèmes dans les projets existants qui sont passés inaperçus lors de l’utilisation de QtScript.
En plus de cela, il est également mentionné que suppression des fichiers de projet qmake, ce qui réduit les travaux 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 à ce sujet, vous pouvez consulter les détails dans le lien suivant.