Bir programlama dili ile bir işletim sistemini karşılaştırarak, elmalarla armutları kıyasladığımı düşünebilirsiniz. Ancak unutmayın ki, Un*x C dili ile içiçe geçmiştir. Lisp camiasının en çok övündüğü şeylerden biri ise Lisp makinalarıdır. Bu makinaların kendilerine özgü donanımlarının yanında, elbette işletim sistemleri de vardı. Ayrıca kıyaslamayı düşündüğüm şey, Lisp'in ve Un*x'in kendileri değil, çevrelerinde gelişen kültür.
Un*x'in çevresinde gelişen kültür C dili ile yakından bağlantılı. C alt seviye bir dil olduğundan karakter dizilerini (string) işlemesi zordur. Bu yüzden düzenli ifadeler (regular expressions) ve bunları kullanan programlar; ed, sed ve awk, bir süre sonra Un*x'in ayrılmaz parçaları haline gelmiştir. Bu gelişmeye son noktayı ise Perl koyar. Perl; sed, awk ve sh'yi içinde barındırmakla kalmaz onların da ötesine geçer. Perl'in neden karakter dizilerine bu kadar önem verdiği sorusunun cevabı ise bence açık. Çünkü Perl -tıpkı sed ve awk gibi- C'nin tamamlayıcısıdır. Birinin zayıf olduğu alanda diğeri güçlüdür. Perl Un*x kültürünün tam bir üyesidir. Un*x ile en az C kadar entegre olmuştur.
Peki Lisp çevresinde nasıl bir kültür gelişmiştir? Yabancısı olduğum bir kültür olduğu için buna cevap vermekte biraz zorlanacağım. Ancak bu kültürü takdir ettiğimi de belirtmeliyim. Lisp kültürünün bence en ilginç yönü makinadan bağımsız düşünme alışkanlığı. Belki de Lisp bu sayede yarım yüzyıldır canlılığını koruyor. Bu sayede hangi makina verilirse verilsin dilde herhangi bir değişiklik yapmak gerekmiyor.Peki Lisp kültürü makina yerine neye dayanıyor? Tabii ki matematiğe. Umarım sevgili Lisp'çiler yorumlarıyla bu paragrafa katkıda bulunurlar.
Bu noktada belki kimi okurlara ters gelecek bir yorum yapacağım. Bence Lisp kültürünün tipik temsilcisi rms'tir. Kendine ait bir Lisp enplamantasyonu (Emacs Lisp) olması bile yeterli kanıt olabilir. Ancak GNU işletim sisteminin çekirdeğini (Hurd) bir türlü yazamaması da bence ikinci bir kanıt oluşturuyor. Dediğim gibi Lisp kültüründe makinadan bağımsız düşünmek bir erdemdir. İşletim sistemi çekirdeği ise makinayla en içli dışlı olan şey.
Emacs - vi kavgasına da değinmeden geçemeyeceğim. Tahmin edilebileceği gibi emacs Lisp kültürünün ayrılmaz bir parçasıdır. Yalnız Lisp'i kullanması yüzünden değil, aynı zamanda bütün Lisp programcılarının emacs kullanması yüzünden. vi ise Un*x'in öz evladıdır.
Biraz da ilgisiz görünen dillerden sözedelim. Örneğin, Python sizce Lisp kültürüne mi yoksa Un*x kültürüne mi aittir? Bence açık bir şekilde Lisp kültürüne ait. Düzenli ifadeler ve Un*x entegrasyonu konusunda Perl ile karşılaştırılabilir mi bilmem? Peter Norvig, ünlü yazısında zaten Python ile Lisp'in ne kadar birbirine benzediğini anlatmıştı -evet, Python closure'ları desteklemediği halde-.
Peki ya Ruby? Perl'in pek çok özelliğini bünyesine katarak Un*x kültüründe sağlam bir yer edinmeye aday. Öte yandan, Lisp-vari özellikleri ile Lisp kültürünün takdirlerini de toplamayı başardı. Kimbilir belki de Ruby bu iki kültür arasında bir köprü olur...