En general me parece como puntos fuertes para clojure (en ningún orden particular):
1) de la réplica a probar las cosas de forma interactiva.
2) Todo es inmutable por defecto y la mutabilidad tiene varios patrones estándar bien escogidos para modificar el estado de una forma segura en un entorno multiproceso
3) recursión de cola se hace explícito. Hasta que exista un soporte adecuado para la recursividad final en la JVM, este es probablemente el mejor compromiso
4) Lenguaje muy expresivo que favorece un enfoque funcional sobre un enfoque imperativo.
5) Muy buena integración con la plataforma Java por lo que es indoloro para mezclar en las bibliotecas de Java
6) Leiningen como una herramienta de construcción y gestión de la dependencia junto con el sitio clojars
Ok, punto 6 no tiene nada que ver con el lenguaje en sí, pero definitivamente con mi placer de usarlo.
En cuanto a las aplicaciones que se dirige a las aplicaciones de subprocesos múltiples, pero son las cosas en este momento que podría significar cualquier cosa, como en todas partes la gente trata de mantener todos esos núcleos ocupados mientras el usuario está no de espera. Por otro lado, aparentemente mucha gente lo usa para implementar en Google App Engine, que es radicalmente SINGLE.
El enfoque funcional funciona bien en mi experiencia (limitada) para implementar transformaciones y cálculos de datos. Donde la información y los eventos se pueden 'transmitir' a través de la aplicación. Las aplicaciones web caen en gran medida bajo esta categoría donde "transformamos" una solicitud en una "respuesta".
Pero todavía tengo que usarlo en el código de producción real. Actualmente lo uso para proyectos personales y creación de prototipos/benchmarking.
Las ventajas de clojure en comparación con qué? Lista común? ¿Esquema? ¿Java? – sepp2k
http://clojure.org/rationale – msw
@ sepp2k: probablemente se refería a LISP común – Max