Pregunta

Después de descubrir Clojure he pasado los últimos días inmersos en él.

¿Qué tipos de proyectos se prestan a Java sobre Clojure, y viceversa, y en combinación?

¿Cuáles son ejemplos de programas que nunca hubieras intentado antes de Clojure?

¿Fue útil?

Solución

Clojure se presta bien para programación concurrente . Proporciona herramientas tan maravillosas para tratar los subprocesos como Software Transactional Memory y referencias mutables.

Como demostración para el Western Mass Developers Group, Rich Hickey hizo una simulación de colonia de hormigas en la que cada hormiga era su propio hilo y todas las variables eran inmutables. Incluso con una gran cantidad de hilos, las cosas funcionaron muy bien. Esto no solo se debe a que Rich es un programador increíble, sino también porque no tuvo que preocuparse por el bloqueo al escribir su código. Puede consultar su presentación sobre la colonia de hormigas aquí .

Otros consejos

Si vas a probar la programación concurrente, entonces creo que clojure es mucho mejor que lo que obtienes de Java de la caja. Eche un vistazo a esta presentación para ver por qué:

http://blip.tv/file/812787

Documenté mis primeros 20 días con Clojure en mi blog

http://loufranco.com/blog/files /category-20-days-of-clojure.html

Comencé con las conferencias SICP y luego construí un tamiz de número primo paralelo. También jugué con macros.

  

¿Qué tipos de proyectos se prestan a usar Java sobre Clojure, vice   ¿Versa, o en combinación?

     

Un proyecto donde una herramienta de construcción de GUI   (como Matisse en Netbeans) es   necesario sería un caso en el que Java puede   Todavía se requiere. Cualquier cosa hecha en   Java se puede hacer en Clojure bastante   fácilmente, con proxy y clase gen si   necesario, o simplemente acceder a Java como   Necesario (., doto, nuevo, etc.). Esta   Permite que los proyectos de Clojure se utilicen fácilmente.   Bibliotecas de Java o código Java heredado.

     

¿Qué programas nunca habrías intentado antes de Clojure?

     

Antes de encontrar a Clojure, estaba   contemplando un proyecto que requería   JDBC, se ejecutaría en un servlet   contenedor, y me anticipé a hacer un   gran parte del desarrollo iterativo porque   no estaba claro qué métodos haría   Trabajar para los datos que necesitaba analizar.   Lo puse en un segundo plano porque   no tenía tiempo ni paciencia para   la compilación-depuración-despliegue-validación   Ciclo que requiere Java. Ahora tengo   escrito la aplicación en Clojure,   y estoy muy contento por la facilidad de   Haciendo cambios sobre la marcha y siendo   capaz de examinar los resultados   inmediatamente. Sin mencionar la alegría.   de programación sin bloqueo y de estar   liberado de tener que desarrollar (y   refactor) jerarquías de clase.

     

- " MikeM " a través de la clojure@googlegroups.com lista de correo

  

¿Qué tipos de proyectos se prestan a Java sobre Clojure, y viceversa, y en combinación?

Si desea desarrollar un marco que vaya a ser usado por Java y Clojure, he encontrado que escribir las abstracciones principales (interfaces de clases de base de anuncios) en Java es preferible a escribirlas en Clojure (encuentro el código gen-class para ser un tanto tedioso y más bien usar proxy ).

Si es un usuario de Hibernate o cualquier otro marco que haga un uso intensivo de las anotaciones de Java sin ofrecer una alternativa programática, tendrá algunos problemas, ya que no es trivial emular POJO anotados con las estructuras de datos de Clojure. / p>

Aparte de eso, no he experimentado casos de uso para los cuales Clojure sea menos apropiado que Java; Por supuesto, tiene que hacer frente a la pérdida de la escritura estática, que al principio resulta algo desconcertante, pero tiende a desaparecer.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top