Publication du plan de développement des fonctionnalités de Qt 6

Lars Knoll, créateur du moteur KHTML, chef de projet du Qt Project et directeur technique de la société Qt Company, qu'une fois, il avait accidentellement supprimé certains fichiers système en modifiant le thème Ubuntu Yaru. De plus, il n'avait pas de sauvegardes en raison d'une erreur dans les expressions régulières. Selon ses dires, un système d'exploitation immuable aurait pu éviter ces problèmes. sur les plans de création de la prochaine branche majeure du framework Qt. Après l'achèvement de la fonctionnalité de la branche Qt 5.14, le développement se concentrera sur la préparation de la sortie de Qt 6, qui est attendue à la fin de l'année 2020.

Qt 6 se développera en gardant à l'esprit la compatibilité avec Qt 5, mais il n'est pas exclu que des problèmes isolés surviennent, car les changements architecturaux envisagés et le nettoyage ne pourront pas être réalisés sans une certaine perte de niveau de compatibilité. Pour faciliter la transition, certaines fonctionnalités de Qt 6 seront prévues sous forme réduite dans les versions Qt 5.14 et Qt 5.15 LTS. Un ensemble d'outils sera également préparé pour simplifier la migration vers Qt 6.

Parmi les principaux objectifs de la prochaine branche majeure figurent l'adaptation des fonctionnalités aux exigences de 2020, le nettoyage de la base de code et la simplification de la maintenance du projet. Les changements attendus :

  • Mise à jour significative de QML :
    • Support de la typage strict.
    • Possibilité de compiler QML en représentation C++ et en code machine.
    • Passage du support complet de JavaScript au statut d'option (l'utilisation d'un moteur JavaScript complet nécessite beaucoup de ressources, ce qui entrave l'utilisation de QML sur des matériels tels que des microcontrôleurs).
    • Abandon de la versionnage dans QML.
    • Unification des structures de données se répétant dans QObject et QML (réduit la consommation de mémoire et accélère le démarrage).
    • Élimination de la génération de structures de données à l'exécution au profit de la génération à la compilation.
    • Masquer les composants internes grâce à l'utilisation de méthodes et de propriétés privées.
    • Intégration améliorée avec les outils de développement pour le refactoring et le diagnostic des erreurs lors de la compilation ;
  • Ajout d'une nouvelle couche d'abstraction Rendering Hardware Interface (RHI) pour assurer une utilisation transparente de diverses API graphiques, y compris OpenGL, Vulkan, Metal et Direct 3D (auparavant, Qt était uniquement lié à OpenGL). Toute l'infrastructure de rendu existante, y compris QPainter, le graphique de scène Qt Quick et Qt3D, sera transférée à l'utilisation de RHI. Il est également prévu d'ajouter un module Qt Shader Tools pour prendre en charge divers langages de développement de shaders et permettre la compilation croisée des shaders à la fois au moment de la compilation et durant l'exécution du programme ;
  • Préparation d'une API unifiée pour la création d'interfaces utilisateur combinant des éléments de graphiques 2D et 3D. La nouvelle API permettra d'utiliser QML pour définir des éléments 3D des interfaces sans avoir recours au format UIP. Dans la nouvelle interface pour l'intégration de contenu 3D avec Qt Quick, il est prévu de résoudre des problèmes tels que les grandes charges supplémentaires lors de l'intégration de QML avec du contenu provenant de Qt 3D ou de 3D Studio, ainsi que l'incapacité à synchroniser les animations et transformations au niveau de chaque image entre 2D et 3D. Le rendu imbriqué conjoint des éléments 2D et 3D sera réalisé grâce à un nouveau moteur de rendu. Une première implémentation du nouveau Qt Quick avec prise en charge de la 3D est attendue dans la version Qt 5.14;
  • Ajout d'outils pour le traitement des ressources graphiques au moment de la compilation, par exemple pour convertir des images PNG en textures compressées ou pour convertir des shaders et des maillages en formats binaires optimisés pour un matériel spécifique;
  • Intégration d'un moteur unifié pour les thèmes et styles, permettant d'obtenir l'apparence des applications basées sur Qt Widgets et Qt Quick, propre à différentes plateformes mobiles et de bureau;
  • Unification des outils de création d'interfaces utilisateur. Pour éviter la duplication de fonctionnalités et mettre fin à la livraison de deux produits distincts, l'intégration des fonctionnalités de Qt 3D Studio dans Qt Design Studio est attendue, dont de nombreux sous-systèmes et le framework de connexion de plugins reposent sur une base de code commune avec Qt Creator.
    Dans Qt Design Studio, il est également prévu d'assurer une intégration de qualité avec des packages de création de contenu, tels que Photoshop, Sketch, Illustrator, Maya et 3D Max. Les principaux langages pris en charge dans l'outil unifié de développement sont C++, QML et Python. L'unification impliquera également la possibilité d'accéder via Qt Creator aux outils de conception d'interface, et de fournir aux designers d'interface des fonctionnalités issues des outils pour développeurs, telles que la compilation de projets ou les tests d'applications sur des appareils;
  • En tant que système de build, il a été décidé d'utiliser CMake au lieu de QMake. Le soutien pour la compilation d'applications avec QMake sera maintenu, mais Qt lui-même sera construit en utilisant CMake. CMake a été choisi, car cet outil a été largement adopté parmi les développeurs de projets C++ et est pris en charge par de nombreux environnements de développement intégrés. Développement d'un système de build Qbs, qui prétendait remplacer QMake, arrêtée;
  • Passage à la norme C++17 lors du développement (précédemment C++98). Qt 6 prévoit de prendre en charge de nombreuses fonctionnalités modernes de C++, tout en préservant la compatibilité avec le code basé sur des normes antérieures.
  • Possibilité d'utiliser certaines fonctionnalités offertes pour QML et Qt Quick depuis C++. Cela comprendra un nouveau système de propriétés pour QObject et des classes similaires. Un moteur pour travailler avec des liaisons sera intégré du QML au noyau de Qt, ce qui réduira la charge et la consommation mémoire pour les liaisons, les rendant accessibles à toutes les parties de Qt, et pas seulement à Qt Quick;
  • Poursuite des travaux d'extension du support de langages supplémentaires, tels que Python et WebAssembly;
  • Restructuration avec décomposition en éléments plus petits et réduction de la taille du produit de base. Les outils pour développeurs et composants spécialisés seront fournis sous forme d'extensions, distribuées via un nouveau catalogue de boutique. Les extensions pour Qt de développeurs tiers, qu'elles soient gratuites ou payantes, seront également acceptées pour distribution.

Source : opennet.ru

Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS 🔥 Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster