Bahadır Kandemir günlüğünde GoogleFight yardımıyla bir popülerlik karşılaştırması yapmış. Cevap vermek te bana düştü... Gerçi yazdıklarına yorum olarak yolladım ama anonim olarak yollamışım, haliyle tekrar yazayım dedim.
Karşılaştırmada "LISP'in sözdiziminin berbatlığından" bahsedilmiş. Sanıyorum berbatlıktan kasıt s-expressionlar ve ön ek (prefix) tarzı yazım. Öncelikle s-expression meselesine değinelim. s-expression denen şey Lisp'in temel yazım tarzıdır. Bu yazım tarzının en büyük avantajı dilin en temel veri tipi olan listeler ile (LISP = LISt Processing) kod yazmakta kullanılan ifadelerin aynı şekilde yazılmasıdır. Bu sayede Lisp dünyasnda veri/kod ayrımı yapılmaz. Veri kod gibi çalıştırılabileceği gibi Lisp kodunun kendisi de herhangi bir liste gibi işlenebilir.
Bence Lisp'in s-expressionlarının en büyük avantajı veri/kod ayrımı meselesi değildir. Bu yazım tarzının en güzel yanı saf sözdizimi ağaçları (raw syntax tree) yazıyor olmamızdır. Bu sayede Lisp kullanırken operatör önceliği gibi konularda endişe etmemize gerek kalmaz, zira Lisp şu ana kadar gördüğüm sözdizimeri arasında yanlış anlamalara en kapalı olan sözdizimine sahiptir. Özellikle benim gibi hangi dilde yazarsa yazsın her türlü aritmetik/mantık ifadesini daima parantezler içine alan insanlar için Lisp bir cennet sayılabilir.
İronik bir şekilde ön ek sisteminden en son olarak bahsetmek istiyorum. Aslındabana Lisp'in kullandığı ön ek sistemi sadece yukarıda saydığım özelliklerin sağlanabilmesi için ortaya çıkmış faydalı bir yan etki gibi gözüküyor. Ön ek tarzı yazımın şu ana kadar görebildiğim en büyük faydası ise operasyondan bağımsız olarak (yani fonksiyon çağrısı, aritmetik/mantık işlemi gibi şeyleri ayırd etmeden) sınırsız parametre listelerine izin vermesi. Bu sayede 1 + 2 + 3 + 4 yerine kısaca (+ 1 2 3 4) yazabiliyorsunuz. Evet çok büyük birşey değil, ama birşey...
Not: Bir büyüğümüz güzel söylemiş: Too much syntactic sugar, causes the cancer of semicolon
Not2: Bunları yazınca Python'u sevmediğim düşünülmesin. Python'u seviyor ve günlük olarak kullanıyorum, fakat açıkçası Lisp'in yazım tarzı daha çok hoşuma gidiyor.