2010-01-22 30 views
14

Así que, habiéndome enterado recientemente de Clojure, estoy interesado en volver a aprender sobre la buena programación funcional. ¿Para qué tipo de aplicaciones sería bueno Clojure? Aplicaciones web? Aplicaciones de cliente con ventana? ¿Utilidades de línea de comandos? ¿Para qué tipo de aplicaciones Clojure es una solución terrible?¿Qué tipo de aplicaciones son apropiadas para clojure?

Respuesta

3

Clojure es ideal para todo lo que implica una gran cantidad de análisis. Ciertamente lo usaría, por ejemplo, para analizar archivos de registro. También es un gran lenguaje para escribir DSL. Probablemente no lo usaría para aplicaciones que son 90% de material GUI. Por supuesto, no tienes que elegir un solo idioma hoy en día. Puede usar Clojure para parte de su aplicación.

+3

Clojure no es realmente tan malo para las cosas de la interfaz gráfica de usuario, ya que puede aprovechar todas las bibliotecas de Java (OpenGL, Swing, Procesamiento, etc.). He escrito una interfaz gráfica de usuario en Clojure, funcionó bastante bien. – mikera

5

Realmente, cualquier tipo de aplicación debería estar bien. Clojure es un lenguaje de propósito general razonable, por lo que se presta a la mayoría de las cosas, especialmente debido a su compatibilidad con la biblioteca de clases Java.

Los lenguajes de programación funcional se prestan bien a problemas muy paralelos, por lo que es posible que desee buscar algo en esa área. Por ejemplo, procesar grandes cantidades de información usando un enfoque MapReduce como Google do ...

12

Creo que lo único que Clojure puede no ser bueno es el uso de scripts de línea de comandos únicos. El tiempo de inicio de JVM incluso cuando se ejecuta con el indicador -client no es tan caliente. Los proyectos como Nailgun proporcionan algo así como una solución alternativa, pero existen algunas implicaciones graves de seguridad con ese enfoque.

De lo contrario, creo que Clojure es ideal para cualquier tarea.

+0

, aunque si mantiene un REPL abierto (¡una buena práctica!), Entonces puede que encuentre que también es bastante bueno en scripts de líneas de comandos excepcionales ... – mikera

2

Soy bastante nuevo en Clojure y me gusta usarlo en problemas matemáticos donde la velocidad no es realmente un problema. Es tan expresivo. También es muy agradable poder utilizar la precisión ampliada de BigDecimals y BigIntegers de forma transparente, sin preocuparse por los torpes constructores y métodos que Java requiere.

La advertencia sobre la velocidad se debe realmente a mi propia inexperiencia. No sé si es un problema para los verdaderos expertos. También es un área que se presta para la paralelización que parece ser tan fácil en Clojure.

1

Clojure es ideal para reducir al máximo los problemas de procesamiento de datos de estilo que se ocupan de grandes conjuntos de datos. Está siendo utilizado con gran efecto para esto en FlightCaster.com y Runa. Lo estoy usando para criptografía y lo he visto utilizado profesionalmente en otras dos startups centradas en red.

3

Hay muy poco Clojure no es adecuado para. Es un lenguaje de propósito general, y es muy adecuado para casi cualquier tarea. Especialmente relacionados con la concurrencia.

Cuestiones relacionadas