GoSuda

Politik og computer

By snowmerak
views ...

Hvad er filosofi?

Hvad anser du for at være filosofi? Ifølge den ordbogsbaserede definition er det "aktiviteten med at tænke over og finde svar på livets og grundlæggende spørgsmål i verden". Man kan også anlægge en adfærdsmæssig definition, hvor det ikke handler om at løse et problem med et fastsat svar, men om at udvide tanken gennem den samme spørgsmålsstilling, eller en række spørgsmål, der følger hinanden, og at dele disse svar.

Tidligere, mens jeg gennemførte min bacheloruddannelse, tog jeg et fag relateret til politisk filosofi. Jeg husker, at professoren under min introduktion sagde noget i retning af: "Politisk filosofi og datalogi er discipliner, der står på toppen af forskellige filosofier." Det var ikke præcis disse ord og sætninger, men det var cirka den betydning.

Datalogi

Jeg mener, at datalogi er "en grundlæggende udforskning for at løse logiske problemer." Derfor kan der opstå forskellige svar, afhængigt af hvem der tænker over et bestemt problem. Det mest repræsentative eksempel er sortering. Selv i udforskningen af metoder til at sortere de samme listede data i rækkefølge findes der mange varianter såsom Bubble, Insertion, Selection, Merge, Quick, Heap, Tim osv. Og ved at opdele disse kan der opstå bedre algoritmer.

Desuden, set lokalt, kan man sige, at det handler om at "skabe og bevise." Som nævnt ovenfor, med sortering, bliver der kontinuerligt skabt måder at sortere på, og resultaterne bliver bevist. For udviklere er et mere nærliggende eksempel, at når en projektplan fremlægges, er det godt at se det som en implementering og et bevis på, at det fungerer korrekt.

Politisk filosofi

Jeg mener, at politisk filosofi er "en grundlæggende udforskning for at løse sociale problemer." Den stiller gentagne gange spørgsmål til allerede eksisterende problemer, der er forskellige i hver tidsalder, producerer svar og deler dem i nutiden og fremtiden. Den beskæftiger sig primært med abstrakte værdier som retfærdighed, frihed, lighed og magt, som fortolkes forskelligt afhængigt af tid og kultur. Der er ingen klare grænser mellem godt og ondt, rigtigt og forkert, og det er kendetegnende, at det forbliver ubestemt.

Desuden, set lokalt, ligesom datalogi, kan det ses som at "spørge og reflektere." Man stiller uophørligt spørgsmål til det opståede problem, reflekterer over, hvorfor det skete, og hvad der er en bedre retning, og finder svar. Også her opstår der mange svar i forhold til antallet af tænkende individer.

Hvorfor skal vi også vide noget om politik/computere?

Forholdet mellem gensidig kald

De to verdener synes at udgrave forskellige områder, men i virkeligheden deler de mange lignende træk og har mange punkter, hvor de er årsag og virkning for hinanden.

Lad os give et eksempel:

  1. Hvis individuelle sundhedsdata gemmes sikkert i skyen, kan de hurtigt tilgås af forskellige hospitaler, når det er nødvendigt. ⇒ Dette implementeres ved hjælp af funktioner fra hvert område på en sikker og tilgængelig måde gennem programmering.
  2. Hvem ejer så disse data? Mig? Den ansvarlige, der registrerede dem? Eller hovedentreprenøren? Udviklingsselskabet? Staten? Hvor meget af mine data kan de se? Hvor meget og hvordan kan jeg garanteres beskyttelse af mine personlige oplysninger? ⇒ Der vil opstå en politisk diskussion om holdninger og interesseforskelle mellem forskellige fællesskaber og enkeltpersoner.
  3. Derefter vil politiske diskussioner og programmeringsmæssig design og implementering periodisk gentage sig i et fortløbende mønster.

På denne måde bruges datalogi til at løse eksisterende samfundsproblemer, og for at erkende og løse de problemer, der opstår herfra, stilles der spørgsmål, og politisk filosofi bruges til at løse de næste problemer. I nutidens informationssamfund er dette et naturligt fænomen.

Ligner politik og computere hinanden?

Punkter, der ikke ser ud til at ligne hinanden

Desuden har de to verdener udviklet sig i lignende former. Men deres grundlag, ligesom forholdet mellem social filosofi og naturfilosofi, har en forskel mellem vage og klare udtryk. Hvor politisk filosofi er baseret på variable og vage definitioner formuleret i naturligt sprog, er datalogi baseret på uforanderlige og klare præmisser formuleret i matematiske ligninger frem for naturligt sprog.

Desuden udtrykker de retningen på subtilt forskellige måder. Datalogi antager, at en optimal løsning kan eksistere. I politisk filosofi taler man om vage begreber som mere overbevisende argumenter, mere velbegrundede argumenter, mere etiske argumenter. Men efter min opfattelse er de to retninger næsten ens. I sidste ende ser det ud til at handle om at stræbe efter "en bedre fremtid." Selvom datalogi har mange forskellige områder, såsom mediekodning kaldet codecs, stræber man efter bedre kompressionsforhold, kompressionsydelse og licensomkostninger.

Punkter, der ser ud til at ligne hinanden

Programmeringssprog og regeringsideologier ser ud til at have en lignende anvendelse for mennesker. Selvom de enkelte sprog og ideologier ikke direkte kan matches, vil jeg liste dem for sjov.

  • C-sprog (udvikleren ved, hvad han laver): Jeg vil gerne sammenligne det med republikanisme. Historisk set ligner det republikker, som var grundlaget for vestlige politiske systemer, og det minder også om kommunitarisme, der vægter den enkeltes bevidsthed og den enkeltes stræben efter et bedre ideal. Jeg følte også, at det ligner, at rettigheder medfører ansvar.
  • Java (skriv én gang, kør overalt): Jeg ved det ikke. Der er stærke love, og man lever et ensartet liv ved at følge dem, men det er stabilt, og inden for det er man fri. Og når man går ind i Spring, venter der jer mange goder. Skal vi kalde det liberalisme?
  • C# (harmoni mellem udviklerproduktivitet og softwareingeniørprincipper): Alt er veldesignet under en stærk regerings beskyttelse, og inden for det planlagte kan produktivitet og ydeevne presses til det yderste. Planøkonomi passer godt. Forskellen fra kommunisme er, at produktionsmidlerne er frigivet, og producenterne er ikke begrænsede.
  • Go (giv slip på kompleksiteten, omfavn pragmatisme og effektivitet): Der er intet lignende. Da alt gives væk, er det en velfærdsstat.
  • Rust (sikkerhed uden ydelsesforringelse): Rusts ejerskab og levetid styres af en streng kompilator, en slags hersker. Dette ser jeg som socialisme, da det handler om, at fællesskabet forvalter og planlægger produktionsmidlerne for at sikre et stabilt liv og forhindre ulighed og risici, der opstår som følge af individets frie økonomiske aktivitet. Dette begrænser individets frihed delvist for at forfølge systemets overordnede sikkerhed og lighed.
  • JavaScript (fleksibilitet og tolerance, og tilstedeværelse overalt): Jeg vil gerne sammenligne det med kapitalisme. I dette sprog har enkeltpersoner produktionsmidlerne, og endda rigeligt udstyr. Takket være dette er der kommet mange forbrugsvarer, og gennem fri konkurrence kan alle stræbe efter profit. Men et ureguleret marked faldt snart i kaos.
  • TypeScript (udvidet JavaScript): Selvfølgelig er det modificeret kapitalisme. Troen på kapitalismen brister, og for at overvinde markedets ustabilitet griber regeringen i et vist omfang ind. Den tidligere fuldstændige frihed er relativt forringet, men alle kan stadig frit kaste sig ud på markedet og konkurrere.

Og et ikke ubetydeligt antal udviklere kæmper ofte med sprog, ligesom de fører ideologiske krige i virkeligheden. Selve sproget er en ideologi, som udviklere er fortrolige med, og et ideal, de bør stræbe efter.

Stat og arkitektur

  • Monolitisk arkitektur og centraliseret stat: Alt er indeholdt i en stor kodebase og en enkelt binær. Dette ligner en enhedsstat eller et absolut monarki med en stærk centralregering. Alle statens funktioner styres af et enkelt magtsystem.
    • Fordelen er, at det er lettest at danne en stat, og beslutninger træffes hurtigt. Dette er i samme tråd som fordelen ved, at hele softwaren hurtigt bliver klar. Da alle ressourcer og information er samlet ét sted, er det nemt at administrere.
    • Dog bliver det sværere at reagere på ændringer, jo større staten bliver, og selv for at ændre en lille lov eller institution skal det hele gennemgås og anvendes. Der er også risiko for, at et problem i ét område kan lamme hele staten. Monolitisk arkitektur er også svær at reagere på ændringer på grund af den store kodebase og sammenkoblede kode, og selv for at ændre en enkelt linje kode skal man vurdere omfanget af påvirkningen, og et problem i ét modul kan nemt påvirke hele systemet.
  • MSA og føderal stat: Hver funktion i systemet er opdelt i uafhængige tjenester. Dette har lighedspunkter med en føderal stat, hvor hver del af landet består af flere uafhængige stater. Desuden har hver tjeneste og stat en uafhængig infrastruktur. Centralregeringens indblanding er løs, og det ligner også, at man aldrig ved, hvornår der opstår uafhængighed og tilslutning.
    • Grundlæggende kan hver uafhængig stat og tjeneste uafhængigt ændre love/skrive kode. Dette betyder, at de ikke behøver at matche hinandens tempo. Desuden, selvom der opstår et problem ét sted, er det svært at lamme hele føderationen. Og man kan vælge passende institutioner (teknologier) alt efter region eller område.
    • Men det er svært at opnå enighed og oprette kommunikationskanaler. Det kan også forårsage forvirring, da det er svært at føre en konsekvent politik.
  • EDA (Event-Driven Architecture) og civilsamfund: I stedet for at centralregeringen eller en stedfortræder direkte beordrer, tager enkeltpersoner proaktivt og autonomt fat på og løser opståede sociale problemer. Dette ligner EDA's funktion, hvor når en begivenhed indtræffer, tager en af abonnenterne autonomt fat på og behandler den.
    • Alle kan nemt deltage. Også i EDA kan nye tjenester nemt blive nye abonnenter og deltage i processen.
    • Men der er den ulempe, at man ikke kan overskue hele forløbet. Det er svært at spore, hvem der behandlede hvad og hvordan, og man kan ikke vide, hvilken kædereaktion en enkelt begivenhed vil udløse.
  • Layered Architecture og feudalisme: Feudalisme er en struktur, hvor hver klasse udfører sin tildelte rolle og sit ansvar og opfylder sine forpligtelser over for den overordnede klasse. Disse er forbundet gennem en form for kontraktforhold og danner en streng vertikal hierarkisk struktur, hvilket er lighedspunkter med en layered architecture.

Selvom der er mange flere analogier mulige, ligger kernen i denne artikel ikke så meget i selve strukturen som i processen med at skabe den.

Er problemløsning inden for udvikling og politik muligvis den samme?

Hvis softwarearkitektur og statsform ligner hinanden, så er processen med at skabe dem også overraskende parallel. Processen med at udvikle software er i virkeligheden ikke anderledes end en politisk handling, hvor man etablerer og udvikler en ny orden i det digitale rum.

  1. Offentliggørelse af sociale problemer og kravsanalyse: Alt begynder med spørgsmålet "Hvad er problemet?". Ligesom borgernes smerte og ubehag offentliggøres og bliver en politisk dagsorden, bliver brugernes ubehag og krav, efter analyse, den første milepæl i udviklingen: en 'kravspecifikation'.
  2. Forfatningsdesign og arkitekturdesign: Hvilken stat skal vi skabe? Hvilket system skal vi skabe? Ligesom politikere bygger skelettet af forfatningen og lovene baseret på ideologi og filosofi, tegner arkitekter en blåprint for systemets grundlag baseret på teknologiske overbevisninger. Beslutningerne i dette trin afgør systemets skæbne.
  3. Politikimplementering og softwareimplementering: Når designet er færdigt, skriver udviklere den faktiske kode, og administratorer implementerer politikker i henhold til loven. Dette er processen, hvor en abstrakt plan fødes som en konkret virkelighed, der fungerer i den virkelige verden.
  4. Dom gennem valg og softwaretest: Politikker bedømmes for deres legitimitet gennem valg og offentlig mening. Software valideres for sin værdi gennem QA-teamets test og brugerfeedback. Begge kan i sidste ende kun overleve, hvis de opnår samtykke fra suverænen (borgere, brugere).
  5. Institutionel reform og systemvedligeholdelse: En gang oprettede love og systemer varer ikke evigt. Ligesom gamle love ændres og institutioner reformeres i takt med tiden, bliver software også til "død kode" i det øjeblik, den stopper med at tilpasse sig et skiftende miljø og forbedre interne ineffektiviteter gennem 'refactoring'.

På denne måde viser hele processen, fra problemdefinition til design, implementering, verificering og uophørlig forbedring, at de to verdener deler samme åndedræt for problemløsning.

De nye lovgiveres dag

Informationssamfundet har gjort afstanden mellem de to filosofiske yderpunkter meningsløs. Kode er ikke længere en simpel logisk kreds, men er blevet "lov" (Code is Law), der definerer menneskelige relationer, fordeler magt og realiserer sociale værdier. Hvis den arkitektur, vi designer, ligner statens styringsstruktur, og den udviklingsproces, vi følger, ligner den politiske konsensusproces, hvem er vi så udviklere? Og hvad skal politikere gøre? Derfor skal udviklere nu ikke kun overveje kodens logik, men også det samfund, koden skaber, og politikere skal ikke kun forstå stemmernes logik, men også teknologiske logik, der driver verden. For den enorme magt, vi udøver i vores respektive verdener, følger et tilsvarende etisk ansvar.