GoSuda

Politika a počítače

By snowmerak views ...

Filozofie

Co si myslíte, že je filozofie? Slovníková definice ji popisuje jako činnost, při které se člověk zamýšlí nad životem a základními otázkami světa a hledá na ně odpovědi. Lze však také zavést behaviorální definici, podle níž jde o to, že se myšlení rozšiřuje prostřednictvím stejné otázky nebo řady navazujících otázek, které se jeden za druhým vynořují, a tyto odpovědi se pak sdílejí, nikoli o řešení úloh s předem danou odpovědí.

V minulosti, když jsem absolvoval bakalářské studium, jsem navštěvoval předmět související s politickou filozofií. Tehdy mi při představování se profesor řekl něco podobného jako: politická filozofie a informatika jsou obory, které stojí na protilehlých vrcholech různých filozofií. Přesná slova a věty to nebyly, ale zhruba to znamenalo totéž.

Informatika

Informatiku považuji za základní zkoumání k řešení logických problémů. Proto na jakýkoli problém může každý, kdo o něm přemýšlí, přijít s různými odpověďmi. Nejtypičtějším příkladem je řazení. Při zkoumání způsobů, jak seřadit stejná seřazená data, existuje mnoho přístupů, například bublinové, vkládací, výběrové, slučovací, rychlé, haldové, timsort a další. A dělením problému vznikají stále lepší algoritmy.

Z lokálního pohledu lze také říci, že se jedná o tvorbu a dokazování. Právě i u výše uvedeného řazení se neustále vytvářejí způsoby, jak data seřadit, a výsledky se dokazují. Vývojářům lze přiblížit tuto oblast tak, že když přijde projektový návrh, implementují ho a dokazují, že funguje bez chyb.

Politická filozofie

Politickou filozofii považuji za základní zkoumání k řešení společenských problémů. V každé době se opakovaně kladou otázky k již existujícím problémům, které se v různých dobách liší, hledají se odpovědi a ty se sdílejí v přítomnosti i budoucnosti. Zabývá se především hodnotami jako spravedlnost, svoboda, rovnost a moc, které se v závislosti na době a kultuře vykládají odlišně. Nemá jasně určené hranice dobra a zla, správné a nesprávné odpovědi, a právě toto nedefinované je její charakteristickou vlastností.

Také z lokálního pohledu, podobně jako u informatiky, lze říci, že jde o kladení otázek a reflexi. Neustále se ptáme na vzniklé problémy, proč se to stalo, jaké jsou lepší směry, a reflektujeme a hledáme odpovědi. I zde se počet odpovědí úměrně zvyšuje s počtem myslících lidí.

Proč bychom měli znát politiku i informatiku

Vzájemné vyvolávání

Oba světy se zdánlivě zabývají odlišnými oblastmi, ale ve skutečnosti sdílejí značně podobné rysy a mají mnoho bodů, které jsou navzájem příčinou a důsledkem.

Uvedu jeden příklad.

  1. Pokud bezpečně uložíme zdravotní data jednotlivce do cloudu, bude je možné v případě potřeby rychle zpřístupnit v každé nemocnici ⇒ programováním se bezpečně a dobře dostupně implementuje pomocí funkcí jednotlivých oblastí.
  2. Komu tedy tato data patří? Mně? Pověřenému pracovníkovi, který je zaregistroval? Nebo provozovateli, vývojové firmě, státu? A kam až mohou vidět do mých dat? Do jaké míry a jakým způsobem mohu mít záruku, že budou mé osobní údaje chráněny? ⇒ Vyvstane politická debata o zájmech a rozdílných názorech různých společenství a jednotlivců.
  3. Poté se politická debata a programové návrhy a implementace budou čas od času střídat a opakovat v nekonečné řadě.

Takto se informatika používá k řešení existujících společenských problémů, a poté se politická filozofie uplatňuje k rozpoznání a řešení problémů, které z toho vzniknou, k položení otázek a k řešení dalšího problému. V informační společnosti dnešní doby je to samozřejmý jev.

Jsou politika a počítače podobné?

Zdánlivě nepodobné rysy

Oba světy se také vyvíjely podobným způsobem. Jejich základ se však, podobně jako vztah mezi společenskou a přírodní filozofií, liší vágním a přesným vyjadřováním. Politická filozofie vychází z proměnlivých a vágních definic v přirozeném jazyce, zatímco informatika vychází spíše z neměnných a jasných tvrzení vyjádřených formálně, nikoli přirozeným jazykem.

Také směřování se vyjadřuje jemně odlišně. Informatika předpokládá, že může existovat optimální řešení. Politická filozofie naopak hovoří o vágních pojmech, jako je přesvědčivější argument, lépe podložený argument nebo etičtější argument. Podle mého názoru je však směřování obou oblastí téměř podobné. Nakonec se obě zdají směřovat k lepšímu dalšímu kroku. Například i informatika má mnoho oblastí, ale jako typický příklad lze uvést kodeky, tedy kompresi médií, kde se usiluje o lepší kompresní poměr, kompresní výkon a nižší licenční náklady.

Podobné rysy

Typickým příkladem je, že programovací jazyky a vládní ideologie se na člověka uplatňují podobným způsobem. Nelze jednotlivé jazyky a ideologie jednoznačně přiřadit, ale pro zábavu je uvedu.

  • Jazyk C (vývojář ví, co dělá): Rád bych ho přirovnal k republikanismu. Je podobný republice, která historicky tvořila základ západního politického systému, a také připomíná komunitarismus, protože klade důraz na občanské vědomí jednotlivých občanů a na úsilí jednotlivců směřovat k lepšímu ideálu. Také mi připadá podobný tím, že práva jsou provázena odpovědností.
  • Java (jednou napiš, spustíš kdekoli): Nevím. Existuje silný zákon, a v jeho rámci se žije uniformním životem, ale je to stabilní a v jeho mezích je člověk svobodný. A když se vydáte na Spring, čeká vás mnoho různých sociálních výhod. Mám to zvolit jako liberalismus?
  • C# (sladění produktivity vývojáře a principů softwarového inženýrství): Pod ochranou silného státu je vše dobře navrženo a v rámci plánovaného lze dosáhnout maximální produktivity a výkonu. Hodí se plánované hospodářství. Není to komunismus, protože výrobní prostředky jsou uvolněny a výrobci nejsou omezováni.
  • Go (zahodit složitost, zvolit praktičnost a efektivitu): Nic podobného není. Všechno rozdávají, takže ať se zavede sociální stát.
  • Rust (bezpečnost bez ztráty výkonu): Vlastnictví a životnosti v Rustu jsou spravovány přísným kompilátorem jako vládcem. To, že se komunita stará o výrobní prostředky a plánuje je tak, aby zajistila stabilní život, aby se předešlo nerovnostem a rizikům plynoucím ze svobodné hospodářské činnosti jednotlivců, a že se omezením části osobní svobody sleduje bezpečnost a rovnost celého systému, mi připadá jako socialismus.
  • JavaScript (flexibilita, tolerance a všudypřítomnost): Rád bych ho přirovnal ke kapitalismu. V tomto jazyce vlastní výrobní prostředky jednotlivci a dokonce i zařízení mají jednotlivci v hojnosti. Díky tomu vznikají různé průmyslové výrobky a svobodnou soutěží může každý sledovat zisk. Trh bez regulace však brzy upadl do chaosu.
  • TypeScript (rozšiřující se JavaScript): Samozřejmě regulovaný kapitalismus. Víra v kapitalismus se rozbila a stát musí do určité míry zasahovat, aby překonal nestabilitu trhu. Původní úplná svoboda je sice poměrně ustoupila, ale každý se stále může svobodně zapojit na trh a soutěžit.

A přitom poměrně hodně vývojářů bojuje jazykem, jako by vedli ideologickou válku ve skutečnosti. Samotný jazyk je pro vývojáře známou ideologií a zároveň ideálem, který je třeba sledovat.

Stát a architektura

  • Monolitická architektura a centralizovaný stát: Vše je obsaženo v jedné obrovské kódové基 a v jednom binárním souboru. Tato struktura je podobná jednotnému státu se silnou centrální vládou nebo absolutní monarchii. Všechny funkce státu jsou řízeny jedním mocenským systémem.
    • Výhodou je, že se stát nejsnáze utváří a rozhodování je rychlé. To souvisí s tím, že se celý software rychle uvolňuje. Protože všechny zdroje a informace jsou soustředěny na jednom místě, je správa jasná.
    • Nevýhodou je, že s růstem státu se hůře reaguje na změny, a i když chceme změnit malý zákon nebo instituci, je třeba prověřit a použít celek. Hrozí také riziko, že problém v jedné oblasti paralyzuje celý stát. Také monolit je kvůli velké kódové základně a propletenému kódu obtížně přizpůsobitelný změnám, a i změna jednoho řádku kódu vyžaduje posouzení dosahu, přičemž problém v jednom modulu snadno ovlivní celý systém.
  • MSA a federativní stát: Jednotlivé funkce systému jsou rozděleny na nezávislé služby. To má podobnost s federativním státem, který se skládá z několika nezávislých států. Také každá služba a stát mají nezávislou infrastrukturu. Zásahy centrální vlády jsou volné, a podobně jako u federace nikdy nevíme, kdy může dojít k osamostatnění nebo připojení.
    • V zásadě může každý nezávislý stát a služba samostatně měnit zákony a psát kód. Není proto nutné sladit jejich tempo. Také když nastane problém na jednom místě, federace jako celek se jen obtížně paralyzuje. A je možné zvolit vhodné instituce (technologie) podle regionu nebo oblasti.
    • Obtížné je však dosáhnout vzájemné shody nebo vytvořit komunikační kanály. Může být těžké prosazovat jednotnou politiku, což může vyvolat zmatek.
  • EDA (Event Driven Architecture) a občanská společnost: Místo toho, aby centrální vláda nebo zástupci přímo vydávali příkazy, jednotlivci iniciativně a samostatně řeší vzniklé společenské problémy tak, že je sami převezmou. To je podobné tomu, jak u EDA, která má charakteristický rys, kdy po vzniku události ji někdo z odběratelů samostatně převezme a zpracuje.
    • Každý se může snadno zapojit. Také v EDA se nová služba snadno stane novým odběratelem a může se účastnit procesu.
    • Nevýhodou však je, že nelze přehlédnout celkový tok. Je obtížné sledovat, kdo a jak to zpracoval, a nelze předvídat, jakou řetězovou reakci jedna událost vyvolá.
  • Vrstvená architektura (Layered Architecture) a feudalismus: Feudalismus je struktura, v níž každá vrstva plní svou přidělenou roli a odpovědnost a plní povinnosti vůči vyšší vrstvě. Tyto vztahy vznikají jako druh smluvního vztahu a tvoří přísnou vertikální hierarchii vlády, a v tomto ohledu lze nalézt podobnost s vrstvenou architekturou.

Takto lze uvést ještě více přirovnání, ale jádro tohoto textu spočívá spíše v procesu, jímž se tyto struktury vytvářejí, než ve struktuře samotné.

Mohou být řešení problémů ve vývoji a politice stejná?

Pokud jsou softwarová architektura a státní zřízení podobné, pak je proces jejich vytváření překvapivě paralelní. Vývoj softwaru se v podstatě neliší od politického jednání, které v digitálním prostoru buduje a rozvíjí nový řád.

  1. Veřejná diskuse o společenském problému a analýza požadavků**:** Vše začíná otázkou: „Co je problém?“ Stejně jako se utrpení a nepohodlí občanské společnosti stávají veřejně projednávaným politickým tématem, tak se uživatelské nepohodlí a požadavky po analýze stávají prvním milníkem vývoje v podobě „specifikace požadavků“.
  2. Návrh ústavy a architektury**:** Jaký stát vytvořit? Jaký systém vytvořit? Stejně jako politici na základě ideologií a filozofie budují kostru ústavy a zákonů, architekt na základě technického přesvědčení vytváří plán architektury, která bude základem systému. Rozhodnutí v této fázi určuje osud systému.
  3. Výkon politiky a implementace softwaru**:** Jakmile je návrh hotový, vývojáři píší skutečný kód a úředníci vykonávají politiku podle zákonů. Je to proces, v němž se abstraktní plán mění v konkrétní entitu, která funguje v reálném světě.
  4. Posouzení ve volbách a testování softwaru**:** Politika je prostřednictvím voleb a veřejného mínění posuzována z hlediska své legitimity. Software svou hodnotu dokazuje testováním týmem QA a zpětnou vazbou uživatelů. Oboje nakonec musí získat souhlas suveréna (občanů, uživatelů), aby mohlo přežít.
  5. Reforma institucí a údržba systému**:** Jednou vytvořené zákony a systémy nejsou věčné. Stejně jako se stará zákony mění a instituce reformují podle změn doby, software se bez ustálého „refaktorování“, které zlepšuje vnitřní neefektivitu a přizpůsobuje ho měnícímu se prostředí, stává mrtvým kódem.

Celý proces od definice problému přes návrh, implementaci a ověřování až po neustálé zlepšování ukazuje, že oba světy sdílejí stejný dech při řešení problémů.

Den nových zákonodárců

Informační společnost učinila vzdálenost mezi těmito dvěma vrcholy filozofií bezvýznamnou. Kód již není pouhým jednoduchým logickým obvodem, ale stal se „zákonem“ (Code is Law), který definuje vztahy mezi lidmi, rozděluje moc a realizuje společenské hodnoty. Pokud se architektura, kterou navrhujeme, podobá státní vládě a proces vývoje, jemuž se řídíme, je podobný politickému procesu dohody, kým jsme pak my, vývojáři? A co by měl dělat politik? Proto by vývojář nyní měl reflektovat nejen logiku kódu, ale i společnost, kterou tento kód vytvoří, a politik by měl rozumět nejen logice hlasů, ale i logice technologií, které pohánějí svět. Tato obrovská moc, kterou každý z nás v našem světě uplatňuje, s sebou nese stejnou míru etické odpovědnosti.