¿Para qué aplicaciones del mundo real la gente usa Clojure?
Yo uso Groovy para cosas de pegamento, Java para sistemas grandes, scripts Python / Perl para analizar y pegar. Pude verme llamando a Clojure desde Java, pero no puedo ver dónde lo usaría por derecho propio. Me parece que sería más fácil usar casi cualquier lenguaje de programación para tareas ad hoc.
No soy un experto en Groovy o un fanboy de ninguna manera, pero me sorprende que tenga un mejor marco de soporte, herramientas y muchas de las construcciones del lenguaje (cierres, programación funcional). Lo mismo podría decirse de Scala.
¿Podría ser que su futuro sea como un lenguaje que está incrustado en otros sistemas?
(sandwich me BLT)
?Respuestas:
He usado Clojure para:
Eso es lo práctico / divertido.
Pero Clojure también tiene mucha profundidad teórica. Ideas que serán cada vez más relevantes a medida que la corriente principal llegue a comprender realmente el potencial de la programación funcional.
Una opinión personal, pero Clojure proporciona a toda máquina mejores construcciones de lenguaje para organizar el software correctamente (sin causar un dolor indebido al programador que trabaja) de todos los lenguajes que he usado hasta ahora académica y profesionalmente: C, C ++, Objective-C, Java, JavaScript, Python, Ruby.
Lo que no quiere decir que Clojure sea perfecto. Pero me parece que está construido sobre una base mejor que la mayoría de lo que existe.
fuente
Tal vez comience con la lógica de Rich Hickey .
En cuanto a las aplicaciones del mundo real, ¿qué tal esta lista de uso de producción del grupo de Google?
fuente
Clojure se usa ampliamente para procesar grandes volúmenes de datos. Es muy adecuado para la minería de datos / IA comercial (es decir, Runa) y predicciones a gran escala (también conocido como WeatherBill). La historia de concurrencia de Clojure realmente ayuda en estos dominios de datos pesados donde el procesamiento paralelo es simplemente la única respuesta.
fuente
Bueno, esa es una pregunta difícil de responder. ¿Qué quieres hacer? No hay mucho para lo que Clojure no sea adecuado. Quiero decir, no es realmente bueno para scripts de línea de comandos únicos debido al tiempo de inicio de JVM (a menos que esté usando cake o algo similar), pero eso se puede decir para cualquier lenguaje de JVM.
Clojure es especialmente adecuado para tareas de concurrencia. Fue construido desde cero para ser un lenguaje increíble para la concurrencia, y su sistema STM es fantástico. Si necesita hacer algunas cosas relacionadas con la concurrencia, Clojure podría ser especialmente adecuado para esa tarea.
Sin embargo, uno debe recordar que Clojure es un lenguaje de propósito general. No solo es adecuado para ciertos nichos, y tiende a ser útil para muchas o todas las cosas para las que los otros lenguajes JVM podrían ser adecuados.
Clojure fue diseñado para ser un lenguaje fantástico por derecho propio, y no necesariamente un lenguaje adhesivo. Puede construir sistemas desde cero en Clojure sin tocar el código Java directamente. No es que no sea un buen lenguaje de pegamento, sé que mucha gente lo ha usado como tal.
Si tiene algo en mente, lo mejor que puede hacer es considerar cómo se vería la solución en los idiomas que sean opciones. Si se ve o se siente mejor en Groovy, elige Groovy. Ambos son lenguajes radicalmente diferentes y ambos tienen sus propósitos.
fuente
Puede usar Clojure en cualquier lugar donde use Groovy o java. Por qué querrías hacer eso ? A algunas personas les gusta cecear. Esos elegirán clojure sobre Groovy. A algunas personas no les gusta cecear. Aquellos elegirán Groovy.
fuente