Generalnie uważam za mocne dla Clojure (w przypadkowej kolejności):
1) rEPL spróbować rzeczy interaktywnie.
2) Wszystko jest niezmienna domyślnie i zmienności ma kilka dobrze dobrane standardowe wzorce do modyfikowania stanu w sposób bezpieczny w środowisku wielowątkowym
3) rekurencji Tail wykonana jest jednoznaczne. Dopóki nie ma odpowiedniego wsparcia dla rekurencji ogona na JVM, jest to prawdopodobnie najlepszy kompromis.
4) Bardzo ekspresyjny język, który faworyzuje podejście funkcjonalne do podejścia imperatywnego.
5) Bardzo dobra integracja z platformą Java czyni go bezboleśnie mieszać w bibliotekach Java
6) Leiningen jako narzędzie budowania i zarządzania zależność razem ze stroną clojars
Ok, punkt 6 nie ma nic zrobić z językiem perse, ale zdecydowanie z przyjemnością korzystania z niego.
Jeśli chodzi o aplikacje, dotyczy aplikacji wielowątkowych, ale obecnie wszystko, co może oznaczać cokolwiek, tak jak wszędzie ludzie starają się utrzymać wszystkie te rdzenie zajęte, podczas gdy użytkownik jest , a nie czeka. Z drugiej strony najwyraźniej wiele osób używa go do wdrożenia w Google App Engine, który jest radykalnie POJEDYNCZY.
Podejście funkcjonalne działa dobrze w moim (ograniczonym) doświadczeniu w implementacji transformacji danych i obliczeń. Gdzie informacje i wydarzenia mogą być "przesyłane strumieniowo" za pośrednictwem aplikacji. Aplikacje internetowe należą w dużej mierze do tej kategorii, w których "przekształcamy" żądanie w "odpowiedź".
Ale nadal muszę go używać w prawdziwym kodzie produkcyjnym. Obecnie używam go do osobistych projektów i tworzenia prototypów/testów porównawczych.
zalety z clojure w porównaniu do czego? Wspólna lista? Schemat? Jawa? – sepp2k
http://clojure.org/rationale – msw
@ sepp2k: prawdopodobnie chodziło o wspólny LISP – Max