GoSuda

Politika a počítače

By snowmerak
views ...

Co je filozofie

Co si myslíte, že je filozofie? Podle slovníkové definice je to „činnost, při níž se přemýšlí o životě a základních otázkách světa a hledají se na ně odpovědi“. Lze ji také definovat jako činnost, při níž se nejedná o řešení problémů s předem danými odpověďmi, nýbrž o rozšiřování myšlení prostřednictvím souboru stejných otázek nebo navazujících otázek a sdílení těchto odpovědí.

V minulosti, během mého bakalářského studia, jsem absolvoval předmět související s politickou filozofií. Pamatuji si, že tehdy během mého úvodního projevu profesor řekl něco podobného jako „politická filozofie a počítačové inženýrství jsou obory na vrcholu různých filozofií“. Nebyla to přesně tato slova a věta, ale zhruba to tak myslel.

Počítačové inženýrství

Domnívám se, že počítačové inženýrství je „základní zkoumání k řešení logických problémů“. Proto může existovat mnoho různých odpovědí v závislosti na tom, kdo o daném problému přemýšlí. Nejtypičtějším příkladem je třídění. Existuje mnoho metod třídění dat v pořadí, jako je Bubble Sort, Insertion Sort, Selection Sort, Merge Sort, Quick Sort, Heap Sort, Timsort atd. A jejich rozdělením mohou vzniknout lepší algoritmy.

Lokálně vzato by se také dalo říci, že se jedná o „tvorbu a dokazování“. Již zmíněné třídění neustále vytváří a dokazuje výsledky toho, jak se bude třídit. Pro vývojáře je dobré si to představit jako to, že když se objeví plán projektu, implementují ho a dokazují, že funguje správně.

Politická filozofie

Domnívám se, že politická filozofie je „základní zkoumání k řešení společenských problémů“. Opakovaně klade otázky k již existujícím problémům v každé době, vytváří odpovědi a sdílí je v současnosti i budoucnosti. Zabývá se převážně abstraktními hodnotami, jako je spravedlnost, svoboda, rovnost a moc, které jsou různě interpretovány v závislosti na době a kultuře, a nemá jasně definované hranice mezi dobrem a zlem, správným a špatným, a je charakteristická tím, že nejsou definovány.

Lokálně vzato, podobně jako počítačové inženýrství, ji lze chápat jako „dotazování a reflexi“. Neustále se ptá na vzniklé problémy, reflektuje, proč se tak stalo, jaké jsou lepší směry, a nachází odpovědi. Také zde se objevuje mnoho odpovědí úměrně počtu přemýšlejících lidí.

Proč bychom měli znát politiku/počítače?

Vztah vzájemného volání

Ačkoli se zdá, že tyto dva světy zkoumají odlišné oblasti, ve skutečnosti sdílejí značné podobnosti a mají mnoho bodů, kde jsou příčinou a důsledkem jeden druhého.

Uvedu jeden příklad.

  1. Bezpečné uložení osobních zdravotních dat v cloudu umožní nemocnicím rychlý přístup k nim, když je potřeba. ⇒ Bezpečně a přístupně se implementuje pomocí funkcí jednotlivých oblastí v programování.
  2. Komu pak tato data patří? Mně? Zaregistrovanému odpovědnému pracovníkovi? Nebo pořadateli? Vývojové společnosti? Státu? Kam až mohou vidět do mých dat? Jak mohu zaručit ochranu svých osobních údajů? ⇒ Bude se jednat o politickou diskusi o rozdílech v postojích a zájmech různých komunit a jednotlivců.
  3. Poté se bude opakovat politická diskuse a programové návrhy a implementace.

Takto se počítačové inženýrství používá k řešení stávajících společenských problémů, a poté se politická filozofie používá k rozpoznání a řešení problémů, které z toho vznikly, a k řešení dalších problémů. V moderní informační společnosti je to přirozený jev.

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

Zdánlivé rozdíly

Tyto dva světy se navíc vyvíjely podobnými způsoby. Nicméně, jejich základem je rozdíl mezi nejasným a jasným vyjádřením, podobně jako vztah mezi sociální filozofií a přírodní filozofií. Zatímco politická filozofie se zakládá na proměnlivých a nejasných definicích tvořených přirozeným jazykem, počítačové inženýrství se zakládá na neměnných a jasných výrocích tvořených spíše matematickými vzorci než přirozeným jazykem.

Také směr je jemně odlišně vyjádřen. Počítačové inženýrství předpokládá existenci optimálního řešení. A politická filozofie hovoří o nejasných pojmech, jako jsou přesvědčivější argumenty, podloženější argumenty a etičtější argumenty. Nicméně, z mého pohledu je směr obou téměř identický. Nakonec se zdá, že usilují o „lepší další“. I když počítačové inženýrství má mnoho různých oblastí, typicky se snaží o lepší kompresní poměr, kompresní výkon a licenční náklady pro kompresi médií, známou jako kodeky.

Podobnosti

Například programovací jazyky a vládní ideologie se zdají být na lidi aplikovány podobným způsobem. I když nelze vzájemně přiřadit jednotlivé jazyky a ideologie, pro zábavu je uvedu:

  • Jazyk C (Vývojář ví, co dělá): Rád bych ho přirovnal k republikanismu. Je to proto, že je historicky podobný republice, která je základem západních politických systémů, a podobá se také komunitarismu, který klade důraz na vědomí jednotlivých občanů a úsilí jednotlivců směřujících k lepšímu ideálu. Také jsem cítil, že je podobný v tom, že práva s sebou nesou odpovědnost.
  • Java (Napsáno jednou, běží kdekoli): Nevím. Existují silné zákony, a žije se jednotným životem podle nich, ale je to stabilní a v něm je svoboda. A když vstoupíte do Spring, čeká na vás mnoho benefitů. Řekněme liberalismus?
  • C# (Harmonie produktivity vývojáře a principů softwarového inženýrství): Pod ochranou silné vlády je vše dobře navrženo, a v rámci toho, co je plánováno, lze dosáhnout maximální produktivity a výkonu. Hodí se sem plánované hospodářství. Není to komunismus v tom smyslu, že se uvolnily výrobní prostředky a výrobci nejsou omezeni.
  • Go (Opusťte složitost, zvolte praktičnost a efektivitu): Nic podobného neexistuje. Vzhledem k tomu, že vše je rozdáno, staňte se sociálním státem.
  • Rust (Bezpečnost bez snížení výkonu): Vlastnictví a životnost Rustu jsou spravovány vládcem, kterým je přísný kompilátor. To se mi jeví jako socialismus, protože se snaží zabránit nerovnostem a rizikům vyplývajícím ze svobodné ekonomické činnosti jednotlivců tím, že komunita spravuje a plánuje výrobní prostředky k zajištění stabilního života, což omezuje individuální svobodu za účelem dosažení bezpečnosti a rovnosti celého systému.
  • JavaScript (Flexibilita a tolerance, a všudypřítomnost): Rád bych ho přirovnal ke kapitalismu. V tomto jazyce jednotlivci vlastní výrobní prostředky a dokonce i zařízení mají jednotlivci dostatek. Díky tomu vzniklo mnoho průmyslových výrobků a svobodnou soutěží mohl každý usilovat o zisk. Avšak neregulovaný trh se brzy propadl do chaosu.
  • TypeScript (Rozšířený JavaScript): Samozřejmě, je to revidovaný kapitalismus. Víra v kapitalismus se rozpadá a vláda se v určité míře zapojuje, aby překonala nestabilitu trhu. Stávající absolutní svoboda relativně ustoupila, ale stále každý volně vstupuje na trh a soutěží.

A nemalý počet vývojářů se hádá o jazycích, jako by vedli ideologickou válku v realitě. Jazyk sám o sobě je pro vývojáře známou ideologií a ideálem, kterého je třeba usilovat.

Stát a architektura

  • Monolitická architektura a centralizovaný stát: Jedna obrovská kódová základna a jeden binární soubor obsahují vše. To má strukturu podobnou jednotnému státu se silnou centrální vládou nebo absolutní monarchii. Všechny funkce státu jsou kontrolovány jedním mocenským systémem.
    • Výhodou je, že je nejjednodušší vytvořit formu státu a rozhodování je rychlé. To je ve stejném kontextu jako výhoda rychlého vývoje celého softwaru. Veškeré zdroje a informace jsou soustředěny na jednom místě, což usnadňuje správu.
    • Nicméně, čím větší je stát, tím obtížnější je reagovat na změny, a i když se změní malý zákon nebo systém, musí se přezkoumat a aplikovat celý systém. Problém v jedné oblasti může způsobit paralýzu celého státu. Monolitická architektura také obtížně reaguje na změny kvůli velké kódové základně a propojenému kódu, a i když se změní jeden řádek kódu, je snadné odhadnout rozsah dopadu a problém v jednom modulu snadno ovlivní celý systém.
  • MSA a federální stát: Každá funkce systému je oddělena do nezávislé služby. To má podobnosti s federálním státem, kde se každá část země skládá z několika nezávislých států. Každá služba a stát má také nezávislou infrastrukturu. Zásahy centrální vlády jsou volné, a je také podobné, že se nikdy neví, kdy dojde k nezávislosti a vstupu.
    • V zásadě mohou jednotlivé nezávislé státy a služby nezávisle měnit zákony/psát kód. To eliminuje potřebu vzájemně se přizpůsobovat. Také, i když dojde k problému na jednom místě, je obtížné, aby se celá federace zhroutila. A lze zvolit vhodné systémy (technologie) podle jednotlivých regionů nebo oblastí.
    • Nicméně, dosažení vzájemné dohody nebo vytvoření komunikačního kanálu je obtížné. Může to vést k zmatku, protože je obtížné uplatňovat konzistentní politiku.
  • EDA (Event-Driven Architecture) a občanská společnost: Namísto toho, aby centrální vláda nebo zástupci přímo vydávali příkazy, jednotlivci se proaktivně a autonomně ujímají řešení společenských problémů. To je podobné charakteristice EDA, kdy se po události autonomně ujme jejího zpracování jeden z odběratelů.
    • Kdokoli se může snadno zapojit. Také v EDA se nová služba může snadno stát novým odběratelem a zapojit se do procesu.
    • Nevýhodou však je, že nelze pochopit celkový tok. Je obtížné sledovat, kdo a jak událost zpracoval, a nelze vědět, jakou řetězovou reakci jedna událost vyvolá.
  • Vrstvená architektura (Layered Architecture) a feudalismus: Feudalismus je struktura, kde každá vrstva plní své přidělené role a povinnosti vůči vyšším vrstvám. Tyto vrstvy jsou spojeny smluvními vztahy a tvoří přísnou vertikální hierarchii, v čemž lze nalézt paralely s vrstvenou architekturou.

Ačkoli je možné uvést více takových analogií, jádrem tohoto článku není samotná struktura, ale proces jejího vytváření.

Možná je řešení problémů ve vývoji a politice stejné?

Pokud si softwarová architektura a státní systém jsou podobné, pak proces jejich vytváření vykazuje překvapivé paralely. Proces vývoje softwaru se ve skutečnosti neliší od politického aktu budování a rozvoje nového řádu v digitálním prostoru.

  1. Zveřejnění společenského 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 zveřejňují a stávají se politickou agendou, tak se nepohodlí a požadavky uživatelů analyzují a stávají se prvním milníkem vývoje, „specifikací požadavků“.
  2. Návrh ústavy a návrh architektury: Jaký stát má být vytvořen? Jaký systém má být vytvořen? Stejně jako politici vytvářejí rámec ústavy a zákonů na základě ideologie a filozofie, tak architekti na základě technických přesvědčení vytvářejí plán architektury, která bude základem systému. Rozhodnutí v této fázi určují osud systému.
  3. Provádění politiky a implementace softwaru: Jakmile je návrh dokončen, vývojáři píšou skutečný kód a správní úředníci provádějí politiku podle zákonů. Je to proces, kdy se abstraktní plán rodí jako konkrétní entita, která funguje v reálném světě.
  4. Posouzení prostřednictvím voleb a testování softwaru: Politiky jsou posuzovány z hlediska své legitimity prostřednictvím voleb a veřejného mínění. Software je ověřován z hlediska své hodnoty prostřednictvím testování týmem QA a zpětné vazby od uživatelů. Oba nakonec mohou přežít pouze tehdy, pokud získají souhlas suveréna (občanů, uživatelů).
  5. Reforma institucí a údržba systému: Jednou vytvořené zákony a systémy nejsou věčné. Stejně jako se revidují staré zákony a reformují instituce v souladu se změnami doby, tak se software, který se přestane přizpůsobovat měnícímu se prostředí a zlepšovat vnitřní neefektivitu („refactoring“), stane mrtvým kódem.

Tímto způsobem celý proces, od definice problému po návrh, implementaci, ověřování a neustálé zlepšování, ukazuje, že oba světy sdílejí stejný rytmus řešení problémů.

Den nových zákonodárců

Informační společnost učinila vzdálenost mezi těmito dvěma vrcholy filozofie bezvýznamnou. Kód již není jen jednoduchý logický obvod, 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á struktuře řízení státu a vývojový proces, který dodržujeme, je stejný jako proces politického konsensu, kdo jsme my, vývojáři? A co by měli dělat politici? Proto by vývojáři měli nyní přemýšlet nejen o logice kódu, ale také o společnosti, kterou tento kód vytvoří, a politici by měli rozumět nejen logice hlasů, ale také logice technologie, která hýbe světem. Je to proto, že tato obrovská moc, kterou vládáme v našich vlastních světech, s sebou nese odpovídající etickou odpovědnost.