Sorumun amacı bir ateş savaşı başlatmak değil , daha çok her dilin hangi koşullarda "iş için en iyi araç" olduğunu belirlemektir.
Clojure ( Programming Clojure , Practical Clojure , The Joy of Clojure ve Clojure in Action'ın Manning Erken Erişim baskısı ) üzerine birkaç kitap okudum ve bence bu harika bir dil. Şu anda çoğunlukla Common Lisp makrolarıyla ilgilenen Let Over Lambda'yı okuyorum ve o da çok ilginç bir dil.
Ben değil genel olarak, fonksiyonel programlama yapar (diğer bir newbie) bir Lisp uzmanı, ancak dillerin bu aile beni büyülüyor.
Clojure'ün avantajları (ve "diğerlerinin" dezavantajları):
JVM'de çalışır.
JVM, Sun'ın "Bir kez yazın, [neredeyse] her yerde çalıştırın" hayalini oldukça iyi karşılayan çok kararlı, yüksek performanslı bir dil ortamıdır. Macbook Pro'mda kod yazabilir, onu çalıştırılabilir bir JAR dosyasında derleyebilir ve ardından Linux ve Microsoft Windows üzerinde çok az ek testle çalıştırabilirim.
(Hotspot ve diğer) JVM, yüksek kaliteli çöp toplamayı ve çok performanslı tam zamanında derlemeyi ve optimizasyonu destekler. Sadece birkaç yıl önce, hızlı çalışması gereken her şeyi C dilinde yazdım, şimdi bunu Java'da yapmaktan çekinmiyorum.
Standart, basit, çok iş parçacıklı model. Common Lisp'in standart bir çoklu okuma paketi var mı?
Tüm bu parantez monotonluğu kadar Sonları
[]
,{}
ve#{}
Common Lisp uzmanları muhtemelen okuyucu makrolarıyla, sen CL ekleyebilirsiniz söyle rağmen.
Clojure'un dezavantajları :
- JVM'de çalışır.
- Kuyruk özyinelemesi veya devam ettirme yok. Common Lisp sürekliliği destekler mi? Planın her ikisi için de destek gerektirdiğine inanıyorum.
Başkalarının Avantajları (özellikle Common Lisp) (ve Clojure'un dezavantajları):
Kullanıcı tanımlı okuyucu makroları.
Diğer avantajlar?
Düşünceler? Diğer farklılıklar?