GoSuda

Siyaset ve Bilgisayar

By snowmerak views ...

Felsefe Nedir

Felsefenin ne olduğunu nasıl düşünüyorsunuz? Sözlük anlamı, dünyanın yaşamı ve temel sorular hakkında düşünerek cevap arama etkinliği olarak tanımlanmaktadır. Cevabı önceden belirlenmiş problemlerin çözümü değil, aynı soruların ya da zincirleme biçimde devam eden soruların sürekliliği içinde düşünceyi genişletme ve bu cevapları paylaşma eylemi olarak eylemsel bir tanım da getirilebilir.

Geçmişte lisans eğitimimi tamamlarken siyaset felsefesiyle ilgili bir dersi almıştım. O zaman kendimi tanıttığım sırada hocam, siyaset felsefesi ile bilgisayar mühendisliği birbirinden farklı felsefelerin zirvesinde yer alan disiplinlerdir ifadesine benzer bir şeyler söylemişti. Tam olarak bu kelime ve cümle değildi, ama kabaca bu anlama geldiğini hatırlıyorum.

Bilgisayar Mühendisliği

Bilgisayar mühendisliğini, mantıksal problemleri çözmeye yönelik temel bir araştırma olarak düşünüyorum. Bu nedenle bir problem üzerinde düşünen her insan farklı cevaplara ulaşabilir. En tipik örnek sıralamadır. Dizilmiş aynı verileri sıraya koymanın yöntemlerine yönelik araştırmalarda da kabarcık, ekleme, seçme, birleştirme, hızlı, yığın, Tim gibi birçok yöntem bulunmaktadır. Ayrıca bunları bölerek daha iyi algoritmalar ortaya çıkabilir.

Ayrıca yerel bakış açısıyla, inşa eder ve kanıtlarız diyebiliriz. Nitekim yukarıdaki sıralama da nasıl sıralanacağı sürekli inşa edilir ve sonuçları kanıtlanır. Yazılımcılar için daha yakın bir örnek olarak, bir proje planı ortaya çıktığında onu uygulamak ve sorunsuz çalıştığını kanıtlamak olarak görmek daha uygun olabilir.

Siyaset Felsefesi

Siyaset felsefesini, toplumsal sorunları çözmeye yönelik temel bir araştırma olarak düşünüyorum. Her dönemde farklı biçimlerde var olan sorunlar üzerine tekrar tekrar sorgulama yapılır, cevaplar üretilir ve bugüne ve geleceğe aktarılır. Adalet, özgürlük, eşitlik, iktidar gibi zamana ve kültüre göre farklı yorumlanan soyut değerleri ele alır; net bir iyi ve kötü, doğru ve yanlış belirlenmiş değildir ve bu belirsizlik onun bir özelliğidir.

Ayrıca bilgisayar mühendisliğinde olduğu gibi yerel bakış açısıyla, sorgular ve yansıtır diyebiliriz. Ortaya çıkan sorunlar hakkında durmaksızın soru sorulur; neden böyle olduğu, hangi yönde daha iyi bir yol bulunabileceği yansıtılır ve cevaplar ortaya konur. Bu da düşünen insan sayısına orantılı olarak birçok cevabın ortaya çıkmasına yol açar.

Neden Siyaseti/Bilgisayarı da Bilmeliyiz

Karşılıklı Çağrışım İlişkisi

İki dünya birbirinden farklı alanları inceliyor gibi görünse de aslında oldukça benzer noktaları paylaşmakta ve birbirinin nedeni ve sonucu olan birçok noktaya sahip bulunmaktadır.

Bunu bir örnekle açıklayalım.

  1. Bireyin sağlık verilerini güvenli biçimde bulutta saklarsak, gerektiğinde her hastanede hızlıca erişilebilir olacak ⇒ Programlama ile güvenli ve erişilebilir biçimde her alanın işlevi kullanılarak gerçekleştirilir.
  2. Peki bu veriler kimin? Benim mi? Kaydı yapan görevli mi? Yoksa işletmeci mi? Geliştirici firma mı? Devlet mi? O halde onlar verilerimin nereye kadarını görebilir? Kişisel bilgilerim nereye kadar ve nasıl korunacağı garanti altına alınabilir? ⇒ Farklı toplulukların ve bireylerin konum ve çıkar farklılıkları üzerine siyasi bir söylem ortaya çıkacaktır.
  3. Bundan sonra zaman zaman bu konuda siyasi söylem ile programsal tasarım ve uygulama birbirini izleyerek tekrarlanacaktır.

Böylece, mevcut toplumsal sorunları çözmek için bilgisayar mühendisliği kullanılır; burada ortaya çıkan sorunları fark etmek ve çözmek için sorgulama yapılır ve bir sonraki sorunu çözmek için siyaset felsefesi devreye girer. Bilgi toplumu olan günümüzde bu olağan bir olgudur.

Siyaset ve Bilgisayar Birbirine Benzer mi

Göze Çarpmayan Noktalar

Ayrıca iki dünya benzer biçimlerde evrim geçirmiştir. Ancak temelleri, toplum felsefesi ile doğa felsefesi arasındaki ilişkide olduğu gibi, muğlak ifadeler ile net ifadeler arasındaki farka dayanır. Siyaset felsefesi doğal dille kurulmuş, değişken ve muğlak tanımlara dayanırken; bilgisayar mühendisliği doğal dil yerine matematiksel ifadelerle kurulmuş, değişmez ve net önermelere dayanır.

Ayrıca yönelimleri de ince bir farkla ifade edilir. Bilgisayar mühendisliği en iyi çözümün var olabileceğini kabul eder. Siyaset felsefesinde ise daha inandırıcı bir iddia, daha gerekçeli bir iddia, daha etik bir iddia gibi muğlak kavramlardan söz edilir. Ancak bana göre ikisinin yönelimi neredeyse benzerdir. Sonuçta ikisi de daha iyi bir sonrasını hedefliyor gibi görünmektedir. Bilgisayar mühendisliğinin de birçok alanı olmasına karşın, örneğin kodek olarak adlandırılan medya sıkıştırmasında daha iyi sıkıştırma oranı, sıkıştırma performansı ve lisans maliyetini ortaya koymak için çaba gösterilmektedir.

Benzer Gibi Görünen Noktalar

Özellikle programlama dilleri ile yönetim ideolojileri insanlara benzer biçimde uygulanıyor gibi görünmektedir. Her dil ve ideoloji birbirine karşılık getirilemez, ama eğlence olsun diye sıralayalım.

  • C dili (geliştirici ne yaptığını bilir): Cumhuriyetçiliğe benzetmek isterim. Tarihsel olarak Batı siyasi sisteminin temelini oluşturan cumhuriyet ile benzer olduğu gibi, yurttaşların bireysel bilinçlerini ve daha iyi bir ideale doğru ilerleme çabalarını önemseyen topluluk ilkesine de benzediğini düşünüyorum. Ayrıca hakların sorumlulukla birlikte geldiği noktada da benzer olduğunu hissettim.
  • Java (bir kez yaz, her yerde çalıştır): Bilmiyorum. Güçlü bir yasası var ve ona uyarak tek tip bir hayat yaşanıyor, ama bu istikrarlı ve bu çerçevede özgür olunuyor. Ayrıca Spring'e girdiğinizde sizi bekleyen çeşitli refah imkânları var. Liberalizm diyelim mi?
  • C# (geliştirici verimliliği ile yazılım mühendisliği ilkelerinin uyumu): Güçlü devletin himayesi altında her şey iyi tasarlanmıştır ve bu düzen içinde planlanan çerçevede üretkenlik ve performans en üst düzeye çıkarılabilir. Planlı ekonomi uygun düşer. Komünizm olmaması, üretim araçlarını serbest bırakmış olması ve üreticileri kısıtlamamasındandır.
  • Go (karmaşıklığı bırak, pratikliği ve verimliliği benimse): Benzeri yok. Herkese bolca dağıtıyor, o halde refah devleti olun.
  • Rust (performans kaybı olmayan güvenlik): Rust'ın sahiplik ve yaşam süreleri, katı bir derleyici olan yöneticisi tarafından yönetilir. Bu, bireyin özgür ekonomik faaliyetinin doğurduğu eşitsizlik ve riskleri önlemek için toplumun üretim araçlarını yönetip planlayarak istikrarlı bir yaşamı güvence altına almasıdır; bireysel özgürlüğü kısmen sınırlandırarak sistemin bütününün güvenliğini ve eşitliğini hedeflediği için sosyalizm olduğunu düşünüyorum.
  • JavaScript (esneklik ve hoşgörü, ve her yerde bulunma): Kapitalizme benzetmek isterim. Bu dil, üretim araçlarını bireylerin elinde bulundurur ve hatta ekipmanı da bireyler bolca sahiptir. Sayesinde çeşitli sanayi ürünleri ortaya çıkar ve serbest rekabet yoluyla herkes kâr peşinde koşabilir hale gelmiştir. Ancak düzenlemesiz piyasa kısa sürede kaosa sürüklenmiştir.
  • TypeScript (genişleyen JavaScript): Elbette düzenlenmiş kapitalizm. Kapitalizmin inancı sarsılır ve piyasanın istikrarsızlığını ortadan kaldırmak için devlet bir ölçüde müdahale etmeye başlar. Eski tam özgürlük nispeten gerilemiştir, ama yine de herkes piyasaya özgürce girip rekabet edebilmektedir.

Ayrıca sanıldığından az olmayan sayıda geliştirici, sanki gerçek hayatta ideoloji savaşı yapıyormuş gibi, dilleriyle çokça tartışır. Dilin kendisi, geliştiricinin aşina olduğu bir ideoloji ve ulaşılması gereken bir ideal konumundadır.

Devlet ve Mimari

  • Monolitik mimari ve merkezi devlet: Tek bir büyük kod tabanı ve tek bir ikilide her şey yer alır. Bu, güçlü bir merkezi hükümete sahip tek devlet ya da mutlak monarşiye benzer bir yapıya sahiptir. Devletin tüm işlevleri tek bir iktidar sistemi tarafından kontrol edilir.
    • Devlet biçimini kazanması en kolay olanıdır ve karar alma hızlıdır. Bu, tüm yazılımın hızlı çıkması avantajıyla aynı bağlamdadır. Tüm kaynaklar ve bilgiler tek yerde toplandığı için yönetimi nettir.
    • Ancak devlet büyüdükçe değişime uyum sağlamak zorlaşır; küçük bir yasayı ya da kurumu değiştirmek bile tümünün gözden geçirilmesini ve uygulanmasını gerektirir. Bir alandaki sorunun tüm devleti felç etme riski de vardır. Monolitik yapıda da büyük kod tabanı ve iç içe geçmiş kodlar nedeniyle değişime uyum sağlamak zordur; tek bir satır kodu değiştirmek için bile etki alanının hesaplanması gerekir ve bir modüldeki sorun tüm sisteme kolayca yayılabilir.
  • Mikro hizmet mimarisi (MSA) ve federal devlet: Sistemin her işlevi bağımsız bir hizmete ayrılır. Bu, devletin her bölümünün birden çok bağımsız eyaletten oluştuğu federal devlete benzerlik gösterir. Ayrıca her hizmet ve eyalet bağımsız bir altyapıya sahip olur. Merkezi hükümetin müdahalesi gevşek olup ne zaman bağımsızlığın ya da katılımın gerçekleşeceğinin bilinmemesi de benzerdir.
    • Temelde her bağımsız eyalet ve hizmet, yasayı bağımsız olarak değiştirebilir ve kodu bağımsız olarak yazabilir. Bu nedenle birbirlerinin temposuna uyum sağlamaları gerekmez. Ayrıca bir yerde sorun çıksa bile federasyonun tamamının felç olması zordur. Ve her bölge ya da alana göre uygun kurum (teknoloji) seçilebilir.
    • Ancak karşılıklı uzlaşma sağlamak ya da iletişim kanalları oluşturmak zordur. Tutarlı bir politika izlemek güç olduğu için kargaşaya da yol açabilir.
  • EDA (Olay Güdümlü Mimari) ve sivil toplum: Merkezi hükümet ya da temsilciler doğrudan emir vermek yerine, ortaya çıkan toplumsal sorunları bireyler inisiyatif alarak özerk biçimde üstlenip çözer. Bu, EDA'nın özelliği olan bir olay gerçekleştiğinde abonelerden birinin özerk biçimde üstlenip işlemesine benzer.
    • Herkes kolayca katılabilir. EDA'da da yeni bir hizmet kolayca yeni bir abone olarak sürece dahil olabilir.
    • Ancak bütün akışı kavramanın mümkün olmaması bir dezavantajdır. Kimin nasıl işlediğini izlemek zordur ve bir olayın hangi zincirleme tepkimelere yol açacağı bilinemez.
  • Katmanlı mimari ve feodalizm: Feodalizm, her katmanda verilen rol ve sorumlulukları yerine getirerek üst katmana karşı yükümlülüklerini yerine getiren bir yapıdır. Bunlar bir tür sözleşme ilişkisi ile kurulur ve katı bir dikey egemenlik yapısı oluşturdukları için katmanlı mimari ile benzerlik bulunabilir.

Bunun gibi daha birçok benzetme mümkündür; ancak bu yazının özü, yapının kendisinden çok bu yapıyı oluşturma sürecindedir.

Geliştirme ve Siyasetteki Sorun Çözme Aynı mıdır?

Yazılım mimarisi ile devlet düzeni birbirine benziyorsa, bu ikisini oluşturma süreci de şaşırtıcı biçimde paralel ilerler. Yazılım geliştirme süreci, dijital alanda yeni bir düzen kurup geliştirmeye yönelik siyasi bir eylemden aslında farklı değildir.

  1. Toplumsal sorunun kamuoyuna taşınması ve gereksinim analizi**:** Her şey "Sorun nedir?" sorusuyla başlar. Sivil toplumun acı ve rahatsızlıkları kamuoyuna taşınıp siyasi bir gündem haline geldiği gibi, kullanıcının rahatsızlığı ve talepleri analizden geçerek geliştirmenin ilk kilometre taşı olan "gereksinim belgesi" haline gelir.
  2. Anayasa tasarımı ve mimari tasarım**:** Nasıl bir devlet kurulacak? Nasıl bir sistem inşa edilecek? Siyasetçiler ideoloji ve felsefeye dayanarak anayasanın ve kanunların iskeletini kurduğu gibi, mimar da teknik inanca dayanarak sistemin temelini oluşturacak mimarinin planını çizer. Bu aşamadaki kararlar sistemin kaderini belirler.
  3. Politika uygulaması ve yazılım geliştirme**:** Tasarım tamamlandığında geliştiriciler gerçek kodu yazar, idari bürokratlar ise politikaları kanunlara göre uygular. Soyut planın gerçek dünyada işleyen somut bir varlığa dönüştüğü süreçtir.
  4. Seçimle yargılanma ve yazılım testi**:** Politikalar seçimler ve kamuoyu aracılığıyla meşruiyetleri açısından yargılanır. Yazılım ise QA ekibinin testleri ve kullanıcı geri bildirimleri ile değerini doğrulatır. İkisi de sonuçta egemen (yurttaşlar, kullanıcılar) onayını almak zorunda kalarak ayakta kalabilir.
  5. Kurumsal reform ve sistem bakımı**:** Bir kez yapılan yasalar ve sistemler kalıcı değildir. Zamanın değişimine göre eski yasalar değiştirilip kurumlar reforme edildiği gibi, yazılım da değişen ortama uyum sağlamalı ve iç verimsizlikleri iyileştiren "yeniden düzenleme" (refactoring) işlemini durdurduğu anda ölü koda dönüşür.

Böylece sorun tanımından tasarıma, uygulamadan doğrulamaya ve sürekli iyileştirmeye kadar tüm süreç, iki dünyanın aynı problem çözme soluğunu paylaştığını göstermektedir.

Yeni Yasa Koyucuların Günü

Bilişim toplumu, bu iki felsefenin zirveleri arasındaki mesafeyi anlamsız hale getirdi. Kod artık basit bir mantıksal devre olmaktan çıkıp insanlar arasındaki ilişkileri belirleyen, gücü dağıtan ve toplumsal değerleri gerçekleştiren bir "yasa" (Code is Law) haline geldi. Tasarladığımız mimari devletin yönetim yapısına benziyorsa ve izlediğimiz geliştirme süreci siyasi uzlaşma sürecine eşitse, biz geliştiriciler acaba kimiz? Peki siyasetçi ne yapmalı? Bu nedenle geliştirici artık yalnızca kodun mantığını değil, o kodun oluşturacağı toplumu da düşünmeli; siyasetçi ise oy mantığının yanında dünyayı hareket ettiren teknolojinin mantığını da anlamalıdır. Çünkü kendi dünyalarımızda kullandığımız bu büyük güç, o ölçüde etik bir sorumluluğu da beraberinde getirmektedir.