GoSuda

Siyaset ve Bilgisayarlar

By snowmerak
views ...

Felsefe Nedir?

Felsefenin ne olduğunu düşünüyorsunuz? Sözlük anlamı, "dünyadaki yaşam ve temel sorular hakkında düşünmek ve cevaplar aramak" olarak tanımlanır. Bu, cevabı belli olan bir problem çözme değil, aynı soruların ya da birbiri ardına gelen soruların bir devamı olarak düşünceyi genişletme ve bu cevapları paylaşma eylemsel bir tanım olarak da görülebilir.

Geçmişte, lisans eğitimimi tamamlarken, siyaset felsefesiyle ilgili bir ders almıştım. O zamanlar, kendimi tanıttığım derste profesörümün "Siyaset felsefesi ve bilgisayar mühendisliği, felsefenin farklı zirvelerinde yer alan disiplinlerdir" benzeri sözler söylediğini hatırlıyorum. Tam olarak bu kelimeler ve cümleler değildi, ama aşağı yukarı böyle bir anlamı vardı.

Bilgisayar Mühendisliği

Bilgisayar mühendisliğinin "mantıksal sorunları çözmek için temel bir araştırma" olduğunu düşünüyorum. Bu nedenle, belirli bir sorun hakkında düşünen her kişi için çeşitli cevaplar ortaya çıkabilir. En tipik örnek sıralamadır. Aynı sıralanmış verileri sıralama yöntemleri üzerine yapılan araştırmalarda bile Bubble, Insertion, Selection, Merge, Quick, Heap, Tim gibi birçok farklı yöntem bulunmaktadır. Ve bunları ayırarak daha iyi algoritmalar ortaya çıkabilir.

Ayrıca, bölgesel olarak bakıldığında, "yaratır ve kanıtlar" olarak da söylenebilir. Hemen yukarıdaki sıralama da, nasıl sıralanacağını sürekli olarak yaratır ve sonuçları kanıtlar. Geliştiriciler için daha yakın bir örnek olarak, bir proje planı ortaya çıktığında, bunu uygulamak ve düzgün çalıştığını kanıtlamak olarak görmek iyi olacaktır.

Siyaset Felsefesi

Siyaset felsefesinin "sosyal sorunları çözmek için temel bir araştırma" olduğunu düşünüyorum. Her dönemde zaten var olan farklı sorunlar hakkında tekrar tekrar sorular sorar, cevaplar üretir ve bunları günümüzle gelecek arasında paylaşır. Adalet, özgürlük, eşitlik, güç gibi çağlara ve kültürlere göre farklı yorumlanan soyut değerlerle ilgilenir ve net bir iyi veya kötü, doğru veya yanlış belirlemez, belirlenmemiş olma özelliği vardır.

Ayrıca, bilgisayar mühendisliği gibi bölgesel olarak bakıldığında, "sorgular ve muhakeme eder" olarak görülebilir. Ortaya çıkan sorun hakkında sürekli sorular sorar, neden böyle oldu, daha iyi bir yön var mı diye muhakeme eder ve cevaplar üretir. Bu da düşünen insan sayısıyla orantılı olarak birçok cevabın ortaya çıkmasına neden olur.

Neden Hem Siyaseti Hem de Bilgisayarı Bilmeliyiz?

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

Bu iki dünya, farklı alanları araştırmasına rağmen, aslında oldukça benzer noktaları paylaşmakta ve birbirlerinin nedeni ve sonucu olabilecek birçok noktayı barındırmaktadır.

Bir örnek verelim:

  1. Kişisel sağlık verileri güvenli bir şekilde buluta kaydedilirse, gerektiğinde her hastane hızlıca erişebilir. ⇒ Programlama ile güvenli ve erişilebilir bir şekilde, her alanın işlevleri kullanılarak uygulanır.
  2. Peki bu veriler kime ait? Bana mı? Kaydı yapan sorumluya mı? Yoksa ana kuruluşa mı? Geliştiriciye mi? Devlete mi? Peki benim verilerimin ne kadarını görebilirler? Kişisel bilgilerimin ne kadarının nasıl korunacağı garanti edilebilir? ⇒ Farklı topluluklar ve her bir bireyin konumları ve çıkar farklılıkları hakkında siyasi tartışmalar yaşanacaktır.
  3. Sonrasında ise, zaman zaman bu konuda siyasi tartışmalar ve programatik tasarım ve uygulama birbiri ardına tekrarlanacaktır.

Bu şekilde, mevcut sosyal sorunları çözmek için bilgisayar mühendisliği kullanılır ve buradan ortaya çıkan sorunları fark edip çözmek için sorular sorulur ve bir sonraki sorunları çözmek için siyaset felsefesi kullanılır. Bilgi çağı olan günümüzde bu doğal bir olgudur.

Siyaset ve Bilgisayar Benzer mi?

Benzer Görünmeyen Noktalar

Ayrıca bu iki dünya benzer şekillerde evrimleşmiştir. Ancak temelinde, sosyal felsefe ve doğa felsefesi arasındaki ilişkiye benzer şekilde, belirsiz ifadeler ve net ifadeler arasında bir fark vardır. Siyaset felsefesi değişken ve belirsiz tanımlamalara dayalı doğal dilleri kullanırken, bilgisayar mühendisliği doğal dillerden ziyade matematiksel ifadelerden oluşan değişmez ve net önermelere dayanır.

Ayrıca, yönelimleri de incelikli bir şekilde farklı ifade ederler. Bilgisayar mühendisliği optimal bir çözümün var olabileceğini varsayar. Siyaset felsefesi ise daha ikna edici argümanlar, daha temelli argümanlar, daha etik argümanlar gibi belirsiz kavramlardan bahseder. Ancak benim görüşüme göre, ikisinin yönelimi neredeyse aynıdır. Sonuçta, "daha iyi bir sonraki adımı" hedefliyor gibi görünüyorlar. Şu anda bilgisayar mühendisliğinin de birçok alanı olsa da, özellikle codec adı verilen medya sıkıştırma konusunda, daha iyi sıkıştırma oranı, sıkıştırma performansı ve lisans maliyeti sunmak için çabalıyorlar.

Benzer Görünen Noktalar

Özellikle programlama dilleri ve yönetim ideolojileri insanlara benzer şekilde uygulanıyor gibi görünmektedir. Her dil ve ideoloji eşleştirilemez, ancak eğlence için sıralayalım.

  • C Dili (Geliştirici ne yaptığını bilir): Bunu cumhuriyetçilikle benzetmek isterim. Tarihsel olarak Batı siyasi sistemlerinin temelini oluşturan cumhuriyetçiliğe benzer ve bireysel vatandaşların bilincini ve daha iyi bir ideale ulaşmak için bireysel çabaları vurgulayan toplulukçuluğa da benzediğini düşünüyorum. Ayrıca hakların sorumlulukları beraberinde getirmesi de benzer geldi.
  • Java (Bir kere yaz, her yerde çalıştır): Bilmiyorum. Güçlü yasalar var ve bunlara uyarak tek tip bir hayat yaşanıyor, ama bu istikrarlı ve içinde özgürlük var. Ve Spring'e girdiğinizde çeşitli refah sizi bekliyor. Liberalizm mi diyelim?
  • C# (Geliştirici verimliliği ve yazılım mühendisliği prensiplerinin uyumu): Güçlü bir hükümetin himayesinde her şey iyi tasarlanmış ve bu sistem içinde planlanan sınırlar dahilinde verimlilik ve performans en üst düzeye çıkarılabilir. Planlı ekonomi buna uyar. Komünizm olmamasının nedeni, üretim araçlarının serbest bırakılması ve üreticilerin kısıtlanmamasıdır.
  • Go (Karmaşıklıktan vazgeç, pratiklik ve verimliliği benimse): Benzeri yok. Her şeyi dağıttığı için refah devleti olsun.
  • Rust (Performans düşüşü olmadan güvenlik): Rust'ın sahiplik ve ömür kavramları, katı bir derleyici olan bir yönetici tarafından yönetilir. Bu, bireysel özgür ekonomik faaliyetin yol açtığı eşitsizlik ve riskleri önlemek için, topluluğun üretim araçlarını yöneterek ve planlayarak istikrarlı bir yaşamı garanti altına alması anlamına gelir ki, bu da bireysel özgürlüğün bir kısmını kısıtlayarak tüm sistemin güvenliğini ve eşitliğini hedeflemesi nedeniyle sosyalizm olarak düşünüyorum.
  • JavaScript (Esneklik ve hoşgörü, ve her yerde var olması): Kapitalizmle benzetmek isterim. Bu dilde, üretim araçları bireylerin eline geçer ve hatta donanımlar da bireyler tarafından bolca sağlanır. Bu sayede çeşitli endüstriyel ürünler ortaya çıkar ve serbest rekabet yoluyla herkes kar peşinde koşabilir. Ancak düzenlenmemiş piyasa kısa sürede kaosa sürüklendi.
  • TypeScript (Genişleyen JavaScript): Elbette, bu değiştirilmiş kapitalizmdir. Kapitalizme olan inanç sarsılır ve piyasanın istikrarsızlığını ortadan kaldırmak için hükümet bir ölçüde müdahale eder. Mevcut tam özgürlük nispeten gerilemiş olsa da, hala herkes özgürce piyasaya girip rekabet eder.

Ve şaşırtıcı derecede az sayıda geliştirici, tıpkı gerçek hayatta ideolojik savaşlar yapıyor gibi, diller üzerinden çok kavga eder. Dilin kendisi, geliştiriciler için tanıdık bir ideoloji ve takip edilmesi gereken bir idealdir.

Devlet ve Mimari

  • Monolitik Mimari ve Merkeziyetçi Devlet: Tek bir devasa kod tabanı ve tek bir ikili dosyada her şey bulunur. Bu, güçlü bir merkezi hükümete sahip tek bir devlet veya mutlak monarşi ile benzer bir yapıya sahiptir. Devletin tüm işlevleri tek bir güç sistemi tarafından kontrol edilir.
    • Devletin oluşumunu kolaylaştırma ve hızlı karar alma avantajına sahiptir. Bu, tüm yazılımın hızlı bir şekilde ortaya çıkması avantajıyla aynı doğrultudadır. Tüm kaynaklar ve bilgiler tek bir yerde toplandığı için yönetimi nettir.
    • Ancak devlet büyüdükçe değişime uyum sağlamak zorlaşır ve küçük bir kanunu veya düzenlemeyi değiştirmek isteseniz bile tüm sistemi gözden geçirip uygulamak gerekir. Bir alandaki sorun, tüm devleti felç etme riskini de beraberinde getirir. Monolitik mimari de büyük kod tabanı ve bağlı kodlar nedeniyle değişime uyum sağlamakta zorlanır ve tek bir satır kodu değiştirmek isteseniz bile etki alanını hesaplamak ve bir modülde oluşan bir sorunun tüm sistemi etkilemesi kolaydır.
  • MSA ve Federal Devlet: Sistemin her işlevi bağımsız hizmetlere ayrılır. Bu, devletin her parçasının birkaç bağımsız eyaletten oluşan federal bir devlete benzerlik gösterir. Ayrıca her hizmet ve eyalet bağımsız bir altyapıya sahiptir. Merkezi hükümetin müdahalesi gevşektir ve bağımsızlık veya katılımın ne zaman gerçekleşeceği belli değildir, bu da benzerdir.
    • Temel olarak, her bağımsız eyalet ve hizmet bağımsız olarak yasaları değiştirebilir/kod yazabilir. Bu, birbirlerinin temposuna uyum sağlamalarına gerek kalmaz. Ayrıca, bir yerde sorun çıksa bile tüm federasyonun felç olması zordur. Ve her bölgeye veya alana uygun kurumları (teknolojileri) seçebilirler.
    • Ancak, karşılıklı anlaşma sağlamak veya iletişim kanalları oluşturmak zor bir konudur. Tutarlı bir politika izlemek zor olabilir ve karışıklığa yol açabilir.
  • EDA (Event Drive Architecture) ve Sivil Toplum: Merkezi hükümet veya vekilin doğrudan emir vermesinden ziyade, ortaya çıkan sosyal sorunları bireylerin inisiyatif alarak özerk bir şekilde çözmesidir. Bu, EDA'nın özelliği olan bir olay meydana geldiğinde, abonelerden birinin özerk bir şekilde olayı alıp işlemesine benzer.
    • Herkes kolayca katılabilir. EDA da yeni bir hizmetin kolayca yeni bir abone olarak sürece katılmasına olanak tanır.
    • Ancak, tüm akışı anlamak mümkün değildir. Kimin nasıl işlediğini takip etmek zor olabilir ve tek bir olayın hangi zincirleme reaksiyonları tetikleyeceğini bilmek mümkün değildir.
  • Katmanlı Mimari ve Feodalizm: Feodalizm, her katmanın kendi görev ve sorumluluklarını yerine getirerek, üst katmana karşı yükümlülüklerini yerine getirdiği bir yapıdır. Bunlar bir tür sözleşme ilişkisiyle bağlıdır ve katı bir dikey hiyerarşi oluşturur ki bu da katmanlı mimariyle benzerlik gösterir.

Bu gibi daha birçok benzetme yapılabilir, ancak bu yazının ana fikri, yapının kendisinden ziyade o yapıyı oluşturma sürecindedir.

Geliştirme ve Siyasetin Problem Çözümü Aynı Olabilir mi?

Yazılım mimarisi ve devlet sistemi birbirine benziyorsa, her ikisini de oluşturma süreçleri de şaşırtıcı derecede paraleldir. Yazılım geliştirme süreci, aslında dijital alanda yeni bir düzen kurma ve geliştirme siyasi eyleminden farksızdır.

  1. Sosyal Sorunun Kamuya Açılması ve Gereksinim Analizi: Her şey "Sorun ne?" sorusuyla başlar. Sivil toplumun acıları ve rahatsızlıkları kamuoyuna açılarak siyasi bir gündem haline geldiği gibi, kullanıcıların rahatsızlıkları ve talepleri de analiz edilerek 'gereksinimler spesifikasyonu' adı verilen geliştirmenin ilk kilometre taşı olur.
  2. Anayasa Tasarımı ve Mimari Tasarımı: Nasıl bir devlet kuracağız? Nasıl bir sistem kuracağız? Siyasetçiler ideolojileri ve felsefeleri temel alarak anayasa ve yasaların iskeletini oluşturduğu gibi, mimarlar da teknik inançlarını temel alarak sistemin temelini oluşturacak mimarinin ana hatlarını çizerler. Bu aşamadaki kararlar sistemin kaderini belirler.
  3. Politika Uygulaması ve Yazılım Uygulaması: Tasarım tamamlandığında, geliştiriciler gerçek kodu yazar ve idari memurlar yasalara göre politikaları uygular. Soyut bir planın gerçek dünyada işleyen somut bir varlığa dönüşme sürecidir.
  4. Seçim Yoluyla Yargılama ve Yazılım Testi: Politikalar seçimler ve kamuoyu aracılığıyla meşruiyetlerini yargılanır. Yazılımlar ise QA ekibinin testleri ve kullanıcı geri bildirimleri aracılığıyla değerlerini doğrular. Her ikisi de sonuçta egemen gücün (vatandaşlar, kullanıcılar) rızasını almadan varlığını sürdüremez.
  5. Kurumsal Reform ve Sistem Bakımı: Bir kez oluşturulan yasalar ve sistemler sonsuz değildir. Çağın değişimine ayak uydurarak eski yasaları değiştirmek ve kurumları reforme etmek gibi, yazılım da değişen ortama uyum sağlamayı ve iç verimsizlikleri iyileştiren 'Refactoring'i durdurduğu anda ölü bir kod haline gelir.

Bu şekilde, sorun tanımından tasarıma, uygulamaya, doğrulamaya ve durmaksızın iyileştirmeye kadar tüm süreç, iki dünyanın aynı problem çözme ritmini paylaştığını göstermektedir.

Yeni Yasamacıların Günü

Bilgi toplumu, bu iki felsefenin zirvesi arasındaki mesafeyi anlamsız hale getirdi. Kod artık basit bir mantık devresi değil, insanların ilişkilerini düzenleyen, gücü dağıtan ve sosyal değerleri gerçekleştiren bir "yasadır (Code is Law)". Tasarladığımız mimari devletin yönetim yapısına benziyorsa ve takip ettiğimiz geliştirme süreçleri siyasi uzlaşma süreciyle aynıysa, biz geliştiriciler aslında kimiz? Peki siyasetçiler ne yapmalı? Bu nedenle, geliştiriciler artık sadece kodun mantığını değil, o kodun yaratacağı toplumu da muhakeme etmeli; siyasetçiler ise sadece oyların mantığını değil, dünyayı hareket ettiren teknolojinin mantığını da anlamalıdır. Çünkü her birimizin kendi dünyasında kullandığı bu muazzam güç, aynı derecede etik sorumluluğu da beraberinde getirir.