Zapomeňme už na X11, budoucnost je Wayland, říká vývojář KDE

29. 12. 2023
Doba čtení: 8 minut

Sdílet

KDE Plasma a Kickoff menu v červenci 2021 Autor: Nate Graham
KDE Plasma a Kickoff menu v červenci 2021
Nate Graham by rád co nejdříve pohřbil éru starého okenního prostředí X11 a konečně se posunul dále do moderní doby. Většinu kritiky zastánců X.Org považuje za irelevantní, Wayland je budoucnost.

Wayland je špatný

Na Wayland se přechází, o tom už nepochybuje asi ani hlavní vývojář X.Org Serveru (pokud někdo takový ještě reálně takovou funkci vůbec plní). Ale přesto se s Waylandem stále táhnou dogmata, která si vykoledoval v době před mnoha lety, kdy byl v nepoměrně ranější fázi vývoje. A jak nám KDE Plasma pomalu míří k šestkové verzi, která na Wayland přejde, Nate Graham trochu zacloumal svým majestátem a k Waylandu se opět obsáhleji vyjádřil. A povídání je to poměrně zajímavé.

Začíná tím, že připomíná tradiční dogma, že Wayland vše rozbíjí, což je úvodní hláška vývojáře probonopd na jeho GitHubu, kde velice detailně vysvětluje, proč by měli vývojáři dvakrát přemýšlet, než z X.Org přejdou na Wayland. Wayland prý neřeší žádné problémy, ale rozbíjí prakticky vše [co on/vývojář potřebuje]. To asi hnulo Natu Grahamovi žlučí. Jednu výhodu ale tento soupis hříchů Waylandu má: autor v něm nemaže, ale škrtá položky, které už neplatí. Takže třeba jednoho dne dojdeme do bodu, kdy bude seznam proškrtán více, než dnes a zbude nic, nebo jen irelevantní položky.

Na čem provozujete linuxový desktop?

Ale k věci. Nate uvozuje zásadní myšlenku: nadpis onoho soupisu je vlastně pravdivý. Wayland opravdu rozbíjí vše… co závisí na funkcionalitě X11. Já dodávám: bylo by divné, kdyby ne.

Vývojář probonopd zkrátka na věc nahlíží jednou perspektivou a podle Nata perspektivou chybnou.

Wayland není špatný

Optika „Linux rozbíjí Photoshop [tj. Photoshop nefunguje na Linuxu], měl bys používat Windows či macOS“ je prostě chybná. Photoshop není vytvářen pro Linux a tak to těžko Linuxu vyčítat. Linux je v tom nevinně, řešení tohoto hypotetického problému je na bedrech Adobe, tvůrce Photoshopu.

Stejně tak Wayland není vytvořen, aby byl 1:1 náhradou za X.Org. Ostatně jaký by mělo smysl něco takového vytvářet? Odpověď netřeba.

Avšak ač Wayland nebyl vytvořen jako přímá náhrada za X11, jeho cílem je nakonec většinu rolí, které X.Org plní, převzít. A že v sobě nezahrne veškerou funkcionalitu X.Org, je jedině dobře, neboť jak tvrdí Nate

X11 byla špatná platforma

Za starých dobrých časů byla X11 kompletní vývojová platforma. Aplikace prostě cílila na X11 a X11 jí poskytovalo vykreslování svým widget toolkitem, tisk dokumentů svým tiskovým serverem, nahrávání obrazovky, globální klávesové zkratky atd. Jenže to nefungovalo dobře.

Jak tvrdí Nate, zabudovaný UI toolkit vypadal hrozně, a to i vůči dobovým standardům. Aplikace požadující nějaké zdroje si je vydupávaly jedna vůči druhé a vzájemně si svou funkčnost narušovaly a bylo prakticky nemožné tohle chování záplatovat jinak než odinstalací jedné z těchto hádajících se aplikací. Vlastnosti jako tisk pomalu zahnívaly prostě proto, že řešit toto správcem oken je špatné místo, kde to řešit a později už tento kód ani nikdo nechtěl udržovat. A tak dále, píše Nate.

Rychle tak vyrostly jiné UI toolkity jako Qt a GTK, které začaly tvořit jistou vrstvu mezi Xkami a aplikacemi. Vrstvu, která fungovala lépe, na kterou se snadněji vývojářům cílilo. Bavíme se zhruba o polovině 90. let.

Nate férově přiznává, že vypichuje marginální připomínky kritiků Waylandu. Na Waylandu typicky nikomu nechybí tiskový server, spíše je trápí věci kolem uživatelských ikon a přesouvání vlastních oken – zde Nate ale dodává, že tohle je těžká věc, kterou Wayland neumí, neb na X11 si to typicky aplikace zneužívaly po svém a vedlo to k neřešitelným problémům. Takže tohle je možná jedna z těch obětí na oltář kvalitativně architektonicky lepšího zobrazovače oken. Ale může to představovat problém pro vývojáře i uživatele, že najednou tuhle věc, na které jejich aplikace závisí, nový kompozitor prostě neimplementuje.

S dalšími hráči přišla fragmentace trhu

Logicky s příchodem dalších UI toolkitů přišla fragmentace na trhu. Místo vývoje pro jedinou správnou platformu X11 jsme najednou měli tu vývojáře vyvíjejícího pro Qt, tu vývojáře preferujícího GTK či cokoli jiného. A vznikl fenomén „KDE aplikací“ a „GNOME aplikací“. Časem sice bylo stále lépe a lépe možné provozovat GTK aplikace na Qt desktopu či Qt aplikace na GTK desktopu, ale jak všichni víme, vždycky se líp žilo s nativními aplikacemi námi zvoleného UI, kde prostě nebyly problémy se zobrazováním ikon, menu či jiných věcí.

Tento nekonzistentní stav však trvá dodnes. A už v podstatě nikdo dnes nepíše ryzí X11 aplikace. Typicky se dnes použije Qt, GTK či přímo věci jako KDE Frameworks a je vyřešeno. To Nateho přivedlo k výbušnému tématu.

Linux není platforma, co je ta skutečná?

Linux jako takový prostě není platforma, na kterou vývojář cílí. Prakticky nikdo nepíše ryzí linuxové aplikace za pomoci kernelových systémových volání apod. Tohle se řeší přes nějaký UI toolkit, který umí udělat pro vývojáře onu abstrakci, že danou věc pak správně překlopí nejen pro Linux, ale třeba pro Windows, macOS, BSD, specificky Android (což je v mnoha klíčových aspektech Linux) či cokoli tomu podobného.

Nate si tak nemyslí, že by byla ztracena naděje na mezi-desktopovou interoperabilitu. Naopak považuje výhled za lepší než dřív, a to díky generačně novým věcem, které právě tuhle abstrakci pro vývojáře i uživatele zařizují. Jmenovitě uvádí Portals, PipeWire, a Wayland protocols.

Zatímco Probonopd v tomto vidí problém, který bychom raději ve svém systému neměli mít, Nate v tom vidí naději. Konstatuje, že model monolitického okenního serveru, který zařídí kompletně vše, selhal už před desítkami let. Na jeho místo nastoupily knihovny či aplikační rozhraní, u kterých dnes může vývojář předpokládat, že budou běžet v systému každého uživatele. Stejně jako webový vývojář může předpokládat, že každý uživatel má prohlížeč schopný si poradit s HTML + JS + CSS.

Systém portálů nabízí standardizovanou cestu k prezentování platformě nativních dialogů pro otevření či uložení, posílání notifikací, otevírání dokumentů v jiných aplikacích, tisku dokumentů, pořizování screenshotů, nahrávání obrazovky, nakládání s drag&drop, zjišťování světlosti/tmavosti tématu desktopu a tak dále. Vývojář tak v klidu může portály využívat a počítat s jejich podporou, ať už uživatel používá to či ono desktopové prostředí.

Stejně tak může předpokládat, že většina Wayland kompozitorů (hlavně tedy KDE/KWin a GNOME/Mutter) podporují prakticky všechny standardizované Wayland protokoly.

No a právě tohle vše dohromady – Portals-Wayland-PipeWire – považuje Nate za to, čemu bychom skutečně měli říkat platforma [pro kterou se vyvíjejí aplikace]. Nemá to žádné úderné jméno, žertovně navrhuje PW², ale nezávisle na jménu, pokud vývojář použije tuhle „svatou trojici“, nebude řešit, že by 99,99% uživatelů jeho aplikace nefungovala. Co je po jméně? Co růží zvou, i zváno jinak vonělo by stejně.

Proč zas a znovu?

Slyšíme teď opět více kritiku na adresu Waylandu prostě proto, že přechod z X.Org na Wayland je v závěrečné fázi a běží naplno. KDE Plasma 6.0 přejde na Wayland za dva měsíce, GNOME přešlo už dávno – první byla myslím Fedora 25 před více než 7 lety a nyní se Fedora připravuje na kompletní odstranění X11. Je tak logické, že se začínají vynořovat úzce specifické potíže u lidí, kteří o tomto přechodu třeba ani neměli tušení a najednou jim něco nechce fungovat, jak byli zvyklí.

Nate je rád, že to tu konečně je, sám by byl ještě raději, kdyby tahle fáze už proběhla v minulosti. Ony se také věci stále u Waylandu posouvají vpřed, třeba právě v oblastech jako vzdálená správa, podpora grafických tabletů, správa barev, pozicování oken atd. Nate očekává jistou divnou fázi, kdy si vše bude definitivně sedat a většina těchto nyní hlášených problémů se vyřeší, nebo zmizí zcela. Zatím snad nikdo kromě Fedory nepřijímá aktivní kroky k odstranění nativní podpory X11.

Takže zkrátka „Wayland vše rozbíjí“ je vlastně jen ostřejší nepřesná formulace toho, že „ne všechno je už portováno“. Však Wayland nebude portovat 100 % funkcionality X11 / X.Org, ale překladová vrstva XWayland je tu s námi i nadále a vše, co potřebuje hlubší propojení do systému, má k dispozici výše zmíněnou „svatou trojici“.

Změna paradigmatu není a priori špatná

Čím je člověk starší, tím je větší konzervou. Vzpomínky má stále živé, ale postupně poztrácel ty negativní. Takže často má na X11 lepší vzpomínky, než jaká byla realita a ve skutečnosti by dnes třeba byl spokojenější s Waylandem. A to, co je dobré pro manželství, vždy v partnerovi ještě trochu vidět tu mladou novou neokoukanou verzi, i kdyby bylo o 60 let později, zde tedy spíše škodí.

Bývaly doby, kdy výplata byla 2 000 Kč a hudební album stálo 500 Kč na CD či 350 Kč na MC. LP se jednoho dne poškrábalo, MC kazeta zmuchlala, CD začalo odlupovat. Dnes tu máme služby jako Spotify, které jsou daleko levnější a 100% bez degradace, ale přesto existuje trh s eLPíčky apod.

Stále se budou dobře a draho prodávat staré Škodovky, jakkoli jsou pomalé, neefektivní, čmoudící, netopící, prorezlé, zatímco téměř bezúdržbová nová auta prostě nemají to kouzlo dávného, kdy už si člověk nevzpomene, jak v eMBéčku „vařil“, protože ty negativní vzpomínky prostě odvál čas a v paměti zůstaly pocity spíše pozitivní.

Ostatně který šéf FAA to byl, jenž kdysi hlásal, že pouze přes jeho mrtvolu budou létat méně než třímotorové stroje přes Atlantik? A kolik motorů dnes mají letouny, které vozí cestující na druhý konec planety?

Nebojme se změny paradigmatu. Wayland je prostě jiný a je to tak jedině v pořádku. Zatím ještě nefunguje stoprocentně, ale to se stále zlepšuje. A jestli nějaká starší obskurní aplikace od jednoho vývojáře začíná zlobit a to i na XWaylandu, tak přece se kvůli tomu nezastaví celý linuxový svět a nebude se hrabat v bezpečnostních problémech, kterými je X.Org prolezlý.

Pojďme se posunout dál, přijmout Wayland i PipeWire a na hrátky se starými verzemi distribucí s X.Org si vyčleňme virtualizaci nebo nějaké levné staré repasované železo z před-UEFI éry. Protože jestli něco mě osobně už „neba“, tak je neustále psaní o tom, jak zase o kousek pokročila podpora Waylandu v KDE. Ať už je konečně hotovo a nezabýváme se tolik nějakou technologií v pozadí, která by měla prostě fungovat a vlastně o sobě nijak nedávat vědět.

ict ve školství 24

Dovolte mi tedy závěrem roku popřát všem vývojářům KDE, ať už to konečně mají za sebou, vydají šestkovou Plasmu a konečně přejdou do spíše údržby a na X.Org mohou začít pomalu zapomínat. Bylo to fajn, ale bylo toho dost. A stejně jako jsem jednoho dne s klidným srdcem zdigitalizoval všechny své MC kazety a VHS kazety a už se neohlédl zpět, jsem jednoho dne přepnul GNOME z X.Org na Wayland a vyhlížím už jen vpřed. 

Vyhlížím 28. února 2024, kdy vyjde KDE Plasma 6.0 běžící ve výchozím nastavení na Waylandu. X.Org jsem díky GNOME opustil už před lety a rád si stejného dopřeji s KDE Plasmou.

Autor článku

Příznivec open-source rád píšící i o ne-IT tématech. Odpůrce softwarových patentů a omezování občanských svobod ve prospěch korporací.