2009-03-18 18 views

cevap

4

Benim favorim Jython'dur ve Java uygulamamda bir Jython yorumlayıcısı ekleyerek kullanıyorum. Ticari projelerde kullanılmakta olup, müşterinin ihtiyacına göre herhangi bir derleme yapmadan uygulamayı kolaylıkla özelleştirebilmeyi sağlamaktadır. Sadece senaryoyu gönder, ve bu kadar. Bazı müşteriler uygulamalarını kendileri bile özelleştirebilir.

3

Scala'yı tercih edebilirim ama hala öğrenemiyorum. Şu anda küçük program programları yazmak için Groovy kullanarak. Grails üzerinde Groovy bile denemedim. Lift Framework for Scala hakkında da iyi duydum.

+0

Bir süreliğine Scala bir fanatiydim (bir hakaret olarak değil, kendime değil, kendinize yöneltilmişti) ama türler ve onun karmaşık bir sözdizimi ile ilgili kendi akıl almazlığı yüzünden kendimi rahatsız ettim. Çok fazla mutfak lavabosu cıvatalı bir dil gibi hissediyor. Clojure'u daha rahat buldum. Tabii ki, herkesin kilometre durumu değişebilir. –

3

JavaScript Rhino'nun zorlayıcı bir avantajı vardır - included with the JDK. Gerçi, daha sonra Java 6'ya sahip olandan daha eski Rhino sürümleri, generators, array comprehensions, and destructuring assignment.

gibi bir çok özelliğe sahiptir. Java istisnalarını ele alma seremonisi, kodu gerçek bir fayda sağlamak için her zaman karıştırır. Java kütüphanelerinden yararlanan basit bir komut satırı komut dosyası yazmak istediğimde de kullanıyorum.

4

Ticari bir projede başarıyla Groovy kullanıyorum. Çünkü ördek yazarak ve kapanışları kodlama dillerini tercih:

def results = [] 
def min = 5 
db.select(sql) { row -> 
    if (row.value > min) 
     results << row; 
} 

Çeviri: veritabanında bir SQL sorgusu çalıştırın ve sütun "değer" "Sonuç" den "min" daha büyük tüm satırları ekleyin. Verileri iç "döngüye" ne kadar kolay bir şekilde geçirebileceğinizi veya bunlardan nasıl sonuç alabileceğinizi not edin. Ve evet, ben SQL ile aynı elde edebiliriz farkındayım:

def results = [] 
def min = 5 
db.select(sql, min) { row -> 
    results << row; 
} 

(sadece "sql" String sahip olduğunu hayal doğru yerde "?").

IMHO, zengin bir liste işlemi (sıralama, filtre, dönüştürme) ve kapanışları sunmayan bir dil ile bir DB kullanarak yalnızca 'un yapmamasının nasıl bir örneği olduğunu görür.

Jython'u kullanmayı daha çok isterdim, ancak Jython 2.5'teki çalışma sadece son zamanlarda başladı ve Python 2.2 benim amaçlarım için çok eski.

+0

Sadece SQL ile aynı şeyi elde etmekle kalmaz, aynı zamanda daha verimli ve daha kolay okunabilirdi ... –

+1

... ve beş sıraya sığacak basit bir örneğim yoktu ve buradaki herkes 10 satırlık açıklama olmadan anlaşılır. Niyetine dikkat et, efendim. Bu dili işaret etmek için –

3

Java. Ciddi anlamda. Herkesin bildiği güçlü, kullanımı kolay (eğer biraz farklı) bir dildir. Java ile entegrasyon harika.

1

Groovy'i bir çok siteye yerleştirilen bir Java/Spring web sitesine yerleştirmek için çalıştığım şirket. Komut dosyaları, derlenmiş WAR dosyasından dışarıda saklanır ve her siteye yeni WAR'leri yerleştirmek zorunda kalmadan site mantığının bazılarını manipüle etmemize izin verir. Şimdiye kadar, bu yaklaşım bizim için çok zarif çalıştı.

Groovy'nin özellikle hoş bir özelliği, Java koduna çok benzeyebilmesidir ki bu da mevcut Java sınıflarını ona taşımayı çok kolay hale getirir.

1

SISC (Şema Kodunun İkinci Yorumcusu) hakkında ne dersiniz?

REF: Clojure kazanç eller aşağı Benim için http://sisc-scheme.org/

+0

+1. Çok güzel görünüyor, özellikle de Clojure'a geçmek istemeyen tecrübeli bir Scheme uzmanıysanız. –

6

.Lisp olmak, özlü ve dinamik olarak yazılmıştır, muazzam etkileyici bir güce sahiptir, bu yüzden birkaç satırda çok fazla işlevsellik yazabilirim. Ve Java ile entegrasyonu – eşsizdir. Clojure'ın Java ile Java'dan daha uyumlu olduğunu söylediğimde sadece kısmen şaka yapıyorum. Sonuç olarak, hem JDK hem de üçüncü taraflardan oluşan Java kütüphanelerinin tüm genişliği tamamen kullanılabilir.

Son olarak, biraz dikkatle Clojure kodu Java kodu kadar hızlı olabilir, bu yüzden performansımı bile kaybetmiyorum.

+2

+1 - Stuart Halloway'ın işaret ettiği gibi: Clojure, Java'dan daha iyi bir Java. – wlangstroth