Hmm, mluví se o vylepšení výkonu, ale v poznámkách vydání není vlastně nic konkrétního, jen opravy regresí. Žádný benchmark ničeho.
Takže jo, Qt je rychlejší, ale nikdo to asi nepozná :)
ono to může být skryté zde:
V konfiguračních volbách Qt mohou nově vývojáři detailněji ladit svoji aplikaci, vyhazovat nepoužívané prvky, takže aplikace mohou být s Qt 6.8 až o 77 % menší, spotřebovávat až o 32 % méně RAM a spouštět se viditelně rychleji.
Což mohli dělat už dřív :) Navíc toto vlastně vůbec neplatí pro desktop, takže KDE rychlejší rozhodně s touto verzí Qt nebude, a ani nebude žrát o 32% míň RAM.
Mohli... Ale udělali to až teď a teď se tím chlubí. Někdo mohl udělat tolik věcí...
QT na desktopu vůbec není jen a pouze KDE. Jsou to i jednotlivé aplikace, které to mohou využít, takže se jich to týká taky.
Zprávička není o KDE, ale o QT knihovně. Co a jak KDE používá teď není v tomto kontextu relevantní pro změny v QT.
Jen připomenu, že Qt vydělává na platících zákaznících. Tudíž KDE drží jen kvůli popularitě ve 2% linuxové menšině. A kdo jsou ti platící zákazníci? Třeba naše firma vytváří CAD/CAM software pro statiky (statika budov, mostů, stadionů, ...). Je Windows only mimochodem, takže na výběr byly i Win-only technologie. Naštěstí WPF (Windows Prezentation Foudation) nevyhrál, protože ten už je roky mrtvý.
EDIT: Předchozí verze programu byla ve Windows MFC. Dialogy se "kreslily" v textovém editoru, protože grafický editor ve Visual Studiu je nefunkční. PS: Major verze našeho programu vychází cca jednou za 10 let :-)
9. 10. 2024, 15:13 editováno autorem komentáře
Jo, po tom všichni touží vytvořit si vlastní UI toolkit. Každý C++ dev to asi jednou zkusil, no a pak přijde komerční projekt a sáhne se po Qt.
Ono ani to Qt neni zadny zazrak. Hodne platicich zakazniku od Qt uteklo. Rozsah celeho frameworku je obrovsky a vyvojaru je malo. Jednu dobu Qt chrlilo jednu novou technologii za druhou, bez toho aby fixovali stare bugy.
Napr, pokud mate komercni SW tak asi nechcete aby vase aplikace umrela na SEGFAULT kdyz uzivatel zmackne "CTRL+C" - kvuli nejakemu race condition unitr Qt. Takova chyba tam byla 5+ let.
Qt rozhodne neni idealni, ale zatim je to nejlepsi a nejpristupnejsi multiplatformi framework.
> a pak přijde komerční projekt a sáhne se po Qt.
Záleží, co to je za projekt. Na některé programy může být výhodnější immediate mode (např. Dear ImGui) než retained mode (např. Qt).
Třeba zmíněné Dear ImGui se hodně používá i v komerčních projektech.
ImGui se používá hlavně ve hrách. Tam Qt vůbec není a je potřeba GPU rendering pro celé UI aby to zapadlo do té hry - proto má ImGui různé backendy (OpenGL, DirectX, atd...).
Ale dělat v ImGui klasickou desktop aplikaci, to bych nechtěl.
> Ale dělat v ImGui klasickou desktop aplikaci, to bych nechtěl.
Výkonostně to dává smysl pro aplikace, kde se hodně mění, co je zobrazeno, a layout je spíše jednodušší.
Příkladem jsou nejen hry, ale i modelovací nástroje, nástroje pro VFX. A z jiných oborů pak programy pro monitoring, které zobrazují data z různých senzorů, nebo nástroje pro obchodování na burzách, kde se order booky mění vícekrát za sekundu.
Výhodou je, že v UI omylem nezůstanou obsolete data. Tuhle výhodu má i React, ale pro jednoduché layouty jsou immediate mode knihovny rychlejší.
Jo to potvrzuji -- realtime věci -- ideál. Layout držím jednoduchý stejně, takže mne to neomezuje. Jako se vším, co není mainstream -- nečekám, že tu bude hodně lidí, co to ocení :D. Nevýhody to má jasné, nemůžu to nikomu předat ze dne na den, ale to žádný komplexní projekt.
Což mohli dělat lidi co používají Qt dřív - možnost selectovat features tam byla i před LTS, tak jsem to myslel... Takže to vlastně nic nového nepřináší...
Na Androidu, iOS a dokonce i webu (WebAssembly) máš k dispozici i ostatní jazyky, C/C++, Rust, Python, C#, ... Java je "jen" funkce Main() a z ní voláš DLL s C interfacem.
dik, jen jsem nevedel jak se resi graficke zobrazeni.
nasel jsem info:
https://doc.qt.io/qt-6/android-how-it-works.html
Ok, nevím, jak to má konkrétně udělané Qt, ale viděl jsem příklady, kdy v DLL vykreslíš bitmapu, tu funkce v DLL vrátí do kódu v Javě, a ten ty pixely vykreslí na obrazovku. Nicméně třeba OpenGL (a asi i Vulkan) jdou kreslit přímo z nativního kódu (by default C/C++).
9. 10. 2024, 15:07 editováno autorem komentáře
nasel jsem priklad pro nativni grafiku pro android.
https://github.com/android/ndk-samples/blob/master/native-activity/app/src/main/cpp/main.cpp