Hlavní navigace

Problém dlouhodobé koncepce při otevřeném vývoji

30. 4. 2009
Doba čtení: 5 minut

Sdílet

Většina tvůrců softwaru, kteří to se svými díly myslí vážně, vymýšlí a snaží se plánovat středně a dlouhodobé vývojové koncepce a strategie. Má však takovou strategii i GNU/Linux a otevřené projekty obecně? Jak by taková koncepce měla vlastně vypadat? V čem je v této oblasti aktuální problém?

K napsání tohoto textu mě přimělo několik debat se dvěma uživateli Linuxu, kteří kromě onoho atributu, že Linux používají, neměli společného prakticky nic. Na straně jedné stál pokročilý uživatel, dokonce tak pokročilý, že staví svůj vlastní Linux from Scratch, na straně druhé člen managementu toho, co bychom označili za středně velkou firmu, mající ve své kompetenci mimo jiné strategické rozhodování o operačních systémech. Z obou dvou debat vyplynula společná, a poměrně důležitá otázka. Částečně jsem ji naznačil již v podtitulku.

Software a jeho plánování

Tvůrci běžného komerčního softwaru pracují při koncipování své činnosti obvykle se dvěma zcela nezávislými, ale vzájemně se skvěle doplňujícími koncepty. Prvním z nich je obecná charakteristika toho, co chtějí (v určité časové perspektivě, a pak také obecně v ideální budoucnosti) dosáhnout. Tento koncept lze charakterizovat velmi stručně, například konstatováním „do dvou let získáme polovinu trhu našeho produktu“.

Aby bylo možné vysněné ideály naplnit, či se jim alespoň v hrubých rysech přiblížit, je nezbytné cestu k nim rozfázovat na velké množství menších kroků. Zatímco samotná koncepce může být poměrně vágním prohlášením, popis jejího řešení má podobu velmi konkrétních krátko-, středně- a dlouhodobých plánů a kroků v jejich rámci. Tyto nástroje můžeme vídat v podobě různých cestovních plánů, organizace vývoje, verzování, tranzitu obchodních přístupů a podobně.

SeaMonkey plán

Plány pro SeaMonkey

Je zřejmé, že k úspěchu softwarového produktu je nezbytně nutné mít obojí. Dlouhodobou, byť jen slovně a vágně formulovanou vizi, a následně velmi přísnou konkretizaci jednotlivých kroků v rámci naplňování stanovené koncepce. Aby se mohl produkt rozvíjet ku prospěchu (a k radosti) jeho autorů i uživatelů, musí v prvním ohledu, tedy u obecné koncepce, panovat vzájemná shoda a u druhého, u konkrétních kroků, vynutitelná disciplína.

Ve světě komerčního softwaru je obojímu věnována velká pozornost. Hlavní dodavatelé operačních systémů a stěžejních produktů mají precizně formulované dlouhodobé koncepce a jim odpovídající cestovní mapy. Tam, kde je do koncipování cílů a rozvoje nutné zapracovat faktor náhodných a v čase proměnlivých vlivů (typickým příkladem mohou být účetní programy), jsou vytvářeny alternativní cesty a dílčí cíle, respektive koncepce podle toho, kterým směrem bude nejvýhodnější, případně nutné se vydat. Optimálně stanovená strategie a správně formulovaná cesta k ní je považována společně s vlastním know-how za stěžejní bod úspěchu.

Jak je na tom Linux?

Tvůrci linuxových distribucí a jednotlivých komponent, jež je tvoří, používají velmi podobné metody koncipování jako ostatní softwarové firmy. Rozdíl spočívá v tom, že jejich plánování se týká pouze jejich produktů. Pokud jde o firmy produkující ucelené operační systémy (jako je například Red Hat), dosažení jejich cílů je značně vázáno na dosažení cílů autory jednotlivých komponent (např. Gnome), kteří se však nacházejí mimo jejich plánování a nejsou jimi bezprostředně ovlivnitelní. Jakákoli vize, respektive jakákoli koncepce cíle a rozvoje systému však zůstává pouze a jedině u jejich produktu.

Koncepce autorů jednotlivých komponent sice neovlivňují konkrétní operační systém bezprostředně, ale zato mají vliv na velké množství různých systémů nepřímo (v návaznosti na to, co bylo popsáno výše). Někdy přitom jsou ve vzájemném nesouladu, nebo jejich cíle jsou dokonce protichůdné. Svorníkem mezi nimi by měli být tvůrci distribucí, avšak jejich plánování má nevelký, a především nepřímý, vliv na směřování operačního systému Linuxu – GNU/Linuxu jako takového. Hovořit o „cestovní mapě“ či sledu verzí u komplexu Linuxu je přitom z pochopitelných důvodů nesmyslné (nejde o konzistentní produkt). Dlouhodobá koncepce (spojená s vizí) by však u Linuxu existovat mohla, přinejmenším v jednotlivých segmentech jeho použití. Mohla by být založena na dohodě tvůrců distribucí a rozvoji systému by mohla pomoci…nebo také ne.

Kupředu – zpět

Ve světě uživatelů Linuxu se, pokud jde o možnost jeho dlouhodobého koncipování, lze setkat s různými názory. Jmenujme dva, které jsou zcela protichůdné, a které se oba vztahují k jednomu agregátu světa svobodného operačního systému – k Linuxu v prostředí desktopového počítače.

Koncepce první: Linux jako levnější, ale plnohodnotná alternativa k Microsoft Windows na pracovních stanicích. Její naplňování by vyžadovalo, aby se nejenom tvůrci distribucí, ale také mnoha komponent a jednotlivých aplikací soustředili na vývoj určitým směrem – snazší správa, vyšší stabilita aplikací, nižší systémové nároky, vyšší odolnost proti chybám, lepší (a lokalizovaná) uživatelská dokumentace. To vše by znamenalo takřka nevyhnutelně pracovat na úkor některých jiných vlastností. Utrpěla by pravděpodobně variabilita, množství uživatelských nastavení, koncepce programů by musela směřovat ke zjednodušování. Mnoho nástrojů by muselo opustit hojně používanou strukturu – aplikace v příkazové řádce + uživatelský shell.

Koncepce druhá: Linux, jako stavebnice, kterou si každý uživatel sestaví dle sebe. Vhodný jako hobby a zajímavost, nevhodný jako náhražka kvalitního a univerzálního systému od Microsoftu. Je zřejmé, že toto směrování je přesným popřením předchozího, prvek alchymie se v něm stává srdcem pokroku, hostilita vůči uživateli je nutným faktorem milionů drobných konfiguračních nuancí. Pro větší organizaci či pro koncového uživatele – laika nepoužitelné.

Realizace kterékoli zde uvedené koncepce v tom duchu, že by se na ni přední dodavatelé distribucí a tvůrci komponent shodli, by patrně Linuxu v obou případech ubrala část jeho kladných vlastností. Jejich protichůdnost je tak vlastně ilustrací, že aby byli spokojeni autoři obou názorů, centrální koncipování vývoje ani na úrovni shody hlavních tvůrců existovat nemůže. Je to však pro systém dobře?

CS24_early

V hrubých rysech

Osobně se domnívám, že nikoli. Linux, alespoň na úrovni konkrétních míst jeho použití, by jednotnou, alespoň přibližně dodržovanou koncepci vývoje potřeboval přinejmenším z toho důvodu, aby se udrželo jeho směrování. Existují pokusy o takovouto koncepci alespoň na úrovni funkčních celků. Existuje sdružení Free Desktop, existuje standard LSB.

První ani druhá organizace si však nedává ambici snažit se navrhnout, co by měl vlastně Linux umět, kam by měl směřovat, a co by mělo být jeho cílem. To je přitom poněkud v rozporu s původními ideály tvůrců GNU, totiž vytvořit plnohodnotně použitelnou alternativu komerčního Unixu dostupnou zadarmo. Podobný cíl, navržený alespoň pro jednotlivé agregáty použití, by byl dnes, alespoň v hrubých rysech, velmi užitečný všem.

Byl pro vás článek přínosný?

Autor článku

Autor je odborný publicista, sociolog a vysokoškolský učitel, zabývá se technologiemi, veřejnou, politickou a mediální komunikací.