Byl zveřejněn plán rozvoje funkcionality Qt 6

Lars Knoll, zakladateľ enginu KHTML, vedúci projektu Qt Project a technický riaditeľ spoločnosti Qt Company, povedal o plánoch na vytvorenie ďalšej významnej verzie rámca Qt. Po dokončení formovania funkčnosti verzie Qt 5.14 sa vývoj zameria na prípravu vydania Qt 6, ktoré sa očakáva na konci roka 2020.

Qt 6 bude vyvíjaný s ohľadom na zabezpečenie kompatibility s Qt 5, ale nie sú vylúčené určité problémy, keďže plánované architektonické zmeny a vyčistenie nebudú realizovateľné bez straty určitej úrovne kompatibility. Na zjednodušenie prechodu sa niektoré funkcie Qt 6 plánujú v skrátenej forme zahrnúť do vydania Qt 5.14 a Qt 5.15 LTS. Takisto bude pripravený nástroj na zjednodušenie migrácie na Qt 6.

Medzi hlavné ciele pre ďalšiu významnú verziu patrí zladenie funkčnosti s požiadavkami roku 2020, vyčistenie kódu a zjednodušenie údržby projektu. Očakávané zmeny:

  • Podstatná modernizácia QML:
    • Podpora prísnej typizácie.
    • Možnosť kompilácie QML do C++ a strojového kódu.
    • Prevod plnej podpory JavaScriptu na úroveň možností (používanie plnohodnotného JavaScriptového enginu si vyžaduje veľké zdroje, čo bráni aplikácii QML na zariadeniach ako mikrokontroléry).
    • Zrieknutie sa verzionovania v QML.
    • Unifikácia dátových štruktúr, ktoré sa duplikujú v QObject a QML (umožní znížiť spotrebu pamäte a urýchliť spustenie).
    • Odchod od generovania dátových štruktúr počas behu v prospech generovania počas kompilácie.
    • Skrytie vnútorných komponentov prostredníctvom používania privátnych metód a vlastností.
    • Vylepšená integrácia s nástrojmi na vývoj pre refaktoring a diagnostiku chýb počas kompilácie;
  • Pridanie nového abstraktného vrstvy Rendering Hardware Interface (RHI) na zabezpečenie bezproblémového používania rôznych grafických API, vrátane OpenGL, Vulkan, Metal a Direct 3D (predtým bol Qt viazaný len na OpenGL). Na používanie RHI bude prevedená celá existujúca infraštruktúra renderovania, vrátane QPainter, Qt Quick Scenegraph a Qt3D. Plánuje sa tiež pridať modul Qt Shader Tools na podporu rôznych jazykov vývoja shaderov a zabezpečenie krížovej kompilácie shaderov ako v čase zostavovania, tak aj počas behu programu;
  • Príprava unifikovaného API na vytváranie užívateľských rozhraní kombinujúcich prvky 2D a 3D grafiky. Nové API umožní používanie QML na definovanie 3D prvkov rozhraní bez zapojenia formátu UIP. V novom rozhraní na integráciu 3D obsahu s Qt Quick plánujú vyriešiť také problémy, ako sú vysoké režijné náklady pri integrácii QML s obsahom z Qt 3D alebo 3D Studio a nemožnosť synchronizácie animácie a transformácií na úrovni jednotlivých snímok medzi 2D a 3D. Spoločná vnorená vykresľovanie 2D a 3D bude implementovaná pomocou nového renderovacieho enginu. Predbežná implementácia nového Qt Quick s podporou 3D sa očakáva vo vydaní Qt 5.14;
  • Pridanie nástrojov na spracovanie grafických zdrojov na etape kompilácie, napríklad na prevod PNG obrázkov na komprimované textúry alebo na konverziu shaderov a meshov do optimalizovaných binárnych formátov pre konkrétne zariadenia;
  • Vstavaný unifikovaný engine pre témy a štýly, ktorý umožňuje dosiahnuť vzhľad aplikácií založených na Qt Widgets a Qt Quick, natívny pre rôzne mobilné a desktopové platformy;
  • Unifikácia nástrojov na vytváranie užívateľských rozhraní. Na vylúčenie duplicity funkčnosti a ukončenie dodávania dvoch samostatných produktov sa očakáva integrácia funkčnosti Qt 3D Studio do Qt Design Studio, pričom mnohé subsystémy a rámec pripojenia pluginov sú postavené na jednotnej kódovej báze s Qt Creator.
    V Qt Design Studio sa plánuje zabezpečiť kvalitnú integráciu s balíkmi na vytváranie obsahu, ako sú Photoshop, Sketch, Illustrator, Maya a 3D Max. Hlavnými podporovanými jazykmi v unifikovanom nástroji pre vývoj sú C++, QML a Python. Unifikácia tiež znamená možnosť prístupu z Qt Creatoru k prostriedkom na návrh rozhrania a poskytnutie dizajnérom rozhrania funkcií z nástrojov pre vývojárov, ako napríklad kompilácia projektu alebo testovanie aplikácie na zariadení;
  • Ako systém zostavovania sa rozhodlo použiť CMake namiesto QMake. Podpora zostavovania aplikácií pomocou QMake bude zachovaná, ale samotný Qt sa bude zostavovať pomocou CMake. CMake bol vybraný, pretože tento nástroj sa široko rozšíril medzi vývojármi projektov v C++ a je podporovaný v mnohých integrovaných vývojových prostrediach. Vývoj systému zostavovania Qbs, ktorý sa uchádzal o pozíciu náhrady za QMake, ukončená;
  • Prechod pri vývoji na štandard C++17 (predtým sa používal C++98). V Qt 6 sa plánuje implementácia podpory mnohých moderných funkcií C++, ale bez straty spätnej kompatibility s kódom založeným na predchádzajúcich normách.
  • Možnosť využitia z C++ niektorých funkcií ponúkaných pre QML a Qt Quick. Medzi iným bude predstavený nový systém vlastností pre QObject a podobné triedy. Z QML do jadra Qt bude integrovaný engine na prácu s bindingmi, čo umožní znížiť záťaž a spotrebu pamäte pre bindingy a sprístupniť ich pre všetky časti Qt, a nie len pre Qt Quick;
  • Pokračovanie práce na rozšírení podpory ďalších jazykov, ako sú Python a WebAssembly;
  • Restrukturalizácia s rozdelením na menšie zložky a zmenšením veľkosti základného produktu. Nástroje pre vývojárov a špecializované komponenty budú dodávané vo forme doplnkov, ktoré sa budú šíriť prostredníctvom nového katalógu-obchodu. Na rozširovanie sa budú akceptovať aj doplnky k Qt od externých vývojárov, ako bezplatné, tak aj platené.

Zdroj: opennet.ru

Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster