Pubblicata la roadmap delle funzionalità Qt 6

Lars Knoll, creatore del motore KHTML, project manager del progetto Qt e direttore tecnico della Qt Company, ha detto sui piani per creare il prossimo ramo significativo del framework Qt. Una volta completate le funzionalità del ramo Qt 5.14, lo sviluppo si concentrerà sulla preparazione al rilascio di Qt 6, previsto per la fine del 2020.

Qt 6 sarà sviluppato con l'obiettivo di garantire la compatibilità con Qt 5, ma potrebbero sorgere problemi individuali, poiché non sarà possibile implementare le modifiche e le pulizie architetturali pianificate senza perdere un certo livello di compatibilità. Per agevolare la transizione, è previsto che alcune funzionalità di Qt 6 siano incluse in forma ridotta come parte delle versioni Qt 5.14 e Qt 5.15 LTS. Verrà inoltre preparato un toolkit per semplificare la migrazione a Qt 6.

Tra gli obiettivi principali per il prossimo ramo significativo ci sono l'adeguamento della funzionalità ai requisiti del 2020, la pulizia della base di codice e la semplificazione della manutenzione del progetto. Cambiamenti attesi:

  • Modernizzazione significativa di QML:
    • Forte supporto per la digitazione.
    • Capacità di compilare QML in rappresentazione C++ e codice macchina.
    • Rendere il supporto JavaScript completo un'opzione (l'utilizzo di un motore JavaScript completo richiede molte risorse, il che impedisce l'uso di QML su apparecchiature come i microcontrollori).
    • Rifiuto del controllo delle versioni in QML.
    • Unificazione delle strutture dati duplicate in QObject e QML (ridurrà il consumo di memoria e accelererà l'avvio).
    • Allontanarsi dalla generazione in fase di esecuzione delle strutture dati a favore della generazione in fase di compilazione.
    • Nascondere i componenti interni tramite l'uso di metodi e proprietà privati.
    • Integrazione migliorata con strumenti di sviluppo per il refactoring e la diagnosi degli errori in fase di compilazione;
  • Aggiunta di un nuovo livello astratto, Rendering Hardware Interface (RHI), per fornire un utilizzo continuo di varie API grafiche, tra cui OpenGL, Vulkan, Metal e Direct 3D (in precedenza Qt era solo OpenGL). Tutta l'infrastruttura di rendering esistente verrà convertita per utilizzare RHI, inclusi QPainter, Qt Quick Scenegraph e Qt3D. Si prevede inoltre di aggiungere il modulo Qt Shader Tools per supportare vari linguaggi di sviluppo di shader e fornire la compilazione incrociata di shader sia in fase di build che in fase di runtime;
  • Preparazione di un'API unificata per la creazione di interfacce utente che combinano elementi grafici 2D e 3D. La nuova API ti consentirà di utilizzare QML per definire elementi dell'interfaccia 3D senza utilizzare il formato UIP. La nuova interfaccia per l'integrazione di contenuti 3D con Qt Quick prevede di risolvere problemi come l'elevato sovraccarico derivante dall'integrazione di QML con contenuti di Qt 3D o 3D Studio e l'incapacità di sincronizzare animazioni e trasformazioni a livello di fotogramma tra 2D e 3D. Il rendering combinato 2D e 3D nidificato verrà implementato utilizzando un nuovo motore di rendering. Un'anteprima del nuovo Qt Quick con supporto 3D è prevista nella release Qt 5.14;
  • Aggiunta di strumenti per elaborare risorse relative alla grafica in fase di compilazione, come la conversione di immagini PNG in trame compresse o la conversione di shader e mesh in formati binari ottimizzati per hardware specifico;
  • Incorporamento di un motore unificato per temi e stili, che consente di ottenere l'aspetto di applicazioni basate su Qt Widget e Qt Quick, native per diverse piattaforme mobili e desktop;
  • Unificazione degli strumenti per la creazione di un'interfaccia utente. Per evitare la duplicazione delle funzionalità e l'interruzione della fornitura di due prodotti separati, si prevede che la funzionalità di Qt 3D Studio sarà integrata in Qt Design Studio, molti dei cui sottosistemi e il framework per il collegamento dei plugin sono costruiti sulla stessa base di codice di Qt Creator.
    Qt Design Studio prevede inoltre di fornire un'integrazione di alta qualità con pacchetti di creazione di contenuti come Photoshop, Sketch, Illustrator, Maya e 3D Max. I principali linguaggi supportati nel toolkit di sviluppo unificato sono C++, QML e Python. Unificazione significa anche la possibilità di accedere agli strumenti di progettazione dell'interfaccia da Qt Creator e fornire ai progettisti di interfacce funzionalità dagli strumenti di sviluppo, ad esempio compilare un progetto o testare un'applicazione su un dispositivo;

  • Si è deciso di utilizzare CMake invece di QMake come sistema di compilazione. Il supporto per la creazione di applicazioni utilizzando QMake rimarrà, ma Qt stesso verrà creato utilizzando CMake. È stato scelto CMake perché questo toolkit è ampiamente utilizzato tra gli sviluppatori di progetti C++ ed è supportato in molti ambienti di sviluppo integrati. Sviluppo del sistema di assemblaggio Qbs, che pretendeva di essere un sostituto di QMake, interrotto;
  • Transizione allo standard C++17 durante lo sviluppo (in precedenza veniva utilizzato C++98). Qt 6 prevede di implementare il supporto per molte funzionalità moderne del C++, ma senza perdere la compatibilità con le versioni precedenti del codice basato sugli standard precedenti.
  • Capacità di utilizzare da C++ alcune delle funzionalità offerte per QML e Qt Quick. In particolare verrà presentato un nuovo sistema di proprietà per QObject e classi simili. Un motore per lavorare con i collegamenti sarà integrato da QML nel core Qt, che ridurrà il carico e il consumo di memoria per i collegamenti e li renderà disponibili a tutte le parti di Qt, e non solo a Qt Quick;
  • Lavoro continuo per espandere il supporto per linguaggi aggiuntivi come Python e WebAssembly;
  • Ristrutturazione mediante scomposizione in componenti più piccole e riduzione della dimensione del prodotto sottostante. Strumenti per sviluppatori e componenti personalizzati verranno forniti come componenti aggiuntivi distribuiti tramite il nuovo negozio catalogo. Verranno accettate per la distribuzione anche aggiunte a Qt provenienti da sviluppatori di terze parti, sia gratuite che a pagamento.

Fonte: opennet.ru

Aggiungi un commento