Bir yazılımcıya “en iyi programlama dili hangisi?” diye sorun; teknik bir değerlendirme beklerken kendinizi mezhep tartışmasına benzeyen canlı bir ritüelin ortasında bulabilirsiniz. Bir köşede “Python okunabilirliğin zirvesidir” diyenler, diğer köşede “Rust bellek güvenliğinin kurtarıcısıdır” diye cevap verir. JavaScript savunucuları internetin onsuz dönmeyeceğini hatırlatır; C programcıları ise bütün bu yüksek seviye rahatlıkların altında hâlâ kendi emeklerinin bulunduğunu ima eder. Tartışma çoğu zaman dilin araçlarından çıkar, kişiliğin ve aidiyetin savunusuna dönüşür.
Dil seçimi neden kimlik seçimine dönüşür?
Programlama dili, yalnızca bilgisayara talimat vermenin biçimi değildir. Bir dil; çalışma alışkanlığı, estetik tercih, kariyer yolu, arkadaş çevresi ve hatta kişinin “iyi mühendislik” anlayışıyla birlikte gelir. Lisp seven biri soyutlamanın zarafetine değer verebilir. Go kullanan biri sadeliği ve operasyonel netliği öne çıkarabilir. Ruby topluluğunda geliştirici mutluluğu daha görünür bir ideal olabilir. Bu tercihlerin hiçbiri yalnızca sözdizimi meselesi değildir; her biri, yazılım üretmenin nasıl bir hayat sürme biçimi olması gerektiğine dair sessiz bir iddia taşır.
Sosyolojik açıdan bakıldığında topluluklar, belirsizliği azaltmak için ortak semboller üretir. Dilin logosu, konferansları, esprileri, ünlü kütüphaneleri ve “bizim tarafta işler böyle yapılır” cümlesi bu sembolik düzenin parçalarıdır. Yeni başlayan bir kişi için bunlar son derece işlevseldir: Nereden öğrenmesi gerektiğini, kime danışacağını ve hangi standartlara uyacağını gösterir. Sorun, semboller araç olmaktan çıkıp dokunulmaz işaretlere dönüştüğünde başlar.
Teknik eleştiri, kişisel saldırı gibi algılandığında
Bir dil hakkında eleştiri yapıldığında neden savunma refleksi yükselir? Çünkü insanlar o dili öğrenmek için zaman, emek ve itibar yatırımı yapmıştır. Buna sosyolojide ve davranış bilimlerinde “batık maliyet” etkisi denebilir: Uzun süre kurduğun dünyayı sorgulamak, yalnızca bir aracı değil, geçmiş kararlarını da sorgulamak anlamına gelir. “Bu framework gereksiz karmaşık” sözü, bazen “Sen yıllardır yanlış yoldasın” şeklinde duyulur.
Üstelik yazılım sektörü hızlı değişir. Bugün aranan teknoloji yarın gözden düşebilir. Bu belirsizlik, dil topluluklarını duygusal sığınaklara dönüştürür. İnsanlar sadece kod paylaşmaz; iş güvencesi, uzmanlık itibarı ve geleceğe dair umut da paylaşır. Bu nedenle dil savaşları çoğu kez performans ölçümünden çok statü rekabetidir. Benchmark tabloları kılıç, GitHub yıldızları sancak, ünlü bir şirketin teknoloji tercihi ise kutsal metinden alıntı gibi kullanılabilir.
Tarikatlaşma değil, çoğulculuk
Elbette güçlü topluluklar kötü değildir. Açık kaynak projeleri, gönüllü dayanışma ve ortak öğrenme sayesinde büyür. Bir dilin topluluğunu sevmek de gayet sağlıklıdır. Tehlikeli olan, sevgiyi mutlak doğruluk iddiasına çevirmektir. “Bu dil hangi problemde iyi çalışır?” sorusu mühendisliktir. “Bu dili seçmeyenler beceriksizdir” cümlesi ise kimlik siyaseti.
Daha olgun bir yazılım kültürü, dilleri evrensel şampiyonlar olarak değil, farklı araziler için tasarlanmış araçlar olarak görür. Gömülü sistemlerde C’nin, veri analizinde Python’un, güvenlik kritik alanlarda Rust’ın, web arayüzlerinde JavaScript’in güçlü tarafları olabilir. Akıllı seçim, en sevilen dili her probleme zorla uygulamak değil; problemin kısıtlarını dürüstçe okumaktır.
Belki de en iyi yazılımcılık testi şudur: Kendi dilinizin kusurlarını, rakip dilin erdemleri kadar rahatça anlatabiliyor musunuz? Bunu yapabiliyorsanız bir cemaatin sadık mensubu değil, araçları amaçların önüne koymayan bir mühendissiniz. Kod dünyasının ihtiyacı daha çok inanan değil; daha iyi dinleyen, karşılaştıran ve gerektiğinde fikrini değiştirebilen insanlardır.