Pubblicato il piano di sviluppo delle funzionalità di Qt 6

Lars Knoll, creatore del motore KHTML, responsabile del progetto Qt Project e CTO di Qt Company, raccontato parla dei piani per la creazione della prossima significativa versione del framework Qt. Dopo il completamento delle funzionalità della versione Qt 5.14, lo sviluppo si concentrerà sulla preparazione del rilascio di Qt 6, previsto per la fine del 2020.

Qt 6 si svilupperà tenendo conto della compatibilità con Qt 5, ma potrebbero sorgere problemi, poiché le modifiche architettoniche previste e la pulizia non possono essere realizzate senza una certa perdita di compatibilità. Per facilitare la transizione, alcune funzionalità di Qt 6 sono pianificate per essere incluse in forma ridotta nelle versioni Qt 5.14 e Qt 5.15 LTS. Sarà inoltre fornito un toolkit per semplificare la migrazione a Qt 6.

Tra gli obiettivi principali per la prossima significativa versione c'è l'allineamento delle funzionalità con le esigenze del 2020, la pulizia del codice e la semplificazione della manutenzione del progetto. Modifiche attese:

  • Significativo ammodernamento di QML:
    • Supporto per il tipo rigoroso.
    • Possibilità di compilare QML in rappresentazioni C++ e codice macchina.
    • Conversione del supporto completo per JavaScript in una delle opzioni (l'uso di un motore JavaScript completo richiede molte risorse, ostacolando l'uso di QML su attrezzature come i microcontrollori).
    • Abbandono della versioning in QML.
    • Unificazione delle strutture dati duplicate in QObject e QML (permetterà di ridurre l'uso di memoria e accelerare l'avvio).
    • Abbandono della generazione di strutture dati a runtime a favore della generazione durante la compilazione.
    • Nascondere componenti interni tramite l'uso di metodi e proprietà private.
    • Integrazione avanzata con gli strumenti di sviluppo per il refactoring e la diagnosi degli errori durante la compilazione;
  • Introduzione di un nuovo strato astratto Rendering Hardware Interface (RHI) per garantire un utilizzo fluido di diverse API grafiche, comprese OpenGL, Vulkan, Metal e Direct 3D (in precedenza Qt era legato esclusivamente a OpenGL). Tutta l'infrastruttura di rendering esistente, inclusi QPainter, Qt Quick Scenegraph e Qt3D, sarà trasferita all'utilizzo di RHI. È inoltre previsto l'aggiunta del modulo Qt Shader Tools per supportare diversi linguaggi di sviluppo dei shader e garantire la cross-compilazione degli shader sia in fase di build che durante l'esecuzione del programma;
  • Preparazione di un'API unificata per la creazione di interfacce utente che combinano elementi di grafica 2D e 3D. La nuova API permetterà di utilizzare QML per definire elementi 3D delle interfacce senza dover ricorrere al formato UIP. Nel nuovo sistema per l'integrazione dei contenuti 3D con Qt Quick si prevede di affrontare problemi come i grandi sovraccarichi nell'integrazione di QML con i contenuti provenienti da Qt 3D o 3D Studio, e l'impossibilità di sincronizzare animazioni e trasformazioni a livello di singoli fotogrammi tra 2D e 3D. Il rendering combinato di 2D e 3D sarà realizzato tramite un nuovo motore di rendering. Una versione preliminare del nuovo Qt Quick con supporto per il 3D è prevista per la release di Qt 5.14;
  • Aggiunta di strumenti per la gestione delle risorse grafiche durante la fase di compilazione, ad esempio per la conversione delle immagini PNG in texture compresse o per la trasformazione di shader e mesh in formati binari ottimizzati per specifiche attrezzature;
  • Integrazione di un motore unificato per temi e stili, che consenta di ottenere un aspetto delle applicazioni basate su Qt Widgets e Qt Quick nativo per le diverse piattaforme mobili e desktop;
  • Unificazione degli strumenti per la creazione dell'interfaccia utente. Per eliminare la duplicazione delle funzionalità e porre fine alla fornitura di due prodotti separati, si prevede l'integrazione delle funzionalità di Qt 3D Studio in Qt Design Studio, molte delle cui sottosistemi e framework di collegamento dei plugin sono costruiti su una base di codice unificata con Qt Creator.
    In Qt Design Studio si prevede anche di garantire una qualità di integrazione con pacchetti per la creazione di contenuti, come Photoshop, Sketch, Illustrator, Maya e 3D Max. Sono menzionati come linguaggi principali supportati nello strumento unificato per lo sviluppo C++, QML e Python. L'unificazione implica anche la possibilità di accedere da Qt Creator agli strumenti di progettazione dell'interfaccia, e fornire ai progettisti dell'interfaccia funzionalità dagli strumenti per sviluppatori, come la compilazione del progetto o il test dell'applicazione su dispositivo;
  • Come sistema di build, si è deciso di utilizzare CMake al posto di QMake. La supporto per la costruzione di applicazioni tramite QMake sarà mantenuta, ma Qt sarà compilato utilizzando CMake. CMake è stato scelto poiché questo strumento ha ottenuto una vasta diffusione tra gli sviluppatori di progetti in C++ e viene supportato in molti ambienti di sviluppo integrati. La sviluppo del sistema di build Qbs, che aspirava a sostituire QMake, interrotto.;
  • Transizione allo standard C++17 (in precedenza si utilizzava C++98). In Qt 6 è prevista l'implementazione di molte delle funzionalità moderne di C++, mantenendo la compatibilità con il codice basato su standard precedenti.
  • La possibilità di utilizzare in C++ alcune funzionalità offerte per QML e Qt Quick. Sarà presentato un nuovo sistema di proprietà per QObject e classi simili. Un motore per la gestione dei binding sarà integrato nel nucleo di Qt, riducendo il carico e il consumo di memoria per i binding e rendendoli disponibili per tutte le parti di Qt, non solo per Qt Quick.
  • Continuazione del lavoro per espandere il supporto a ulteriori linguaggi, come Python e WebAssembly.
  • Ristrutturazione con suddivisione in componenti più piccoli e riduzione delle dimensioni del prodotto di base. Gli strumenti per sviluppatori e i componenti specializzati saranno forniti come estensioni, distribuite attraverso un nuovo catalogo negozio. Saranno accettate estensioni di Qt da sviluppatori di terze parti, sia gratuite che a pagamento.

Fonte: opennet.ru

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster