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
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.
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 ...
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.
, 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
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.
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.
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.
- 1. ¿Son varias las clases de DataContext apropiadas?
- 2. ¿Qué prácticas ágiles son apropiadas en un equipo pequeño?
- 3. ¿Cuándo son apropiadas las expresiones de guardia?
- 4. ¿Son estas prácticas apropiadas cuando se trabaja con std :: map?
- 5. Clojure tipo sugerencia para Map.Entry
- 6. ¿Qué tipo de cargas de trabajo serían apropiadas para usar en las instancias puntuales de Amazon EC2?
- 7. Pruebas unitarias apropiadas para programas cortos
- 8. ¿Para qué sirve Clojure?
- 9. tipo Clojure insinúa sintaxis
- 10. ¿Cuáles son algunas aplicaciones Clojure de código abierto bien escritas (no bibliotecas)?
- 11. Distribución de aplicaciones con Clojure Leiningen
- 12. ¿Por qué no Rhino para aplicaciones JVM?
- 13. ¿Qué tipo de aplicaciones están programadas en C estos días?
- 14. ¿Qué resoluciones de aplicaciones de Android son compatibles?
- 15. Cómo integrar aplicaciones web Clojure en Apache
- 16. Grails - Lift: ¿Qué estructura es más adecuada para qué tipo de aplicaciones?
- 17. Qué herramientas de autotest existen para Clojure
- 18. Aplicaciones locales, fuera de las instalaciones, ¿qué son?
- 19. ¿Qué tipo de aplicaciones se crean utilizando Python?
- 20. Evitar @ property-itis (es decir, uso excesivo de propiedades, ¿cuándo son apropiadas)?
- 21. ¿Cuál es su manera de hacer aplicaciones GAE usando Clojure?
- 22. ¿Qué son las aplicaciones del rendimiento en la vida real?
- 23. ¿Qué son intrínsecos?
- 24. Tipo de filtro Cadena en Clojure
- 25. ¿Cuáles son las aplicaciones prácticas de Colas?
- 26. Delphi XE2: ¿Por qué las aplicaciones FireMonkey son HD?
- 27. ¿Qué es un buen escaparate para Clojure?
- 28. Ventajas de Clojure
- 29. ¿Qué frameworks de PHP son adecuados para aplicaciones solo de servicio web?
- 30. ¿Por qué son los parámetros de función de tipo size_t?
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