¿Para qué sirve Clojure?


Answers

Tal vez comenzar con el rationale Rich Hickey.

En cuanto a las aplicaciones del mundo real, ¿qué hay de esta lista de uso de producción del grupo de google?

Question

¿Para qué aplicaciones del mundo real están usando Clojure las personas?

Uso Groovy para cosas de pegamento, Java para sistemas grandes, scripts de Python / Perl para analizar y pegar. Pude verme llamar 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 scripting para tareas adhoc.

No soy un experto en Groovy o un fanboy de ninguna manera, pero me sorprende que tiene un mejor marco de soporte, herramientas y muchos de los constructos del lenguaje (cierres, programación funcional). Lo mismo podría decirse de Scala.

¿Podría ser que su futuro sea como un lenguaje incrustado en otros sistemas?




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 genial para uno de los guiones de línea de comandos debido al tiempo de inicio de JVM (a menos que esté usando cake o algo similar), pero eso se puede decir de cualquier lenguaje JVM.

Clojure es especialmente adecuado para tareas de concurrencia. Fue construido desde cero para ser un lenguaje impresionante para la concurrencia, y su sistema STM es fantástico. Si necesita hacer algunas cosas relacionadas con la concurrencia hardcore, 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 se adapta a ciertos nichos, y tiende a ser útil para muchas o todas las cosas que los otros lenguajes de JVM pueden ser adecuados.

Clojure fue diseñado para ser un lenguaje fantástico por derecho propio, y no necesariamente un lenguaje de pegamento. Puedes 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 muchas personas lo han 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 / se siente mejor en Groovy, ve con Groovy. Ambos son idiomas radicalmente diferentes, y ambos tienen sus propósitos.