In generale trovo punti di forza per clojure (in nessun ordine particolare):
1) La REPL per provare le cose in modo interattivo.
2) Tutto è immutabile per impostazione predefinita e mutevolezza ha diversi modelli standard ben scelti per modificare lo stato in modo sicuro in un ambiente multithreading
3) la ricorsione in coda è resa esplicita. Finché non vi è un adeguato supporto per la ricorsione della coda sulla JVM questo è probabilmente il miglior compromesso
4) Linguaggio molto espressivo che favorisce un approccio funzionale rispetto ad un approccio imperativo.
5) Molto buona integrazione con la piattaforma Java che rende indolore per mescolare in librerie Java
6) Leiningen come un tool di creazione e gestione delle dipendenze insieme con il sito clojars
Ok, punto 6, non ha nulla fare con la lingua perse, ma sicuramente con il mio piacere di usarla.
Per quanto riguarda le applicazioni esso si rivolge applicazioni multithreading, ma il modo in cui le cose vanno in questo momento che potrebbe significare qualsiasi cosa, come in tutto il mondo la gente cerca di mantenere tutti quei nuclei occupato mentre l'utente è non attesa. D'altra parte, a quanto pare un sacco di persone lo utilizzano per la distribuzione su Google App Engine, che è radicalmente threading SINGLE.
L'approccio funzionale funziona bene nella mia (limitata) esperienza per l'implementazione di trasformazioni e calcoli di dati. Dove informazioni ed eventi possono essere 'trasmessi' attraverso l'applicazione. Le app Web ricadono largamente in questa categoria in cui "trasformiamo" una richiesta in una "risposta".
Ma devo ancora usarlo nel codice di produzione reale. Attualmente lo uso per progetti personali e prototipazione/benchmarking.
fonte
2010-06-15 16:13:51
I vantaggi di clojure rispetto a cosa? Elenco comune? Schema? Giava? – sepp2k
http://clojure.org/rationale – msw
@ sepp2k: probabilmente intendevi il comune LISP – Max