Politika a počítače
Čo je filozofia
Čo si myslíte, že je filozofia? Slovníková definícia hovorí, že je to činnosť premýšľania o živote a základných otázkach sveta a hľadania odpovedí
. Môžeme tiež pridať behaviorálnu definíciu, že ide o rozširovanie myslenia prostredníctvom neustáleho kladenia rovnakých otázok alebo reťazenia otázok a zdieľania týchto odpovedí, a nie o riešenie problémov s vopred určenými odpoveďami.
V minulosti, počas štúdia na bakalárskom stupni, som absolvoval kurz súvisiaci s politickou filozofiou. Pamätám si, že počas mojej úvodnej hodiny profesor povedal niečo v zmysle, že politická filozofia a počítačová veda sú disciplíny na vrchole rôznych filozofií
. Neboli to presne tieto slová a veta, ale zhruba to bol ten význam.
Počítačová veda
Domnievam sa, že počítačová veda je základný prieskum na riešenie logických problémov
. Preto môže existovať mnoho rôznych odpovedí v závislosti od osoby, ktorá o probléme premýšľa. Najreprezentatívnejším príkladom je triedenie. Aj pri skúmaní metód triedenia zoznamu dát existuje mnoho prístupov, ako napríklad Bubble, Insertion, Selection, Merge, Quick, Heap, Tim a iné. A ich rozdelením môžu vzniknúť ešte lepšie Algoritmy.
Ak by sme sa na to pozreli lokálne, dalo by sa povedať, že ide o tvorbu a dokazovanie
. Aj vyššie spomenuté triedenie neustále tvorí a dokazuje výsledky toho, ako sa má triediť. Pre vývojárov je bližší príklad, že keď sa objaví plán projektu, považujú to za Implementáciu a dokazovanie, že to funguje správne.
Politická filozofia
Domnievam sa, že politická filozofia je základný prieskum na riešenie sociálnych problémov
. Opakovane sa pýta na už existujúce problémy, ktoré sú v každej ére iné, produkuje odpovede a zdieľa ich v súčasnosti a budúcnosti. Zaoberá sa prevažne abstraktnými hodnotami, ktoré sú interpretované rôzne v závislosti od doby a kultúry, ako sú spravodlivosť, sloboda, rovnosť a moc, a vyznačuje sa tým, že neexistuje jasne stanovené dobro a zlo, správna a nesprávna odpoveď.
Podobne ako v počítačovej vede, ak by sme sa na to pozreli lokálne, dalo by sa povedať, že ide o spytovanie sa a reflexiu
. Neustále sa pýta na vzniknuté problémy, reflektuje, prečo sa to stalo a aké sú lepšie smery, a predkladá odpovede. Aj tu sa objavuje mnoho odpovedí úmerne k počtu premýšľajúcich osôb.
Prečo by sme mali poznať politiku/počítače
Vzťah vzájomného vyvolávania
Zdá sa, že tieto dva svety skúmajú odlišné oblasti, ale v skutočnosti zdieľajú značné podobnosti a majú mnoho bodov, kde sa stávajú príčinou a následkom jeden druhého.
Uvediem jeden príklad.
- Ak bezpečne uložíme osobné zdravotné údaje do Cloudu, každá nemocnica k nim bude mať v prípade potreby rýchly prístup. ⇒ Implementácia pomocou programovania, ktoré je bezpečné a prístupné, s využitím funkcií jednotlivých oblastí.
- Komu potom tieto údaje patria? Mne? Zaregistrovanému správcovi? Alebo hlavnému organizátorovi? Vývojárskej spoločnosti? Štátu? A do akej miery môžu vidieť moje údaje? Ako môžem zaručiť, že moje osobné informácie budú chránené a do akej miery? ⇒ Nastane politická diskusia o postojoch a rozdieloch v záujmoch rôznych komunít a jednotlivcov.
- Následne sa bude politická diskusia a programové navrhovanie a Implementácia neustále opakovať.
Takto sa počítačová veda používa na riešenie existujúcich sociálnych problémov a politická filozofia sa zase používa na spochybňovanie, uvedomovanie si a riešenie problémov, ktoré z toho vznikli, a na riešenie ďalších problémov. V modernej informačnej spoločnosti je to prirodzený jav.
Je politika a počítačová veda podobná?
Body, ktoré sa nezdajú byť podobné
Tieto dva svety sa tiež vyvíjali podobným spôsobom. Avšak ich základ má, podobne ako vzťah medzi sociálnou filozofiou a prírodnou filozofiou, rozdiel medzi nejasným a jasným vyjadrením. Zatiaľ čo politická filozofia je založená na premenlivých a nejasných definíciách tvorených prirodzeným jazykom, počítačová veda je založená na nemenných a jasných tvrdeniach tvorených skôr matematickými formulami ako prirodzeným jazykom.
Taktiež vyjadrujú smerovanie mierne odlišne. Počítačová veda predpokladá, že optimálne riešenie môže existovať. Politická filozofia hovorí o nejasných konceptoch, ako sú presvedčivejšie argumenty, lepšie podložené argumenty, alebo etickejšie argumenty. Avšak podľa mňa je smerovanie oboch takmer rovnaké. Zdá sa, že obaja sa usilujú o lepšie ďalšie
. Aj keď má počítačová veda rôzne oblasti, napríklad v oblasti kompresie médií, nazývanej Codec, sa usiluje o lepšiu kompresnú mieru, kompresný výkon a licenčné náklady.
Body, ktoré sa zdajú byť podobné
Programovacie jazyky a vládne ideológie sa zdajú byť podobne aplikovateľné na ľudí. Aj keď nie je možné priamo priradiť každý jazyk a ideológiu, pre zábavu ich uvediem.
- Jazyk C (
Vývojár vie, čo robí
): Chcel by som ho prirovnať ku republikanizmu. Podobá sa republike, ktorá je historickým základom západných politických systémov, a tiež komunitarizmu, ktorý kladie dôraz na vedomie jednotlivých občanov a ich úsilie smerujúce k lepšiemu ideálu. Tiež som cítil podobnosť v tom, že s právami prichádza zodpovednosť. - Java (
Napísané raz, beží kdekoľvek
): Neviem. Existuje silný zákon, ktorý sa dodržiava a žije sa štandardizovaným životom, ale je to stabilné a v rámci toho je sloboda. A ak vstúpite do Spring, čakajú na vás rôzne sociálne výhody. Povedzme liberalizmus? - C# (
Harmónia produktivity vývojárov a princípov softvérového inžinierstva
): Všetko je dobre navrhnuté pod záštitou silnej vlády a v rámci toho, čo je naplánované, je možné dosiahnuť extrémne vysokú produktivitu a výkon. Hodí sa plánované hospodárstvo. Nie je to komunizmus v tom, že produkčné prostriedky sú uvoľnené a výrobcovia nie sú obmedzení. - Go (
Zbavuje sa zložitosti a prijíma praktickosť a efektívnosť
): Nie je nič podobné. Keďže všetko rozdáva, nech je to sociálny štát. - Rust (
Bezpečnosť bez zníženia výkonu
): Vlastníctvo a Life Time v Rust sú spravované prísnym kompilátorom ako vládcom. To je socialistický pohľad, pretože sa usiluje o bezpečnosť a rovnosť celého systému obmedzením časti individuálnej slobody tým, že komunita spravuje a plánuje výrobné prostriedky, aby zabránila nerovnosti a riziku spôsobenému slobodnou ekonomickou aktivitou jednotlivcov, čím zaisťuje stabilný život. - JavaScript (
Flexibilita, zhovievavosť a všadeprítomnosť
): Chcel by som ho prirovnať ku kapitalizmu. Tento jazyk umožňuje jednotlivcom vlastniť výrobné prostriedky a dokonca aj vybavenie je dostupné pre jednotlivcov v hojnom množstve. Vďaka tomu vzniká široká škála priemyselných výrobkov a prostredníctvom slobodnej súťaže môže každý usilovať o zisk. Avšak trh bez regulácie sa rýchlo dostal do chaosu. - TypeScript (
Rozširujúci sa JavaScript
): Samozrejme, je to modifikovaný kapitalizmus. Keď sa naruší dôvera v kapitalizmus, vláda do určitej miery zasahuje, aby prekonala nestabilitu trhu. Predchádzajúca úplná sloboda síce ustúpila, ale stále každý slobodne vstupuje na trh a súťaží.
A nemalé množstvo vývojárov sa medzi sebou háda o jazyky, akoby viedli ideologickú vojnu v realite. Samotný jazyk je pre vývojára známou ideológiou a ideálom, ku ktorému sa má usilovať.
Štát a Architektúra
- Monolitická architektúra a centralizovaný štát: Všetko je obsiahnuté v jednej obrovskej Code Base a jednom Binary. To sa podobá unitárnemu štátu so silnou centrálnou vládou alebo absolútnej monarchii. Všetky funkcie štátu sú kontrolované jedným mocenským systémom.
- Výhodou je, že je najľahšie vytvoriť formu štátu a rozhodovanie je rýchle. To je v súlade s výhodou rýchleho vytvorenia celého softvéru. Keďže všetky zdroje a informácie sú sústredené na jednom mieste, správa je jasná.
- Avšak, čím je štát väčší, tým je ťažšie reagovať na zmeny, a aj malá zmena zákona alebo systému si vyžaduje kontrolu a aplikáciu na celok. Hrozí aj riziko, že problém v jednej oblasti ochromí celý štát. Aj monolitická architektúra má problém s ťažkou reakciou na zmeny kvôli veľkej Code Base a prepojenému kódu, a aj pri zmene jedného riadku kódu je potrebné posúdiť rozsah vplyvu a problém v jednom module ľahko ovplyvní celý systém.
- MSA (Microservices Architecture) a federatívny štát: Každá funkcia systému je oddelená do nezávislej služby. To má podobnosť s federatívnym štátom, kde sa každá časť štátu skladá z viacerých nezávislých štátov. Taktiež každá služba a štát má nezávislú infraštruktúru. Zásah centrálnej vlády je voľný a podobnosť je aj v tom, že nie je isté, kedy dôjde k nezávislosti alebo pristúpeniu.
- V zásade môžu nezávislé štáty a služby nezávisle meniť zákony/písať kód. Vďaka tomu si nemusia navzájom prispôsobovať tempo. Taktiež, aj keď nastane problém na jednom mieste, je ťažké, aby bola ochromená celá federácia. A je možné zvoliť vhodný systém (technológiu) podľa regiónu alebo oblasti.
- Avšak, je ťažké dosiahnuť vzájomnú dohodu alebo vytvoriť komunikačný kanál. Môže to spôsobiť zmätok kvôli ťažkostiam pri presadzovaní jednotnej politiky.
- EDA (Event Driven Architecture) a občianska spoločnosť: Namiesto toho, aby centrálna vláda alebo zástupca priamo vydávali príkazy, jednotlivci preberajú iniciatívu a autonómne riešia vzniknuté sociálne problémy. To sa podobá charakteristike EDA, kde, keď nastane Event, niekto z odberateľov ho autonómne prevezme a spracuje.
- Každý sa môže ľahko zapojiť. Aj EDA umožňuje novej službe ľahko sa stať novým odberateľom a zapojiť sa do procesu.
- Avšak, má to nevýhodu v tom, že nie je možné pochopiť celkový tok. Je ťažké sledovať, kto a ako to spracoval, a nie je možné vedieť, akú reťazovú reakciu vyvolá jedna udalosť.
- Layered Architecture a feudalizmus: Feudalizmus je štruktúra, kde každá vrstva plní svoju pridelenú úlohu a zodpovednosť, a vykonáva povinnosti voči vyššej vrstve. Tieto sú spojené akýmsi zmluvným vzťahom a vytvárajú prísnu vertikálnu hierarchiu, čo má podobnosť s Layered Architecture.
Aj keď je možné uviesť viac takýchto analógií, jadrom tohto textu je proces tvorby štruktúry, nie samotná štruktúra.
Je riešenie problémov vo vývoji a v politike rovnaké?
Ak sa softvérová architektúra a štátny systém podobajú, potom aj proces ich tvorby vedie pozoruhodne paralelnými cestami. Proces vývoja softvéru sa nelíši od politického aktu budovania a rozvíjania nového poriadku v digitálnom priestore.
- Verejná diskusia o sociálnom probléme a analýza požiadaviek**: Všetko začína otázkou: "Čo je problém?" Rovnako ako sa utrpenie a nepohodlie občianskej spoločnosti stáva politickou agendou prostredníctvom verejnej diskusie, nepohodlie a požiadavky používateľov sa po analýze stávajú prvým míľnikom vývoja, ktorým je 'Špecifikácia požiadaviek'.
- Návrh ústavy a Design Architektúry**: Aký štát chceme vytvoriť? Aký systém chceme vytvoriť? Rovnako ako politici vytvárajú kostru ústavy a zákonov na základe ideológie a filozofie, Architekti kreslia plán Architektúry, ktorá bude základom systému, na základe technických presvedčení. Rozhodnutia v tejto fáze určujú osud systému.
- Výkon politiky a Implementácia softvéru**: Keď je návrh dokončený, vývojári píšu skutočný kód a administratívni úradníci vykonávajú politiku podľa zákona. Je to proces, v ktorom sa abstraktný plán rodí ako konkrétna entita, ktorá funguje v reálnom svete.
- Súdenie prostredníctvom volieb a Testovanie softvéru**: Politika je súdená prostredníctvom volieb a verejnej mienky, čím sa preveruje jej legitimita. Softvér je overovaný z hľadiska jeho hodnoty prostredníctvom testovania QA tímom a spätnej väzby od používateľov. Obe prežijú len vtedy, ak získajú súhlas zvrchovaného subjektu (občana, používateľa).
- Reforma inštitúcií a Údržba systému**: Raz vytvorený zákon a systém nie sú večné. Rovnako ako sa revidujú staré zákony a reformujú inštitúcie, aby sa prispôsobili zmenám v dobe, softvér sa stane mŕtvym kódom v momente, keď prestane s 'Refactoringom', ktorý prispôsobuje meniacemu sa prostrediu a zlepšuje vnútornú neefektívnosť.
Takto celý proces, od definície problému, cez návrh, Implementáciu, overenie, až po neustále zlepšovanie, ukazuje, že oba svety zdieľajú rovnaký rytmus riešenia problémov.
Deň nových zákonodarcov
Informačná spoločnosť urobila vzdialenosť medzi vrcholmi týchto dvoch filozofií bezvýznamnou. Kód už nie je len jednoduchý logický obvod, ale stal sa 'zákonom (Code is Law)', ktorý definuje vzťahy medzi ľuďmi, rozdeľuje moc a realizuje sociálne hodnoty. Ak sa Architektúra, ktorú navrhujeme, podobá vládnej štruktúre štátu a vývojový proces, ktorým sa riadime, je podobný procesu politickej dohody, kto sme my, vývojári? A čo by mali robiť politici? Preto by vývojári mali uvažovať nielen o logike kódu, ale aj o spoločnosti, ktorú kód vytvára, a politici by mali rozumieť nielen logike hlasov, ale aj logike technológie, ktorá hýbe svetom. Je to preto, že táto obrovská moc, ktorú každý z nás ovláda vo svojom svete, si vyžaduje rovnako veľkú etickú zodpovednosť.