Začalo to poměrně nenápadně – objevila se nová „přelomová“ verze aplikace a začala se rozšiřovat mezi uživatele, což přitáhlo pozornost vývojářů, kteří se rozhodli do kódu přispět svými úpravami, aby byla aplikace ještě lepší. Jenže to odhalilo poměrně neradostnou věc – komunita, která nemá jasně dané vedení a nejasný cíl rozvoje, nedokáže jasně nastavit pravidla toho, kdo a jak může do kódu přispívat, což se může (a stalo se) promítnout do aplikace samotné a způsobit její nestabilitu či „nepružnost“.
Co je aplikace Darktable?
Darktable je jedna ze dvou nejpoužívanějších multiplatformních open-source aplikací (konkrétně to jsou již zmíněná Darktable a RawTherapee) pro úpravy fotografií pořízených v tzv. surových datech (anglicky raw data) jako alternativa k profi aplikacím, což jsou např. Adobe Photoshop Lightroom, CaptureOne či Affinity Photo. Zjednodušeně řečeno jde o datový formát, který podporují digitální fotoaparáty (a dnes i mobily), který umožňuje zpracovat data přímo z čipu zařízení a provést úpravy bez účasti software fotoaparátu.
V zásadě celý proces vypadá tak, že vám aplikace umožní pomocí integrovaného správce fotografie naimportovat, provést na nich (vratné) úpravy a následně zkonvertovat do „běžně“ použitelného formátu, jako je např. JPEG. Proces se označuje slovem vyvolání, což je odkaz na chemický proces, kdy se fotografie z filmu přenášely na fotografický papír. I dnes to není úplně „mrtvá“ technologie, stále se používá, ale nejlepší dobu už má za sebou.
Vývoj aplikace započal někdy v roce 2009 a k březnu 2024 se číslování dostalo až k verzi 4.6.1 z února 2024.
Co se děje?
Začalo to nespokojeným fotografem jménem Aurélien Pierre, který pro svou profesionální práci Darktable používá. Navíc je to klavírista, fyzik a matematik a samozřejmě i učitel. Nejenom to, je i vývojářem, který do Darktable přispívá (a je za to finančně podporován). V polovině roku 2022 však došel k přesvědčení, že se vývoj Darktable ubírá někam jinam, než by chtěl. Pokoušel se o tom v komunitě diskutovat, ale nebyl vyslyšen. Možná byl hodně ostrý, ale jeho argumenty mi přišly dobře promyšlené.
Poznámka: Pokud se podíváte na odkazované video, dostanete naprosto konkrétní obrázek toho, co je dle Aureliena špatně a rozhodně při popisu nešetří ostrými slovy. Míra naštvání je hodně veliká, motivace k další akci je také veliká. Opravdu křičí: „Because the code is bullshit!“ a hodně lidí si tím znepřátelil. Jeho přístup je velmi neortodoxní a je mu vyčítáno, že znevažuje práci všech ostatních v komunitě. Je vnímán jako černá ovce bořící práci a zásluhy všech ostatních.
Proto přišlo na řadu velké kouzlo open-source světa – fork. Jednoduše vezmete existující kód nějaké aplikace a vytvoříte si svůj vlastní projekt. Není to jen nějaké přejmenování, ale regulérní samostatný vývoj, kdy přidáváte své vlastní úpravy. Byli jsme toho svědky např. v případě projektu OpenOffice.org a jeho forku LibreOffice nebo redakčního systému Mambo a forku Joomla.
Výsledkem jeho činnosti byl v červnu 2022 projekt nazvaný R&Darktable (zřejmý odkaz na výraz research and development – vývojová laboratoř), který se na konci prosince 2022 ustálil s novým jménem – Ansel. A tím se asi i částečně vysvětluje to číslování – produkt je na stránce opravdu prezentován svým číslem verze 0.0.0 s dodatkem čísla vydání. V polovině března 2024 to bylo číslo 748, ale vychází i denní verze a vývoj je poměrně živý.
Poznámka: Dle domovské stránky je jméno Ansel odkazem na amerického klavíristu a fotografa Ansela Adamse, který je znám svými fotografiemi z amerického západu. Bohužel je jméno zvoleno dost nešťastně, pod stejným jménem existovala aplikace, která je dnes pojmenovaná Picturama, ale hlavně je Ansel aplikací od společnosti NVIDIA, která slouží k pořizování snímků obrazovky z her. Po zadání jména Ansel se vám přednostně nabídne právě aplikace od Nvidie.
Co je v Darktable špatně?
Pokud jste někdy Darktable používali, patrně vám začne vrtat hlavou, co je na něm tak špatného, protože to není nějak znát. Ke spoustě aplikací máme spoustu připomínek, ale není to důvod zakládat vlastní projekty. Jak se ukáže dále, míra frustrace Aurélliena Pierra byla asi dost velká a jeho diskuze uvnitř týmu musely být nekonečné a nikam nevedoucí. V původní zprávě s vydáním verze R&Darktable bylo řečeno, že produkt bude kompatibilní s Darktable 4.0 a jakékoliv úpravy provedené na fotografiích bude možné otevírat v obou aplikacích. Na stránce Anselu najdeme již jasné vyjádření, že Ansel není s řadou 4.2 kompatibilní a nebude. Nůžky se tedy s verzemi řady 4.4 a vyššími rozevřou.
Největší výhrady směřují k tomu, že se v produktu vyskytují dlouhodobě chyby, které nikdo neřeší. Částečně to Auréllien připisuje problémům s použitým kódem a knihovnami. Další zmiňovanou chybou bylo to, že po příchodu verze 3 se kolem produktu strhl obrovský zájem, který přitáhl mnoho dalších přispěvatelů z řad vývojářů, kteří do projektu přispívali „na divoko“, protože se projekt stal svou vlastní obětí. V malém množství lidí bylo možné se domluvit. Ve výrazně větším počtu lidí už se domlouvat možné nebylo a projekt de facto nikdo neřídil. Když tedy někdo poslal nějakou změnu, nebylo jasné, zda tím „nerozbil“ něco dalšího.
Dodávaný kód je někdy nekvalitní, špatně komentovaný a opravy v něm jsou proveditelné hodně těžce. Jednoduše řečeno – příliš mnoho nového kódu (a vlastně i funkcí a postupů) klade mnohem větší nároky na správné vedení projektu, které se ale nedělá. Nejsou jasné vize, není jasný nějaký cíl, není jasný nějaký koncept. Přidávají se funkce, které nemají zásadnější charakter, a používá je jen hrstka lidí. To by nebyl problém, jenže je ten kód často špatný a působí problémy jinde. Celková kvalita projektu se snižuje. Příliš mnoho soustředění se na nové funkce, aniž by někdo pečoval o ty stávající.
Nikdo se systematicky nevěnuje nápravě a efektem sněhové koule se problémy jen nabalují. Navíc ta nekoncepčnost výrazně ztěžuje možnost naučit se s aplikací pracovat, protože je tam příliš mnoho balastu. Protože je Aurélien mužem činu, fork Darktable nejenom udělal, ale snaží se ty všechny nevýhody a nelogičnosti odstranit. Výsledkem toho je, že kód aplikace prošel výraznou revizí. Nepoužívané a špatné věci jsou pryč, proto ta nekompatibilita. Aurélien tvrdí, že z kódu zmizelo 30 000 řádků a dalších 10 000 bylo přepsáno.
Cílem je vytvořit robustní a lépe běžící aplikaci s menším množstvím optimalizovanějších operacemi. Velmi mne pobavilo prohlášení, že se chce „oprostit od toho udělat z aplikace editor Vim na zpracování fotografií, dobře použitelný jen pomocí klávesových zkratek pro pár geeků, kteří je tam implementovali.“
Čím tedy Ansel je a čím není?
Zásadní koncepční změny jsou definovány. První je, že uživatel nemusí číst manuál, aby mohl aplikaci ovládat. Jistě pro zpracování fotografií potřebujete jistý teoretický základ, ale ovládání aplikace by vás nemělo svým návrhem štvát. Další zásadou je fakt, že pokud něco není rozbité, neopravujte to. Nemá smysl donekonečna měnit funkce aplikace, protože by bylo dobré, kdyby to umělo ještě tohle či tamto. Aplikace má vést k tomu, že jí předhodíte vaše fotografie nafocené v RAWu a ona vám pomůže je zpracovat do podoby, kdy si je můžete pověsit na zeď nebo někam vystavit, třeba elektronicky. Co se děje před tím, než vaši fotografii někomu ukážete, není podstatné.
Ansel má fungovat na principu toho, že vy máte nějaký problém – fotka je příliš tmavá nebo zašuměná. K tomu máte dostupné nějaké nástroje. Nezajímá vás, jestli v desítkách parametrů ten jeden konkrétní změníte z 1 na 2. Když ale budete chtít, tak tu možnost máte. Ale jinak vám ji nemusí aplikace cpát pod nos hned, co ji otevřete. Se sadou nějakých předvolených hodnot proces proběhne. Tedy programování dle zásady KISS. Pokud chcete vědět, co přesně bylo odstraněno nebo upraveno, existuje k tomu pěkný seznam. To je samozřejmě vhodné pro ty, kteří již Darktable znají a zajímá je, v čem je Ansel jiný.
Na projektu je jasně cítit, že Aurélien ví, co chce, ví, jak toho chce dosáhnout a cíleně se chová tak, aby toho dosáhl. Je důležité zmínit i to, co Ansel není. Určitě a na prvním místě to nemáme brát tak, že Ansel si neklade za cíl nějak výrazně vylepšit rychlost aplikace. Drobných krůčků je dosaženo optimalizací GUI.
Poznámka: Jak jsem si přečetl na wiki stránce Anselu, například funkce pro filtrování fotografií je v Darktable implementována jako blok s 6 300 řádky. Je to pomalé a dáte mi za pravdu, pokud filtrování používáte. V Anselu provedli optimalizaci a kód přepsali na 580 řádků. Je to opravdu o trochu rychlejší.
Dále je jasně řečeno, že Ansel nemá být začátečnickou aplikací. Cílem je GUI zjednodušit, ale zase ne za cenu jednoduchosti pro začínající a neznalé, fungující jako „blackbox“ a všeobjímající automat. Nemá jít o rozsáhlý komunitní projekt – tohle Aurélien vytýká Darktable. Příliš mnoho lidí, které nikdo neřídí. Poslední podstatnou věcí je, že se nemá jednat o projekt, který přinese nějaké převratné novinky, spíše se bude soustředit na optimalizaci a vylepšení těch již existujících. Jinými slovy to chápu tak, že nikdy nebyl problém s nedostatkem funkcí v Darktable, ale spíše s jejich složitým a nelogickým ovládáním.
Vše bylo sepsáno do „manifestu“ nazvaném „Darktable: crashing into the wall in slow-motion“ tedy volně přeloženo jako „Darktable a jeho náraz do zdi ve zpomaleném záběru“ a ten je dnes brán jako hlavní popis toho, proč vznikl Ansel a proč Auréllien tak bojuje. Je to velmi obsáhlý a podrobný článek, který popisuje proč a jak vznikl fork a jak řeší úpravy. Vše je tak dobře dokumentováno a je popsána motivace.
Na druhou stranu je nutno zmínit, že fork je osobním projektem a může být vnímán (a také že je) jako tzv. one man show. Ve chvíli, kdy se Auréllien přestane Anselu věnovat, celý projekt pravděpodobně zanikne. Proto se hodně lidí do používání Anselu zatím nijak rychle nehrne. Navíc je jeho pověst v komunitě značně kontroverzní, i když jeho přínos do Darktable nikdo nezpochybňuje. Problémem je spíše způsob, jakým to dělá.
Jaké máte možnosti?
Je to poměrně jednoduché. Pokud vám Darktable v poslední verzi 4.6.1 nevyhovuje, můžete se pokusit využít projekt Ansel nebo přejít ke konkurenci s názvem RawTherapee (poslední v březnu 2024 dostupná stabilní verze 5.10 z února 2024 nebo verze vývojová).
Když si nainstalujete Ansel, zaznamenáte několik změn. Celkově je aplikace při práci s ní rychlejší než Darktable tj. práce s rozhraním je opravdu lépe optimalizována. Protože je řada modulů odstraněna a nahrazena jinými, je i rozhraní přehlednější a práce s úpravami fotek je také rychlejší. Musím však říct, že změny jsou někdy trochu větší a musel jsem si na nové rozhraní a novou sadu funkcí, zvyknout. Nebylo to nic složitého, ale nešlo to úplně samo od sebe a intuitivně.
Částečně je to tím, že Ansel je stále vyvíjen a dostávají se do něj změny. Může se tak stát, že některé pokročilejší funkce chybí. Není ovšem nad praktický test. Vzal jsem kolekci 1 000 fotografií, které jsem nafotil na gymnastických závodech a pokusil jsem se provést „vyvolání“ a vyexportovat soubory JPEG. Nejdříve v Darktable 4.6.1 a poté to stejné v rámci aplikace Ansel 0.0.0 r748. Prudce subjektivní hodnocení – Ansel to zvládl s větší grácií.
Umíš to lépe? Můžeš to zkusit
Celá záležitost má několik úrovní. Předně – svět aplikací s otevřeným kódem vám jako nespokojenému vývojáři nabízí bezprecedentní možnost vytvoření své vlastní verze bez nutnosti složitého „handrkování se“ s někým dalším. Tohle klaplo na jedničku. Pokud máte pocit, že něco zvládnete lépe, máte k tomu argumenty a zaujmete další lidi, nic vám nebrání v tom, abyste si vytvořili svůj fork a celému světu ukázali, co jste měli na mysli, tak jako Auréllien.
Oceňuji to, že poté, co se rozepsal o svých výhradách, prostě sedl k PC a tu novou, lepší verzi vytvořil a jasně ukázal, jaké změny provedl a každý má možnost zjistit, jestli mu dá za pravdu nebo ne. Jistě z pohledu uživatelů je to takové problematické, protože mají zmatek v tom, jestli se přiklonit tam, či onde a nový projekt vždy získává uživatele hůře, než ten zaběhlý.
Vyplatí se do budoucna sledovat, kam to Ansel dotáhne. V tuto chvíli je jasné, že se změny patrně nedostanou zpět do Darktable, ale přijde mi, že bude tato nová a přepracovanější verze Darktable životaschopná. Sám jsem v tom rozkročeném módu, kdy ještě nevím, kde zakotvím. Zatím jsem spíše na straně Anselu, ale nemusí to tak zůstat napořád. Pravdou je, že Ansel přidává změny poměrně často a baví mne testovat, co se objeví a jak to ovlivní mou práci na fotografickém procesu. Máte-li podobnou „testerskou“ duši, zkuste Ansel také.
(Autorem obrázků je Svatopluk Vít.)