Qt Developer Days: jaké bude Qt v rukou firmy Digia?

Jan 'Kovis' Struhár 21. 11. 2012

Knihovna Qt, na které je postavené množství open-source i komerčních projektů, nedávno přešla z rukou formy Nokia k firmě Digia. Minulý týden se v Berlíně konala pravidelná Qt konference. Co o dalším směřování a novinkách přicházející verze Qt 5.0 na Qt Developer Days zaznělo?

Preludium

Možná si vzpomínáte, jak CEO Nokie Stephen Elop sugestivně líčil požár na ropné platformě a duševní rozpoložení lidí skákajících z ní, aby posléze nasměroval firmu k mobilní platformě od své původní firmy Microsoft. V tomto uspořádání byly knihovny Qt ve vlastnictví Nokie poněkud přebytečné a vládla nejistota, co s nimi bude. Nokia prodala software za dobrou cenu firmě Digia (zn. Jen do dobrých rukou), která na Qt postavila před mnoha lety svůj byznys a poslední rok měla na starosti komerční zákazníky Nokie a jejich podporu.

Vývojářská konference, pravidelně konaná v první polovině října v Mnichově, se letos nekonala, ale nový majitel a ostatní partnerské firmy (KDAB, ICS) cítili, že by měla být, aby komunita věděla víc, než je v povinně optimistických tiskových prohlášeních.

Firmy vyhlásily, že konference bude a rychle dávaly dohromady její obsah. Berlínská pobočka KDAB našla rychle prostory v retro kavárně Moskva a účastníci se mohli přihlašovat. Bylo jich méně, než na mamutích akcích posledních let, odhadem asi 250, ale rozhodně byli angažovaní.

Budova Cafe Mockau, kde se konference konala

Strategie

Ředitel Digie v záležitostech Qt Tommi Laitinen prohlásil, že skákat z hořící plošiny je pitomost, pokud má člověk kamaráda, který ho zachrání. Nicméně to je záležitost firmy Nokia.Digia věří v budoucnost Qt natolik, že balík koupila, převzala kmenové vývojáře a plánuje pro příští rok investici padesát miliónů euro do jeho vývoje.

Tommi Laitinen z firmy Digia

Vize do roku 2017 zahrnuje následující cíle:

  • být #1 v multi-platform vývoji – pro desktop (Linux/X11, Linux/Wayland, Mac, MS Windows) i pro mobilní platformy (Android, iOS, Blackberry) a v neposlední řadě pro embedded zařízení
  • být #1 v uživatelském prožitku (UX)
  • být #1 pro programátory
  • tvorbu ekosystému a partnerství kolem Qt
  • duální licence tak jako dosud – komerční i (L)GPL
  • otevřená business architektura

Novinky ve verzi 5.0

Přes kotrmelce ve vlastnictví vývoj nové verze 5.0 není příliš opožděný, v průběhu konference vyšla nová beta2 verze, finální release je očekáván v prosinci 2012.

Lars Knoll věští slávu Qt

První a zásadní zpráva o 5.0 je, že je kompatibilní. V 99 % byste měli být schopni přeložit kód, který běhá pod 4.8.x na 5.0. Funguje to například u QtCreatoru. Vývojáři zmiňují, že omylem nechali nastavení proměnných na 5.0 a vesele kompilovali své starší projekty. Kdo nevěří, ať zkusí s veřejnou betou2.

Změny v modulárnosti Qt

Rozdělení tříd balíku do modulů bylo změněno, nejvíc popularity má patrně kompletní odsunutí všech původních prvků UI zvaných widgety z QtGui do modulu QtWidgets. Přibyly moduly pro nový QtQuick2, QtMultimedia, QtQml. Ty jsou součástí vyššího celku zvaného QtEssentials, který je základem frameworku a je vždycky přítomen pro všechny platformy v plné funkčnosti.

Méně povinné a méně multiplatformní moduly jsou v skupině zvané QtAddOns, například:

  • QtDBus pro podporu DBus sběrnice na Linuxu
  • Qt3D
  • QtHelp
  • QtTestlib
  • a mnohá jiná rozšíření, například KDE Frameworks padnou do této kategorie

QtQuick 2.0

Zatímco původní QtQuick bylo založené na QGraphicsView, tato verze běží na akcelerovaném OpenGL s daty ve SceneGraph. Změny v kreslení se dějí skrze manipulaci v grafu scény, nekreslí se už QPainterempaintEvent().

Jako pohon skriptování se používá rychlý JavaScript V8 engine z WebKitu.

Proto by jako celek uživatelské rozhraní s QtQuick2 mělo být rychlejší, plynulejší, animovanější a je velmi prosazováno. Zejména škálování textu má být velmi rychlé, ale také práce s particle efekty.

Změny v QtCore

Na prvním místě se sluší uvést nový slot-signál mechanismus, který je typově bezpečný! Dá se dokonce připojit lambda funkce k signálu! Více na qt-project.org.

Dosud regulární výrazy v Qt byly tak trochu samorosty, téměř naprosto ale ne zcela nepodobné v syntaxi jiným etablovaným regulárním výrazům. Teď jsou postavené na knihovně PCRE, takže jsou zcela Perl kompatibilní.

Přibyl velmi potřebný JSON support, také podpůrné třídy pro MIME typy, třída QStandardPaths pro cesty obvyklé u dané platformy.

Změny v QtNetwork

Nová třída QDnsLookup, zlepšená podpora IPv6, zlepšená podpora SSL.

Otevřenější OpenGL pipeline

Do procesu vykreslování se dá vstupovat s programovatelným vertex a fragment shaderem, můžete mít snadno efektní OpenGL underlay nebo overlay ve své QtQuick obrazovce.

Podpora C++11 standardu

Nové konstrukce jsou použity v kontejnerech a inicializaci stringů, prostá kompilace pod C++11 kompatibilním kompilátorem by měla přidat na výkonu o dobrých 10%.

WebKit2

Nový Webkit používá renderování v separovaném procesu, takže renderer neblokuje ani neboří uživatelské rozhraní, ale pluginy a propojení do něj musí být změněno oproti předchozí verzi.

Wayland a jeho kompozitory

Nový standard pro grafické prostředí na UNIXech je bedlivě sledován, Qt obsahuje třídy pro práci s ním v add-onu QtWayland a QtCompositor.

Není podporován Symbian

Kdo ho potřebuje, musí použít řadu 4.8.x.

Qt roadmap pro rok 2013

Od příštího roku se přechází na časové uvolňování nových verzí – jarní a podzimní, cokoliv v tu dobu bude hotové a otestované, stává se obsahem verze.

Vývojáři Digie jsou nadšení z toho, že jim Nokia nesvazuje ruce od ne-Symbianových směrů vývoje a dravě se pustili do potlačovaných témat. Smělých plánů pro rok 2013 je mnoho. Programátoři si sice ve verzi 5.0 uvolnili snazší cestu pro rozšiřování skrze implementaci QPA (Qt Platform Abstraction) interface, který přidání další platformy usnadňuje, ale posuďte sami, jak náročné cíle si předsevzali.

Primární platforma je intenzívně testovaná, verze není uvolněná dokud neprojde testy na všech primárních platformách

Android jako primární platforma

Průkopnická práce Bogdana Vatry s balíkem necessitas prezentovaným na konferenci loni došla velkého uznání a bude tvořit základ pro Android platformu, její hlavní tvůrce se pak stává hlavním maintainerem.

Blackberry 10 jako primární platforma

V posledních měsících se množily v repository Qt project commity od firmy RIM. To dávalo tušit, že se něco děje.

Commity do Qt projektu

Na konferenci byl aktivní stánek společnosti ResearchInMotion (RIM), kde evangelizovali a odměňovali vývojáře, kteří se zavázali k přenesení své mobilní aplikace na Blackberry 10. V omezené míře (do Androidu 2.3) jsou schopni pojmout i androidí aplikace, v novém development kitu pro platformu BlackBerry10, který má vyjít v lednu 2013, pak budou Qt jako plnoprávná alternativa. Nová generace smartphonu byla vystavená na stánku a vypadal velmi dobře (mnozí efektové).

Snad jim to bude co platné.

iOS jako primární platforma

O tom se moc nemluvilo, ale patrně už je slušně rozjeto, tím spíš že i Apple pracuje na konvergenci svého operačního systému pro desktop i mobilní platformu – což by ve výsledku představovalo jen jednu platformu.

Desktop komponenty pro QtQuick

Vývoj v prostředí QtQuick na desktopových platformách trpěl nedostupností základních prvků – tlačítko, scrollbar, všechno si člověk musel od základu udělat sám. Tyto komponenty byly jenom pro Symbian a MeeGo/Harmattan.

Komponenty pro desktop jsou hezké a funkční, ale v produkční kvalitě ještě nejsou a objeví se až v některém z dalších vydání, patrně hned v jarním 5.1. Časní zájemci (třeba já) je použijí přímo z repozitáře Qt projectu.

Snazší propojitelnost aplikací

Cílem je, aby integrace Qt aplikací s externími zdroji všeobjímajícího internetu byla snazší. Základní kameny jsou dostupné a viděli jsme řadu demonstrací propojení Qt aplikací na webové služby Google (od ICS), Twitter, Facebook přes QNetworkAccessManager a OAuth autentizaci přes SSL socket, ale něco integrovanějšího a připraveného pro časté případy by samozřejmě neškodilo přímo od výrobce.

Je ovšem třeba říci, že více standardizace v oblasti autentizace by bylo dobré, protože se zdá, že každá služba si ji vynalezla pro sebe.

Win8 WinRT

Qt programy běží samozřejmě normálně ve Win8 desktopu, vývojové laboratoře ale samozřejmě zkouší proniknout i do Metro/Modern kachliček. Už se jim povedlo zobrazit několik pixelů, ale od hotového řešení jsou ještě daleko.

Posilování infrastruktury a nástrojů

Digia se chce více zaměřit na podporu klientů při instalaci a správě software, podporovat při vytváření balíčků pro AppStore té které platformy

Pracují také na nástupci stávajícího qmake nástroje zvaného qbs (QtBuildingSystem), který dosahuje vyšší flexibility použitím JavaScriptu.

Opuštěné moduly

Šéf vývoje připouští, že bude mít méně lidí a některé moduly přestanou být rozvíjeny, jedná se o

  • QtSvg – neodpovídá žádné SVG specifikaci
  • QtXml – v QtCore jsou modernější XML parsery než SAX
  • QtXmlPatterns – komplikované a nepříliš používané
  • QtScript a scripting tools – přechází do QML

KDE Frameworks

V souvislosti s přechodem KDE prostředí na Qt5 se několik vývojářů zamyslelo nad tím, proč KDE knihovny nejsou používané mimo KDE. Protože se nedají použít izolovaně!

Proto se několik (tři) z nich rozhodlo, že v knihovnách udělají pořádek, změní strukturu závislostí a vyextrahují použitelné komponenty, pokud možno jako Qt-Addons.

KArchive

Podpora pro ZIP/gzip kompresi a dekompresi ze souboru, socketu, bufferu.

Sonnet

Spell checking používající plugin pro existující instalaci programu aspell, hunspell. Podpora pro highlighting chybných slov v QTextEdit.

Solid

Detekce dostupného hardware, napájení, stavu síťového subsystému, CPU, bluetooth

ThreadWeaver

Tato zajímavá komponenta je v KDE už nějakou dobu, představuje navzájem závislé úkoly, které se mají zpracovat ve vedlejším threadu/threadech. Zpracovávat pomocí QtConcurrent složitější úlohu o více souvisejících krocích je náročné na pozornost a náchylné k chybě. ThreadWeaver to ohlídá za vás. Dostane popis jobů, spouští je ve správný čas a průběžně informuje o stavu zpracování.

Práce na KDE Frameworks je v běhu a je zatím schovaná v git repozitáři kdelibs. Předpokládané vydání bude někdy na jaře 2013. Stránka jejich projektu je v zárodečné formě na inqlude.org.

GammaRay vizualizace stavového stroje

Pro všechny, kdo programují s Qt je zajímavý domain specific debugger GammaRay od KDAB, který má velmi pohlednou novou vlastnost: vizualizace práce stavového stroje v debugované aplikaci.

Pomocí nástroje pro kreslení grafů dot se nakreslí layout stavů stroje a on-line se ukazují přechody a stavy stroje.

GammaRay ukazuje stavový stroj semaforu z example programů Qt

Panelová diskuse o budoucnosti Qt

Po dobu konference se davem pohyboval i „BigTroll“, otec spoluzakladatel Qt knihoven Eirik Chambe-Eng a bavil se s ostatními veterány. V závěru konference pak moderoval panelovou diskusi se zástupci konferenci pořádajících firem.

Zleva doprava: Peter Winston (ICS), Tommi Laitinen (Digia), Kalle Dalheimer (KDAB), Cornelius Schumacher (KDE)

Všichni zúčastnění měli radost, že konference vůbec byla a že Nokia několik let štědře financoval vývoj, aby pak uvolnila místo u kormidla pro další vývoj pro desktop a jiné mobilní platformy.

Tlumočili pocit, že řízení mají zase více v rukou vývojáři, jako ho mívali v časech Trolltechu. Tím spíše, že Qt je už rok vyvíjeno v otevřeném modelu vývoje v QtProjectu.

O budoucnosti samotné si nikdo netroufal mluvit vzhledem k překotnému vývoji technologií, zdůraznila se jen role cloudu a sítí, spekulovalo se o tom, že možná žijeme v době přechodu od klávesnice a myši k jiným formám ovládání software.

Hlavní závěr byl ten, že knihovna půjde tam, kam to bude zapotřebí, podle toho, co vývojáři, kteří ji používají, potřebují.

O zábavu nerdů i geeků bylo postaráno

Provětrat hlavy bylo možno kdykoliv u fotbálku.

widgety

Partie fotbálku v barvách Qt

Ovšem pro hlavní společenský večer pořadatelé nasadili silnější kalibr – domluvili se s nedalekým Muzeem počítačových her a rázem jste se ocitli v seriálu historie počítačových her, ale naživo. Staré pecky zaujaly asi všecky.

Nostalgici z ciziny a nostalgici z bývalé DDR vzpomínají na mládí

Lara Croft v životní velikosti zvala ku hře

Vektorové konzole jsou stejně pořád nejlepší

A kromě toho hrála v music clubu jazzově-metalová živá hudba.

Našli jste v článku chybu?
Vitalia.cz: Když bílkoviny, tak jíme ty nekvalitní

Když bílkoviny, tak jíme ty nekvalitní

Podnikatel.cz: Udělali jsme velkou chybu, napsal Čupr

Udělali jsme velkou chybu, napsal Čupr

Vitalia.cz: Muž, který miluje příliš. Ženám neimponuje

Muž, který miluje příliš. Ženám neimponuje

Vitalia.cz: dTest odhalil ten nejlepší kečup

dTest odhalil ten nejlepší kečup

Vitalia.cz: Ošklivá zelenina s 10% slevou? Není to málo?

Ošklivá zelenina s 10% slevou? Není to málo?

DigiZone.cz: Numan Two: rozhlasový přijímač s CD

Numan Two: rozhlasový přijímač s CD

Lupa.cz: Jak levné procesory změnily svět?

Jak levné procesory změnily svět?

Podnikatel.cz: Byla finanční manažerka, teď cvičí jógu

Byla finanční manažerka, teď cvičí jógu

DigiZone.cz: Světový pohár v přímém přenosu na ČT

Světový pohár v přímém přenosu na ČT

DigiZone.cz: DVB-T2 ověřeno: seznam TV zveřejněn

DVB-T2 ověřeno: seznam TV zveřejněn

Vitalia.cz: Tradiční čínská medicína a rakovina

Tradiční čínská medicína a rakovina

Podnikatel.cz: „Lex Babiš“ Babišovi paradoxně pomůže

„Lex Babiš“ Babišovi paradoxně pomůže

DigiZone.cz: Rapl: seriál, který vás smíří s ČT

Rapl: seriál, který vás smíří s ČT

Vitalia.cz: 5 chyb, které děláme při skladování potravin

5 chyb, které děláme při skladování potravin

DigiZone.cz: Technisat připravuje trojici DAB

Technisat připravuje trojici DAB

120na80.cz: Co je padesátkrát sladší než cukr?

Co je padesátkrát sladší než cukr?

120na80.cz: Galerie: Čínští policisté testují českou minerálku

Galerie: Čínští policisté testují českou minerálku

DigiZone.cz: Nova opět stahuje „milionáře“

Nova opět stahuje „milionáře“

DigiZone.cz: Digi Slovakia zařazuje stanice SPI

Digi Slovakia zařazuje stanice SPI

Vitalia.cz: Jak Ondra o astma přišel

Jak Ondra o astma přišel