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.

C++’ta Tanrı Olmak: Yarattığın Nesneyi Öldürmeyi Unutursan Ne Olur?

C++’ta Tanrı Olmak: Yarattığın Nesneyi Öldürmeyi Unutursan Ne Olur?

C++ programcısı, sıradan bir kod yazarı değil; küçük bir evrenin demiurgosudur. Bir nesne yaratır, ona adres verir, ömür biçer, başka varlıklara referans olarak sunar ve sonra en kritik soruyla baş başa kalır: Bu şey ne zaman yok olacak? Çöp toplayıcısı olan dillerde bu soru çoğu zaman bürokrasiye devredilir. Java ya da C# evreninde ölüm, arka planda çalışan görünmez bir memurun dosya kapatması gibidir. C++’ta ise ölüm törenini bizzat sen düzenlersin. Unutursan, ölüler dolaşmaya devam eder.

Bu nedenle C++’ta bellek yönetimi yalnızca teknik bir mesele değildir; bir sahiplik felsefesidir. new ile bir nesne yarattığında, aslında şunu söylersin: Bu varlığın sorumluluğunu üstleniyorum. delete çağrısını unutmak sadece birkaç baytın kaybolması değildir; nedensellik zincirinde kapanmamış bir parantez bırakmaktır. Program çalışmaya devam edebilir, testler yeşil yanabilir, müşteri mutlu görünebilir. Ama heap’in karanlık köşesinde, adı konmamış bir sızıntı büyür. C++ bize şunu öğretir: Görünmeyen borç, borç olmaktan çıkmaz.

Aynı Nesne, Bin Yüz: Polimorfizm Bize Kim Olduğumuzu mu Anlatıyor?

Programlamada polimorfizm, bir nesnenin farklı bağlamlarda farklı davranabilmesidir. Aynı metoda çağrı yaparsınız, fakat yanıt nesnenin türüne, durumuna ya da ait olduğu sınıfa göre değişir. Bir çiz komutu daireyi daire gibi, kareyi kare gibi, üçgeni üçgen gibi davranmaya çağırır. Dışarıdan bakınca komut tektir; içeride ise çeşitlilik çalışır. Bu fikir, yalnızca yazılım mühendislerinin temiz kod yazma hilesi değildir. İnsan toplumunu anlamak için de şaşırtıcı derecede verimli bir mercek sunar.

Sosyolojik çoklu kimlik kuramı bize şunu hatırlatır: İnsan tek parça, sabit, mermerden oyulmuş bir varlık değildir. Aynı kişi evde çocuk, işte yönetici, sokakta yurttaş, internette anonim bir kullanıcı, arkadaş grubunda komik biri, kriz anında lider olabilir. Burada sahtekârlık değil, bağlama duyarlı davranış vardır. Tıpkı polimorfik bir nesne gibi, insan da karşılaştığı sosyal arayüze göre kendini çalıştırır. Sorun, farklı davranmamızda değil; hangi durumda hangi benliği çağırdığımızı fark etmememizde başlar.

Matematik Üzerine Sokratik Bir Diyalog

Aşağıdaki yazı Alfred Renyi nin “Matematik Üzerine Diyaloglar” kitabından alınmıştır. Socrates ve Hipokrat arasında geçen güzel bir diyalog bence. Bir kısmını aktarıyorum.

MATEMATİĞİN NESNESİ NEDİR?

SOKRAT(S): Pekala, o halde bana matematiğin ne olduğunu bilip bilmediğini söyler misin? Sanırım üzerinde çalışmak istediğine göre matematiği tanımlayabilirsin de.
HİPOKRAT(H): Bunu çocuklar bile yapabilir. Matematik bir bilimdir ve elbette bilimlerin en güzellerinden biridir.
S: Senden istediğim matematiği övmen değil, onun doğasını tanımlamandı. Örneğin eğer sorum Tıp hakkında olsaydı, bu sanatın hastalık ve sağlıkla uğraştığını ve amacının hastalıkları iyileştirmek ve sağlığı korumak olduğu cevabını verecektin. Haklı değil miyim?
H: Kesinlikle.
S: O halde şu soruyu cevapla; Doktorluk sanatı var olanla mı yoksa var olmayan şeylerle mi ilgilidir? Doktorlar olmasa da hastalık var mıdır?
H: Kesinlikle, hatta şu an olandan daha da fazla olacaktır.
S: Şimdi de başka bir sanata geçelim, mesela Astronomi olsun. Astronomların yıldızların hareketi üzerinde çalıştıkları konusunda bana katılıyor musun?
H: Şüphesiz.
S: Astronomlar var olan bir şeyle mi uğraşıyorlar diye sorsam cevabın ne olur?
H: Evet olacaktır tabii ki.
Devamını oku “Matematik Üzerine Sokratik Bir Diyalog” →