Unutulmuş ve Ezoterik Programlama Dilleri Nedir?

Bir programlama dili düşünün: hiçbir uygulama geliştirmek, hiçbir gerçek sorunu çözmek için tasarlanmamış. Tek amacı bir şaka yapmak, bir sanat eseri olmak ya da yazması neredeyse imkânsız bir bulmacaya dönüşmek. Kulağa tuhaf gelse de bu unutulmuş ve ezoterik programlama dilleri gerçek; üstelik bir kısmı onlarca yıldır meraklıların ilgisini canlı tutuyor.
Bu yazımızda unutulmuş ve ezoterik programlama dilleri dünyasına yakından bakıyoruz. Bu diller neden yaratıldı, programcılara ne öğretiyor ve pratik hiçbir değeri yokken bugün hâlâ neden konuşuluyorlar? INTERCAL’dan Brainfuck’a, Malbolge’dan görünmez Whitespace’e uzanan bu yolculukta, kodun yalnızca bir araç değil, aynı zamanda bir oyun alanı da olabileceğini birlikte göreceğiz.
İçerik Başlıkları
Ezoterik Programlama Dili Nedir?
Ezoterik programlama dili (İngilizce “esoteric programming language”, kısaca “esolang”), pratik yazılım geliştirmek için değil; bir fikri denemek, sınırları zorlamak ya da eğlenmek için tasarlanmış dildir. Bu diller genellikle “unutulmuş” sayılır, çünkü hiçbir zaman ana akım araçların arasına girmeyi hedeflemezler.
Buradaki “unutulmuş” sözcüğü iki ayrı anlama gelir. Bir kısım dil, INTERCAL gibi baştan bir parodi olarak doğdu ve yalnızca küçük bir topluluğun hafızasında yaşıyor. Bir kısmı ise COBOL gibi bir zamanlar dünyayı çeviren, ama gözden düşerek görünmezleşen devlerdir. İkisi de farklı sebeplerle gündelik yazılımın dışına düşmüştür.
Ortak nokta şudur: bu diller çoğu geliştiricinin günlük hayatında yer almaz, ama bilgisayar biliminin (computer science) en yaratıcı köşelerinden birini oluşturur. Aşağıdaki tabloda öne çıkan birkaç ezoterik dilin künyesini bir arada görebilirsiniz.
| Dil | Yaratıcı(lar) | Yıl | Temel amaç |
|---|---|---|---|
| INTERCAL | Donald R. Woods, James M. Lyon | 1972 | Dönemin dillerine parodi |
| Brainfuck | Urban Müller | 1993 | Mümkün olan en küçük derleyici |
| Malbolge | Ben Olmstead | 1998 | Kasıtlı olarak imkânsız zorluk |
| Shakespeare | Karl Hasselström, Jon Åslund | 2001 | Tiyatro oyunu gibi görünen kod |
| Whitespace | Edwin Brady, Chris Morris | 2003 | Yalnızca boşluk karakterleri |
Bu Diller Neden Yaratıldı?
Ezoterik programlama dilleri neden yaratıldı sorusunun tek bir yanıtı yok; ama birkaç ortak gerekçe öne çıkar. Bazıları saf bir şaka olarak, bazıları bir fikri kanıtlamak için, bazıları da sanatsal bir meydan okuma olarak doğdu.
- Şaka ve parodi: Dönemin şişkin, kurumsal yazılım kültürüyle dalga geçmek (INTERCAL bunun en iyi örneği).
- Minimalizm: Bir dili en aza indirip yine de her şeyi hesaplayabildiğini göstermek (Brainfuck).
- Zorluk: “Acaba yazması ne kadar imkânsız bir dil yapabilirim?” sorusu (Malbolge).
- Sanat: Kodun bir tiyatro oyunu, bir yemek tarifi ya da boş bir sayfa gibi görünmesini sağlamak (Shakespeare, Chef, Whitespace).
Bu dillerin çoğu, temel bir teorik gerçeğe dayanır: bir dilin kullanışlı olması ile güçlü olması aynı şey değildir. Birazdan göreceğiniz gibi, sekiz komutluk bir dil bile teoride her programı çalıştırabilir.
Öne Çıkan Ezoterik Diller
Şimdi bu tuhaf ailenin en tanınmış üyelerine tek tek bakalım. Her biri farklı bir soruya yanıt olarak doğdu ve kendine özgü bir mizah anlayışı taşıyor.
INTERCAL (1972): İlk ve En Kibar Parodi
Genellikle ilk gerçek ezoterik dil kabul edilen INTERCAL, 1972’de Donald R. Woods ve James M. Lyon tarafından tasarlandı. Amaçları açıktı: o günün hiçbir programlama diline benzemeyen bir dil yapmak.
INTERCAL’ın en ünlü özelliği kibarlık zorunluluğudur. Komutların başına “PLEASE” (lütfen) ya da “DO” (yap) getirmeniz gerekir. Ama ölçüyü kaçırmamalısınız: satırların çok azı kibarsa derleyici sizi “kaba” bulup programı reddeder; çok fazlası kibarsa bu kez “samimiyetsiz” sayılırsınız. Dilin açılımı bile bir şakadır: “telaffuz edilebilir bir kısaltması olmayan derleyici dili”.

Brainfuck (1993): Sekiz Komutla Her Şey
İsviçreli öğrenci Urban Müller, 1993’te Brainfuck‘ı yarattığında hedefi tek şeydi: mümkün olan en küçük derleyiciyle çalışan bir dil. FALSE adlı başka bir ezoterik dilin yaklaşık 1 kilobaytlık derleyicisinden ilham aldı ve kendi derleyicisini Amiga üzerinde yalnızca 296 bayta sığdırdı.
Dil sadece sekiz komuttan oluşur: > < + - . , [ ]. Bu kadar azıyla bile Brainfuck “Turing tam” (Turing complete) bir dildir; yani teoride her programı yazabilirsiniz. Ancak pratikte basit bir “Merhaba Dünya” bile uzun bir komut zinciri gerektirir. Bu yüzden Brainfuck, “Turing bataklığı” (Turing tarpit) denen sınıfın klasik örneğidir: her şeyi yapabilir, ama hiçbirini kolay yapamaz.
![Brainfuck programlama dilinde yalnızca sekiz sembolden (> < + - . , [ ]) oluşan Merhaba Dünya kaynak kodu ekran görüntüsü](https://thinpo.com/wp-content/uploads/2026/07/003-brainfuck-merhaba-dunya-kodu.webp)
Malbolge (1998): Kasten İmkânsız
Ben Olmstead 1998’de Malbolge‘yi tasarlarken diğer dillerin tersi bir amaç güttü: yazması olabildiğince imkânsız bir dil. Adını bile Dante’nin Cehennemi’ndeki sekizinci çukurdan, dolandırıcılara ayrılmış “Malebolge”den alır.
Dil; kendini değiştiren kod, üçlü tabanlı aritmetik ve akıl almaz bir “çılgın işlem” üzerine kuruludur. Öyle ki ilk çalışan “Merhaba Dünya” programı, dil çıktıktan tam iki yıl sonra yazılabildi. Üstelik bu programı bir insan elle yazmadı; olası tüm programları tarayan bir Lisp programının ışın arama (beam search) algoritması üretti. Malbolge, “en zor programlama dili” tartışmalarının değişmez adayıdır.

Whitespace (2003): Görünmez Kod
Edwin Brady ve Chris Morris tarafından 2003’te tanıtılan Whitespace, adı üstünde yalnızca boşluk karakterlerini kullanır: boşluk, sekme (tab) ve satır sonu. Diğer tüm karakterler yok sayılır.
Sonuç şaşırtıcıdır: bir Whitespace programını metin düzenleyicide açtığınızda ekran tertemiz, bembeyaz görünür. Kod oradadır, ama gözle görünmez. Dil ilk olarak bir 1 Nisan şakası havasında duyurulmuştu, ama tümüyle çalışan, Turing tam bir dildir.

Shakespeare Programlama Dili (2001): Kod Değil, Oyun
Karl Hasselström ve Jon Åslund’un 2001’de yaptığı Shakespeare Programlama Dili (Shakespeare Programming Language), belki de en şık fikre sahiptir. Amaç, kaynak kodun bir Shakespeare tiyatro oyunu gibi görünmesidir.
Programın başında bir “oyuncu listesi” bulunur; Romeo ve Juliet gibi karakterler aslında birer yığın (stack) değişkenidir. Bu karakterler diyaloglara girer, birbirlerinin değerlerini değiştirir ve giriş-çıkış yapar. Perde arkasında ise yığın tabanlı, Turing tam bir dil çalışır. Yani şiir gibi okunan bir metin, gerçek hesaplama yapar.

Bu aile burada bitmiyor. Kodun bir yemek tarifi gibi göründüğü Chef, iki boyutlu bir ızgarada gezinen Befunge ve internet mizahının bozuk İngilizcesini taklit eden LOLCODE de aynı yaratıcı geleneğin parçalarıdır.
COBOL: Unutulmadı, Görünmez Oldu
Şimdiye kadarki diller birer şaka ya da meydan okumaydı. Ama “unutulmuş programlama dilleri” dendiğinde akla gelen bambaşka bir hikâye daha vardır: bir zamanlar dünyanın belkemiği olan, sonra gözden kaybolan ama hâlâ sessizce çalışan diller. COBOL bunun en çarpıcı örneğidir.
1959’da doğan COBOL, çoğu geliştiricinin radarından çoktan çıktı. Yine de bugün bankaların, sigorta şirketlerinin ve devlet kurumlarının çekirdek sistemlerinde milyarlarca satır COBOL kodu çalışmaya devam ediyor. Sektör kaynaklarına göre kullanımda hâlâ yaklaşık 220 milyar satır COBOL var; ATM işlemlerinin büyük bölümü ve pek çok bankanın temel sistemi bu dile dayanıyor.
İşin ironisi şu: COBOL “unutulduğu” için tehlikeli hâle geldi. Onu yazan kuşak emekli oldu, yerine yetişen genç uzman az. Yani COBOL, ezoterik dillerin tam tersi bir sebeple — çok işe yaradığı hâlde göz ardı edildiği için — bugün yeniden konuşuluyor.

Bu Diller Programcılara Ne Öğretir?
Peki pratik hiçbir işe yaramayan bu dilleri kurcalamanın ne anlamı var? Aslında sandığınızdan çok şey öğretiyorlar.
- Hesaplamanın özü: Brainfuck gibi minimal diller, “Turing tamlığı” kavramını çıplak biçimde gösterir. Bir dilin güçlü olması için karmaşık olması gerekmediğini anlarsınız.
- Soyutlamanın değeri: Modern dillerin sunduğu kolaylıkları ancak onlar olmadan kod yazmaya çalışınca fark edersiniz. Bir döngüyü Brainfuck’ta kurmak, Python gibi pratik bir dilde aynı işi yapmanın ne kadar konforlu olduğunu hatırlatır.
- Yaratıcı düşünme: Bir problemi alışılmadık kısıtlar altında çözmek, programcının zihnini esnetir.
Kısacası bu diller birer oyuncak gibi görünse de, arkalarında ciddi bir bilgisayar bilimi dersi saklıdır.
Neden Hâlâ İlgi Çekiyorlar?
Onlarca yıl sonra bile bu diller neden gündemde kalıyor? Çünkü işlevden çok kültüre aitler ve o kültür hâlâ canlı.
Bir yanda, en kısa kodu yazmaya çalışan “code golf” yarışmaları ve dijital sanat projeleri bu dilleri bir tuval gibi kullanıyor. Öte yanda Esolang gibi topluluk vikilerinde her yıl yeni ezoterik diller doğuyor; tıpkı açık kaynak topluluklarının ürettiği pek çok araç gibi, bunlar da tamamen gönüllü merakla ayakta duruyor.
Son yıllarda bir boyut daha eklendi: yapay zeka. Bir zamanlar iki yılda ancak yazılabilen Malbolge programlarını, bugün kod üreten yapay zeka modelleri çok daha hızlı deneyebiliyor. Bu da eski bulmacaların yeni bir sınav alanına dönüşmesini sağlıyor.
Sonuç
Unutulmuş ve ezoterik programlama dilleri, yazılımın yalnızca verimlilikten ibaret olmadığını hatırlatır. Kimi bir şaka, kimi bir sanat eseri, kimi de imkânsız bir meydan okumadır; COBOL gibi bazıları ise fazla işe yaradığı için görünmezleşmiştir. Hepsi birlikte, kodun ne kadar geniş bir yaratıcılık alanı olabileceğini gösterir.
Eğer teknolojinin bu gözden kaçmış, tuhaf ve merak uyandıran köşeleri ilginizi çekiyorsa, sitemizde yer alan “Plan 9 İşletim Sistemi: Bell Labs’ın Gizli Mirası” adlı yazımıza da göz atabilirsiniz.
