Yeni Okuma Yazma: Kodu Bilmeyenler Geleceğin Seyircisi mi Olacak?

Yeni Okuma Yazma: Kodu Bilmeyenler Geleceğin Seyircisi mi Olacak?

Bir zamanlar harfleri çözebilen kişi, yalnızca kitap okuyabilen biri değildi; vergi kayıtlarını anlayan, sözleşme yazan, yasayı yorumlayan ve uzaktaki iktidarla ilişki kurabilen kişiydi. Okuma yazma, uzun süre boyunca zihinsel bir anahtar, hatta sınıfsal bir şifre oldu. Köylü toprağı sürerken kâtip defteri tutuyor; kralın buyruğu, onu okuyabilenlerin ağzından yeniden doğuyordu. Bugün benzer bir eşikteyiz: Dünya artık yalnızca metinlerle değil, kodla da yönetiliyor.

Kod, bilgisayara verilen teknik talimatların toplamı gibi görünür. Oysa daha derinde, davranışları düzenleme sanatıdır. Bir öneri algoritması ne izleyeceğimizi, bir kredi modeli kime güvenileceğini, bir navigasyon sistemi hangi sokaktan geçeceğimizi, bir işe alım yazılımı ise kimin görüşmeye çağrılacağını etkiler. Bu sistemlerin çoğu görünmezdir; çalışırlar, karar verirler ve genellikle açıklama yapmazlar. Eski çağın okuma bilmeyeni resmi belge karşısında nasıl savunmasızsa, günümüzün kod okuryazarı olmayan insanı da algoritmik kararların karşısında öyle savunmasız kalabilir.

Eski Hataların Yeni Sürümleri: Kodda Geçmişi Taşımanın Laneti

Geriye dönük uyumluluk, yazılım dünyasının en kibar görünümlü hayaletlerinden biridir. Dışarıdan bakınca olgunluk, güvenilirlik ve kullanıcıya saygı gibi görünür. İçeriden bakınca ise bazen kırık bir sandalyeyi müzede sergilemek değil, hâlâ toplantı odasında kullanmak zorunda kalmaktır. Bir zamanlar aceleyle yazılmış, kimsenin tam anlamadığı, fakat milyonlarca sistemin üzerine bina edildiği bir karar; yıllar sonra mimarinin kutsal taşı haline gelir. Çünkü onu kaldırırsanız sadece bir fonksiyonu değil, bir ekosistemi düşürürsünüz.

Programlamada geriye dönük uyumluluk şu basit vaadi verir: Dün çalışan şey bugün de çalışacak. Bu vaat, kullanıcı için huzurdur; geliştirici içinse omuzlara asılmış görünmez bir çuval. İçinde eski API kararları, yanlış isimlendirilmiş parametreler, tuhaf varsayılan değerler, mantıksız veri formatları ve birinin 2009’da cuma akşamı saat 17.43’te yaptığı küçük bir kestirme vardır. O kestirme artık ürünün anayasasına dönüşmüştür.

Kodun Bize Fısıldadığı Sır: Hayatta Her Detayı Bilmek Zorunda Değilsin

Programlamada soyutlama, ilk bakışta teknik bir kavram gibi görünür: karmaşık ayrıntıları sakla, kullanıcıya yalnızca gereken düğmeyi, fonksiyonu, arayüzü göster. Fakat dikkatli bakınca bunun sadece bilgisayarların değil, insan zihninin de hayatta kalma stratejisi olduğunu fark ederiz. Sabah kahve makinesine bastığınızda termodinamik, elektrik devreleri, su basıncı ve metal alaşımlar üzerine düşünmezsiniz. Sadece kahve istersiniz. Makine size evrenin tüm mühendislik dramını değil, bardağı verir. İşte soyutlama budur: kaosu kullanışlı bir şekle sokma sanatı.

Kodun Perde Arkası

Bir yazılımcı için soyutlama, karmaşayı yenmenin en zarif yollarından biridir. Diyelim ki bir uygulamada kullanıcı kaydı yapıyorsunuz. Parola şifrelenecek, veri tabanına bağlantı kurulacak, e-posta doğrulaması gönderilecek, hata kontrolü yapılacak. Bunların hepsini her seferinde tek tek yazarsanız kodunuz kısa sürede dijital bir çöp sahasına dönüşür. Bunun yerine kullaniciOlustur() gibi bir fonksiyon yazarsınız. Artık içerideki ayrıntılar saklanır; dışarıdan bakınca yalnızca anlamlı bir eylem görünür. Bu, bilgisayara emir vermekten çok, düşünceyi düzenlemektir.

Bir Değişkene İsim Verdiğinde Evreni Derliyorsun

Kodlamada isimlendirme çoğu zaman küçük bir nezaket kuralı gibi anlatılır: Okunabilir olsun, ekip arkadaşın anlasın, altı ay sonra kendine küfretme. Bunlar doğru, fakat yüzeyde kalır. Bir değişkene isim vermek yalnızca etiketi kavanoza yapıştırmak değildir; kavanozu, içindekini ve onu hangi rafta arayacağımızı aynı anda icat etmektir. Programcı, count yazdığında sayılabilir bir şeyler evreni kurar. activeUsers dediğinde kullanıcıları varlık, etkinliği durum, çoğulluğu da yönetilecek bir alan olarak ilan eder. Bu küçük satırda sessiz bir metafizik çalışır.

Ontoloji, en basit haliyle neyin var olduğunu ve nasıl var olduğunu sorgular. Yazılımda bu soru daha acımasızdır, çünkü cevap derlenir. Bir veriye temp adını verdiğinizde onu geçici, değersiz, birazdan atılacak bir nesne haline getirirsiniz. Sonra o temp, sistemin kalbine yerleşir; kimse dokunamaz, çünkü kimse onun gerçekte ne olduğunu bilmez. Böylece kötü isim, teknik borçtan önce varoluşsal borç üretir. Kod tabanında dolaşan hayaletlerin çoğu, yanlış adlandırılmış varlıklardır.

İlk Kodunu Yazdın ve Kendini Dahi Sandın mı? Zihnin Sana Küçük Bir Oyun Oynuyor

Programlamaya ilk başladığın günü düşün: Ekrana birkaç satır yazarsın, çalıştırırsın ve mucize gerçekleşir. Bilgisayar sana itaat etmiştir. Belki bir değişken tanımladın, belki ekrana merhaba dünya yazdırdın, belki de iki sayıyı toplayan küçük bir program yaptın. O an, evrenin kapısına gizli bir şifre girmiş gibi hissedersin. İçinden bir ses yükselir: Ben bunu çözdüm. Hatta belki biraz daha ileri gider: Silikon Vadisi, geliyorum.

İşte bu an, Dunning-Kruger Etkisi’nin programlama kostümü giymiş halidir. Kişi bir alanda çok az şey öğrendiğinde, henüz bilmediği şeylerin büyüklüğünü de bilmez. Bilgi ufku dar olduğu için dünya da küçük görünür. Bir çocuk nasıl mahalle parkını tüm evren sanabilirse, yeni başlayan programcı da döngüleri öğrenince yazılım mühendisliğini avucuna aldığını düşünebilir.