GoSuda

Политика и компютри

By snowmerak
views ...

Какво е философия

Какво мислите, че е философията? Речниковото определение гласи, че това е „дейност по размисъл върху живота и фундаменталните въпроси на света и търсене на отговори“. Може да се даде и оперативно определение, че това е разширяване на мисълта чрез повтаряне на един и същ въпрос или поредица от въпроси, които следват един от друг, а не решаване на задача с фиксиран отговор, и споделяне на тези отговори.

В миналото, докато завършвах бакалавърската си степен, взех курс по политическа философия. Спомням си, че тогава, по време на моето представяне, професорът каза нещо подобно на: „Политическата философия и компютърните науки са дисциплини, които са на върха на различни философии“. Не бяха точно тези думи и изречение, но смисълът беше приблизително такъв.

Компютърни науки

Смятам, че компютърните науки са „фундаментално изследване за решаване на логически проблеми“. Ето защо, в зависимост от това кой разсъждава върху даден проблем, могат да се получат различни отговори. Най-типичният пример е сортирането. Дори и при изследване на начините за сортиране на едни и същи изброени данни по ред, съществуват различни методи като балонно, вмъкване, селекция, сливане, бързо, хийп, тим и т.н. И чрез разделянето им могат да се появят по-добри алгоритми.

Освен това, ако се погледне локално, може да се каже, че това е „създаване и доказване“. Дори и горното сортиране продължава да създава и доказва резултати за това как да се сортира. За разработчиците е добре да го разглеждат като реализация и доказване на правилното функциониране, когато се появи планиране на проект.

Политическа философия

Смятам, че политическата философия е „фундаментално изследване за решаване на социални проблеми“. Тя многократно поставя под въпрос съществуващи проблеми, които са различни във всяка епоха, произвежда отговори и ги споделя в настоящето и бъдещето. Тя се занимава основно с абстрактни ценности като справедливост, свобода, равенство и власт, които се тълкуват различно в зависимост от епохата и културата, и няма ясно дефинирани добро и зло, правилни и грешни отговори, и се характеризира с това, че не са дефинирани.

Освен това, ако се погледне локално, подобно на компютърните науки, може да се разглежда като „поставяне на въпроси и размисъл“. Тя непрекъснато задава въпроси за възникналите проблеми, размишлява защо са се случили по този начин и кои са по-добрите посоки, и дава отговори. Тук също се появяват много отговори, пропорционално на броя на хората, които разсъждават.

Защо трябва да разбираме политиката/компютрите

Взаимно извикване

Двата свята изглежда изследват различни области, но всъщност споделят значителни прилики и имат много точки, в които са причина и следствие един на друг.

Нека дадем един пример.

  1. Ако личните здравни данни бъдат сигурно съхранени в облака, всяка болница ще може бързо да ги достъпва при нужда. ⇒ Това се реализира чрез програмиране, използвайки функциите на всяка област по сигурен и достъпен начин.
  2. Тогава чии са тези данни? Мои ли? На регистриралия ги служител? Или на организатора? Разработчика? Държавата? Тогава докъде могат да виждат моите данни? Докъде и как може да бъде гарантирана защитата на личната ми информация? ⇒ Ще се проведе политически дискурс относно позициите и различията в разбиранията на различните общности и отделни лица.
  3. След това, от време на време, този политически дискурс и програмно проектиране и реализация ще се повтарят, следвайки един след друг.

По този начин, компютърните науки се използват за решаване на съществуващи социални проблеми, а след това политическата философия се използва за осъзнаване и решаване на възникналите от това проблеми, като се задават въпроси и се решават следващите проблеми. В съвременното информационно общество това е естествено явление.

Подобни ли са политиката и компютрите?

Аспекти, които изглеждат различни

Освен това, двата свята са еволюирали по подобен начин. Въпреки това, тяхната основа има разлика между неясни и ясни изрази, подобно на връзката между социалната философия и природната философия. Докато политическата философия се основава на променливи и неясни дефиниции, съставени от естествен език, компютърните науки се основават на непроменливи и ясни твърдения, съставени от математически формули, а не от естествен език.

Освен това, посоката също е изразена по фино различен начин. Компютърните науки смятат, че може да съществува оптимално решение. А политическата философия говори за неясни понятия като по-убедителни твърдения, по-обосновани твърдения, по-етични твърдения. Но според мен посоката на двете е почти същата. В крайна сметка изглежда, че те се стремят към „по-добро следващо“. Въпреки че компютърните науки имат различни области, например в областта на компресията на медии, наречена кодек, те се стремят да покажат по-добра степен на компресия, производителност на компресия и лицензионни разходи.

Аспекти, които изглеждат сходни

Като типичен пример, езиците за програмиране и управляващите идеологии изглежда се прилагат сходно към човека. Въпреки че не могат да се съпоставят всеки език и идеология, ще ги изброя за забавление.

  • C език (Разработчикът знае какво прави): Бих искал да го сравня с републиканизма. Това е така, защото той е подобен на републиката, която исторически е била основа на западните политически системи, и също така прилича на комунитаризма, който набляга на съзнанието на отделните граждани и усилията на индивидите да се стремят към по-добър идеал. Освен това почувствах, че прилича на това, че правата вървят ръка за ръка с отговорностите.
  • Java (Напишете веднъж, стартирайте навсякъде): Не знам. Има силен закон, и живееш унифициран живот, като го спазваш, но той е стабилен и в него си свободен. И когато влезеш в Spring, те чакат различни ползи. Да го наречем ли либерализъм?
  • C# (Хармония между производителността на разработчиците и принципите на софтуерното инженерство): Под закрилата на силно правителство всичко е добре проектирано и в рамките на планираното може да се постигне максимална производителност и ефективност. Подходяща е плановата икономика. Причината да не е комунизъм е, че средствата за производство са освободени и производителите не са ограничени.
  • Go (Изхвърлете сложността, вземете практичност и ефективност): Няма нищо подобно. Всичко се дава, така че нека бъде държава на благоденствието.
  • Rust (Безопасност без компромис с производителността): Собствеността и жизненият цикъл на Rust се управляват от строг компилатор, който е като владетел. Смятам, че това е социализъм, защото общността управлява и планира средствата за производство, за да гарантира стабилен живот, за да предотврати неравенството и рисковете, породени от свободните икономически дейности на индивидите, и това изглежда като преследване на безопасност и равенство на цялата система чрез частично ограничаване на индивидуалната свобода.
  • JavaScript (Гъвкавост и толерантност, и навсякъде присъстващ): Бих искал да го сравня с капитализма. В този език индивидите притежават средствата за производство, и дори оборудването се притежава от индивидите в изобилие. Благодарение на това се произвеждат различни промишлени стоки и всеки може да преследва печалба чрез свободна конкуренция. Но нерегулираният пазар скоро изпадна в хаос.
  • TypeScript (Разширяващ се JavaScript): Разбира се, това е модифициран капитализъм. Вярата в капитализма е разбита и правителството се намесва до известна степен, за да преодолее нестабилността на пазара. Пълната свобода от миналото е относително отстъпила, но все още всеки може свободно да навлиза на пазара и да се конкурира.

И изненадващо голям брой разработчици се карат много за езици, сякаш водят идеологическа война в реалния живот. Самият език е позната идеология за разработчиците и идеал, към който трябва да се стремят.

Държави и архитектури

  • Монолитна архитектура и централизирана държава: Всичко се съдържа в една огромна кодова база и един двоичен файл. Това има структура, подобна на единна държава със силно централно правителство или абсолютна монархия. Всички функции на държавата се контролират от една властова система.
    • Предимството е, че е най-лесно да се оформи държава и решенията се вземат бързо. Това е в същия контекст като предимството, че целият софтуер се разработва бързо. Тъй като всички ресурси и информация са концентрирани на едно място, управлението е ясно.
    • Въпреки това, колкото по-голяма става държавата, толкова по-трудно е да се адаптира към промените, и дори за промяна на малък закон или система, трябва да се прегледа и приложи цялото. Съществува и риск проблем в една област да парализира цялата държава. Монолитната архитектура също е трудна за адаптиране към промени поради голямата кодова база и свързания код, и дори за промяна на един ред код трябва да се оцени обхватът на влияние, а проблем, възникнал в един модул, лесно засяга цялата система.
  • MSA и федерална държава: Всяка функция на системата е разделена на независими услуги. Това има сходства с федерална държава, където всяка част от държавата се състои от няколко независими щата. Освен това, всяка услуга и щат имат независима инфраструктура. Намесата на централното правителство е хлабава, и е подобно на това, че не се знае кога ще настъпи независимост или присъединяване.
    • По принцип всеки независим щат и услуга могат самостоятелно да изменят закони/пишат код. Поради това не е необходимо да се синхронизират темповете си. Освен това, дори ако възникне проблем на едно място, цялата федерация трудно може да бъде парализирана. И могат да избират подходящи институции (технологии) според всеки регион или област.
    • Въпреки това, постигането на взаимни споразумения или създаването на комуникационни канали е трудно. Може да бъде трудно да се провежда последователна политика, което да доведе до объркване.
  • EDA (Event-Driven Architecture) и гражданско общество: Вместо централното правителство или представителите директно да дават заповеди, индивидите самостоятелно и автономно поемат и решават възникналите социални проблеми. Това е подобно на характеристиката на EDA, при която, когато възникне събитие, някой от абонатите го поема и обработва автономно.
    • Всеки може лесно да участва. В EDA също така нови услуги могат лесно да станат нови абонати и да участват в процеса.
    • Въпреки това, има недостатък, че не може да се разбере целият поток. Трудно е да се проследи кой как е обработил, и не може да се знае каква верижна реакция ще предизвика едно събитие.
  • Слоева архитектура и феодализъм: Феодализмът е структура, в която всеки слой изпълнява дадените му роли и отговорности и изпълнява задълженията си към по-горния слой. Те са свързани чрез един вид договорни отношения и образуват строга йерархична структура, в която могат да се намерят прилики със слоевата архитектура.

Въпреки че са възможни още много аналогии, същността на този текст е по-скоро в процеса на изграждане на структурата, отколкото в самата структура.

Може би решаването на проблеми в разработката и политиката са едно и също?

Ако софтуерната архитектура и държавната система си приличат, тогава процесът на тяхното създаване също е удивително паралелен. Процесът на разработка на софтуер по същество не се различава от политическия акт на изграждане и развитие на нов ред в дигиталното пространство.

  1. Публично обсъждане на социални проблеми и анализ на изискванията: Всичко започва с въпроса „Какъв е проблемът?“. Подобно на това как страданията и неудобствата на гражданското общество стават публични и се превръщат в политически въпрос, неудобствата и изискванията на потребителите, след анализ, стават първата отправна точка за разработката – „спецификация на изискванията“.
  2. Проектиране на конституция и архитектурен дизайн: Каква държава да се създаде? Каква система да се създаде? Подобно на това как политиците изграждат скелета на конституцията и законите въз основа на идеологии и философии, архитектите начертават плана на архитектурата, която ще бъде основата на системата, въз основа на технически убеждения. Решенията на този етап определят съдбата на системата.
  3. Изпълнение на политиката и софтуерна реализация: След като дизайнът е завършен, разработчиците пишат действителния код, а административните служители изпълняват политиките в съответствие със законите. Това е процесът, при който абстрактни планове се превръщат в конкретни реалности, които функционират в реалния свят.
  4. Преценка чрез избори и тестване на софтуер: Политиките се оценяват за своята легитимност чрез избори и обществено мнение. Софтуерът се валидира за своята стойност чрез тестове от екипа за QA и обратна връзка от потребителите. И двете в крайна сметка могат да оцелеят само ако получат съгласието на суверена (гражданите, потребителите).
  5. Реформа на институциите и поддръжка на системата: След като веднъж създадени, законите и системите не са вечни. Подобно на това как старите закони се преразглеждат и институциите се реформират в съответствие с променящите се времена, софтуерът също става мъртъв код в момента, в който спре да се адаптира към променящата се среда и да подобрява вътрешната неефективност чрез „рефакторинг“.

По този начин, целият процес, от дефинирането на проблема до проектирането, реализацията, валидирането и непрекъснатото подобрение, показва, че двата свята споделят един и същ ритъм на решаване на проблеми.

Денят на новите законодатели

Информационното общество е направило разстоянието между върховете на тези две философии безсмислено. Кодът вече не е просто логическа схема, а „закон“ (Code is Law), който определя човешките отношения, разпределя властта и реализира социални ценности. Ако архитектурата, която проектираме, прилича на управленската структура на държавата, и процесът на разработка, който следваме, е подобен на процеса на политическо споразумение, тогава кои сме ние, разработчиците? И какво трябва да правят политиците? Ето защо разработчиците вече трябва да размишляват не само върху логиката на кода, но и върху обществото, което този код ще създаде, а политиците трябва да разбират не само логиката на гласовете, но и логиката на технологиите, които движат света. Това е така, защото огромната власт, която упражняваме в собствените си светове, носи със себе си съответна етична отговорност.