Lars Knoll, krijuesi i motorit KHTML, drejtuesi i projektit Qt Project dhe drejtori teknik i kompanisë Qt Company, për planet për krijimin e degës së ardhshme të rëndësishme të kornizës Qt. Pas përfundimit të formimit të funksionaliteteve të degës Qt 5.14, zhvillimi do të fokusohet në përgatitjen e lëshimit të Qt 6, i cili pritet në fund të vitit 2020.
Qt 6 do të zhvillohet me një vëmendje ndaj sigurisë së përputhshmërisë me Qt 5, por nuk përjashtohet ndodhia e problemeve të veçanta, pasi ndryshimet e planifikuara në arkitekturë dhe pastrimi nuk do të realizohen pa humbjen e një niveli të caktuar të përputhshmërisë. Për lehtësimin e kalimit, disa mundësi të Qt 6 janë të planifikuara të përfshihen në formë të shkurtuar në lëshimet e Qt 5.14 dhe Qt 5.15 LTS. Gjithashtu do të përgatitet një instrumentar për thjeshtimin e migrimit në Qt 6.
Në mesin e synimeve kryesore për degën e ardhshme të rëndësishme është përshtatja e funksionaliteteve me kërkesat e vitit 2020, pastrimi i bazës së kodit dhe thjeshtimi i mbështetjes së projektit. Ndryshimet e pritura:
- Modernizim i konsiderueshëm i QML:
- Mbështetje e tipizimit të fortë.
- Mundësia për kompilimin e QML në përfaqësim në C++ dhe kodin e makinës.
- Kthimi i mbështetjes së plotë për JavaScript në nivel opsionesh (përdorimi i motorit të plotë JavaScript kërkon burime të mëdha, gjë që pengon aplikimin e QML në pajisje si mikro-kontrollerët).
- Heqja e versionimit në QML.
- Unifikimi i strukturave të dhënash, që përsëriten në QObject dhe QML (do të lejojë reduktimin e konsumit të memories dhe përshpejtimin e ngarkesës).
- Shkëputja nga gjenerimi i strukturave të dhënash në kohën e ekzekutimit në favor të gjenerimit gjatë kompilimit.
- Fshehja e komponentëve të brendshëm përmes përdorimit të metodave dhe pronave private.
- Integrim i përmirësuar me mjetet e zhvillimit për refaktorizimin dhe diagnostikimin e gabimeve gjatë kompilimit;
- Shtimi i një sloji abstrakt Rendering Hardware Interface (RHI) për të siguruar përdorim të paqëndrueshëm të API-ve të ndryshme grafike, duke përfshirë OpenGL, Vulkan, Metal dhe Direct 3D (më parë Qt ishte e lidhur vetëm me OpenGL). E gjithë infrastruktura ekzistuese e renderimit do të migrohet në përdorimin e RHI, duke përfshirë QPainter, Qt Quick Scenegraph dhe Qt3D. Gjithashtu është planifikuar shtimi i një moduli Qt Shader Tools për mbështetje të gjuhëve të ndryshme të zhvillimit të shaderave dhe për të siguruar krijimin e kryqëzuar të shaderave si në fazën e ndërtimit, ashtu edhe gjatë ekzekutimit të programit;
- Përgatitja e një API të unifikuar për krijimin e interfaces së përdoruesit, e cila kombinon elemente të grafikeve 2D dhe 3D. API e re do të lejojë përdorimin e QML për të përcaktuar elementët 3D të interfaces pa përdorur formatin UIP. Në interface të ri për integrimin e përmbajtjes 3D me Qt Quick, planifikohet zgjidhja e problemeve si shpenzimet e mëdha gjatë integrimit të QML me përmbajtjen nga Qt 3D ose 3D Studio, dhe pamundësia e sinkronizimit të animacioneve dhe transformimeve në nivelin e kuadrove të veçanta midis 2D dhe 3D. Krijimi bashkëpunues i skicave 2D dhe 3D do të realizohet përmes një motori të ri të rendertime. Implementimi i parakohshëm i Qt Quick të ri me mbështetje për 3D pritet në lëshimin e Qt 5.14;
- Shtimi i mjeteve për procesimin e burimeve të lidhura me grafikën në fazën e kompilimit, për shembull, për të konvertuar imazhet PNG në tekstura të kompresuara ose për të konvertuar shndërruesit dhe meshët në formate binarë që janë optimizuar për pajisje të caktuara;
- Inkorporimi i një motori të unifikuar për temat dhe stilin, duke mundësuar arritjen e pamjes së aplikacioneve të bazuara në Qt Widgets dhe Qt Quick, që është natyra për platformat e ndryshme mobile dhe desktop;
- Unifikimi i mjeteve për krijimin e interfaces së përdoruesit. Për të përjashtuar dublimin e funksionaliteteve dhe për të ndërprerë ofrimin e dy produkteve të veçanta, pritet integrimi i funksionaliteteve të Qt 3D Studio në Qt Design Studio, shumë nga nënstrukturat e të cilit dhe framework-u i lidhjes me plugina janë ndërtuar në një bazë kodi të njëjtë me Qt Creator.
Në Qt Design Studio gjithashtu planifikojnë të sigurojnë integrim cilësor me paketat për krijimin e përmbajtjes, si Photoshop, Sketch, Illustrator, Maya dhe 3D Max. Si gjuhë kryesore, të mbështetura në mjetet e unifikuara për zhvillim, përmenden C++, QML dhe Python. Unifikimi gjithashtu nënkupton mundësinë e qasjes nga Qt Creator në mjetet e projektimit të interfaces, dhe ofrimin e mundësive për dizajnerët e interfaces nga mjetet për zhvilluesit, për shembull, kompilimi i projektit ose testimi i aplikacionit në pajisje; - Si sistem ndërtimi është vendosur të përdoret CMake në vend të QMake. Mbështetjeja për ndërtimin e aplikacioneve me QMake do të ruhet, por vetë Qt do të ndërtohet me përdorimin e CMake. CMake është zgjedhur për shkak se ky mjete ka fituar përhapje të madhe në mes të zhvilluesve të projekteve në C++ dhe mbështetet në shumë ambiente të integruara zhvillimi. Zhvillimi i sistemit të ndërtimit Qbs, i cili pretendonte të ishte zëvendësimi i QMake, ;
- Kalimi në zhvillim në standardin C++17 (më parë ishte përdorur C++98). Në Qt 6 planifikohet implementimi i mbështetjes për shumë mundësi moderne të C++, por pa humbur përputhshmërinë me kodin në bazë të standardeve të kaluar.
- Mundësia për të përdorur disa funksionalitete nga C++, që ofrohen për QML dhe Qt Quick. Po ashtu, do të paraqitet një sistem i ri pronash për QObject dhe klasa të ngjashme. Nga QML në thelbin Qt do të integrohet një motor për punën me lidhjet, gjë që do të lejojë reduktimin e ngarkesës dhe konsumit të memories për lidhjet dhe do t'i bëjë ato të aksesueshme për të gjitha pjesët e Qt, jo vetëm për Qt Quick;
- Vazhdimi i punës për zgjerimin e mbështetjes për gjuhë të tjera, si Python dhe WebAssembly;
- Ristrukturimi duke e ndarë në pjesë më të vogla dhe duke shkurtuar madhësinë e produktit bazë. Mjetet për zhvilluesit dhe komponentët specialistë do të ofrohen si shtesa, të shpërndara përmes një katalogu të ri dyqani. Për shpërndarje do të pranohen gjithashtu shtesa për Qt nga zhvillues të jashtëm, si falas ashtu edhe të paguara.
Burimi: opennet.ru
