Kod Yazarken Tanrı mı Oluyoruz, Bürokrat mı?

Kod Yazarken Tanrı mı Oluyoruz, Bürokrat mı?

Programlama dili seçtiğimizi sanırız; çoğu zaman seçtiğimiz şey bir dünya görüşüdür. Bir dil bize yalnızca döngü, değişken, sınıf ya da fonksiyon vermez; gerçekliğin nasıl bölüneceğine, zamanın nasıl akacağına, kimlerin kimlere emir vereceğine dair sessiz bir anayasa sunar. Fonksiyonel programlama ile nesne yönelimli programlama arasındaki eski tartışma da bu yüzden sadece teknik değildir. Bir tarafta neredeyse statik, matematiksel, değişmez bir evren; diğer tarafta kimlikleri, rolleri, mirasları ve mesajları olan hiyerarşik bir toplum vardır.

Fonksiyonel evren: Zamanın üzerinde duran kristal

Fonksiyonel programlama, özellikle saf fonksiyonlar ve değişmez veri yapılarıyla çalıştığında, dünyayı Platoncu bir geometri gibi görür. Bir fonksiyon aynı girdiye daima aynı çıktıyı verir. Bugün de, yarın da, üretim ortamında saat üçte panik halinde çalışırken de. Bu, yazılımcıya garip bir huzur verir: Evrenin bir köşesi en azından deterministtir. Değişkenler değişmez, sadece yeni değerler doğar. Geçmiş silinmez; onun üzerine yeni katmanlar eklenir.

Bir Avuç Kural, Sonsuz Evren: Turing Tamlığın Baş Döndüren Sırrı

Bir Avuç Kural, Sonsuz Evren: Turing Tamlığın Baş Döndüren Sırrı

Bir programlama dilinin Turing tam olması, ilk bakışta teknik bir rozet gibi görünür: kutuya yapıştırılmış küçük bir etiket, mühendislerin birbirine başıyla selam verdiği kuru bir ayrıntı. Oysa mesele bundan çok daha kışkırtıcıdır. Çünkü Turing tamlık şunu söyler: Eğer yeterince zaman ve bellek verilirse, bu sistem evrende hesaplanabilir olan her şeyi hesaplayabilir. Bir avuç kural, sonsuz çeşitlilikte davranış üretebilir. Bu, bilgisayar biliminin içinden felsefenin kalbine açılan gizli bir kapıdır.

Basitlikten Sonsuzluğa Açılan Kapı

Turing tam bir sistem için ihtiyacımız olan şeyler şaşırtıcı derecede mütevazıdır: koşullu dallanma, bellek, tekrar edebilme yeteneği. Yani sistem, geçmişte ne yaptığını bir şekilde tutabilmeli, duruma göre farklı davranabilmeli ve aynı işlemi defalarca uygulayabilmelidir. Hepsi bu kadar. Fakat bu küçük araç takımıyla satranç motoru, web tarayıcısı, yapay zekâ modeli, muhasebe yazılımı, simülasyon ve hatta başka bir bilgisayarın taklidi üretilebilir. Buradaki ders açıktır: Güç, karmaşık kurallarda değil; kuralların doğru biçimde birleşebilmesindedir.

Sıfır: Hiçliği Sayıya Dönüştüren ve Dünyayı Yeniden Hesaplayan İşaret

Sıfır: Hiçliği Sayıya Dönüştüren ve Dünyayı Yeniden Hesaplayan İşaret

Sıfır, ilk bakışta matematiğin en mütevazı karakteridir: Ne bir elma, ne bir koyun, ne de bir yıldız sayar. Bir şeyi temsil etmek yerine onun yokluğunu bildirir. Fakat tam da bu nedenle, insan zihninin en cüretkâr buluşlarından biridir. Hiçliğe bir sembol vermek, boş bir koltuğu saymak kadar tuhaf görünmüş olmalıydı. Buna rağmen sıfır, yalnızca hesap yapmayı kolaylaştırmadı; sayıların dilini, bilimin omurgasını ve soyut düşüncenin sınırlarını değiştirdi.

Boş yer tutucudan gerçek sayıya

Eski uygarlıklar büyük sayılarla uğraşıyordu, ancak sayı sistemlerinde önemli bir sorun vardı: Bir işaretin hangi basamakta bulunduğu nasıl anlaşılacaktı? Babil matematiğinde zamanla boş basamağı belirtmek için bazı işaretler kullanıldı. Ancak bu işaret, çoğu kez bağımsız bir sayı değildi. Asıl devrim, sıfırın hem bir yer tutucu hem de işlem görebilen bir sayı olarak anlaşılmasıyla geldi. Hint matematik geleneği bu adımı olağanüstü bir açıklıkla attı. Brahmagupta, yedinci yüzyılda sıfırla toplama ve çıkarma kurallarını formülleştirdi: Bir sayıdan kendisini çıkarırsanız sıfır kalır; sıfıra bir sayı eklerseniz sayı değişmez.

Bir Denklemin İçindeki Gizli Zarafet: Neden Sade Çözümler Bizi Büyüler?

Bir Denklemin İçindeki Gizli Zarafet: Neden Sade Çözümler Bizi Büyüler?

Matematikte bazen uzun bir hesap, sayfalarca sembol ve birbirine dolanmış varsayımlar tek bir hamleyle açılır. Bir ifade çarpanlarına ayrılır, gereksiz terimler birbirini götürür ya da karmaşık görünen bir problem doğru değişken seçildiğinde birkaç satırlık bir yapıya dönüşür. O anda duyulan şey yalnızca “çözmüş olmanın” rahatlığı değildir. Daha garip, daha yoğun bir histir: Sanki dünyanın dağınık yüzeyinin altında saklanan düzen bir anlığına görünür olmuştur.

Bu yüzden matematiksel sadeleştirme yalnızca teknik bir işlem değildir; estetik bir yargıdır. Bir çözümün “güzel” olduğunu söylediğimizde çoğu zaman onu kısa olduğu için değil, zorunlu göründüğü için överiz. Güzel çözüm, sonradan eklenmiş hileler taşımaz. Parçaları birbirine sıkıca bağlanır. İlk bakışta şaşırtır, ikinci bakışta ise “Başka türlüsü zaten olamazdı” dedirtir. Matematiğin estetiği tam da bu iki duygu arasındaki gerilimde yaşar: sürpriz ve kaçınılmazlık.

Gerçekte Yok Denen Sayı Dünyayı Nasıl Çalıştırıyor?

Matematikte bazen kapı açılmaz. Anahtarı çevirirsiniz, denklem direnç gösterir, gerçek sayılarla ilerlersiniz ama bir noktada duvara çarparsınız. Mesela x² + 1 = 0 denklemini ele alalım. Gerçek sayılar evreninde hiçbir sayının karesi -1 değildir. Pozitifin karesi pozitif, negatifin karesi yine pozitiftir. Sıfırın karesi de sıfırdır. O halde bu denklem çözümsüz müdür? Matematikçinin en sevdiği cevap burada sahneye çıkar: Henüz çözümsüz.

İşte i sayısı bu meydan okumadan doğar. Tanımı yalındır: i² = -1. İlk bakışta bu, çocukça bir hile gibi görünebilir. Olmayan bir sayı uydur, sonra da denklemi çözdüğünü söyle. Fakat matematikte büyük devrimlerin çoğu böyle başlar: Önce imkânsız görünen bir fikre isim verilir, sonra o isim bir evren kurar. Sıfır da bir zamanlar tuhaftı. Negatif sayılar borçtan başka bir şey değil sanılıyordu. Kesirler, irrasyoneller, sonsuzluklar… Matematik tarihi, aklın kendi sınırlarını genişletme tarihidir.