Pregunta

Estoy pensando seriamente en hacer Clojure mi nuevo lenguaje de la piratería ya que me encanta Lisp, pero tienen algunos problemas con CL y Esquema. Nunca he trabajado en el entorno Java antes y mi experiencia Lisp se limita a trabajar a través de "SICP" y "The Little Schemer."

¿Qué necesito saber? ¿Hay buenos recursos en "La forma en Clojure?" Todos los recursos sobre el estilo de Clojure? He encontrado excelente página de Mark Volkmann, pero los libros que he mirado a través parecer un poco repuesto.

Además, ¿qué necesito saber acerca de Java? Yo prefiero no aprender Java sólo para aprender Clojure, pero me imagino que tendré que saber por lo menos un poco. Además, ¿cuál es el flujo de trabajo como? Mi experiencia se limita a los lenguajes dinámicos, así que no tengo idea de lo que tendría que hacer para distribuir una aplicación sin fuente en la JVM.

Googled esto, obviamente, pero hay una gran cantidad de información y no mucho las cosas "clojure específica".

supongo que estoy buscando algunas sugerencias sensatas sobre el tipo de literatura que debería leer en algún tipo de secuencia lógica.

¿Fue útil?

Solución

Usted no puede ir a la observación equivocada ya que muchas de las Clojure vídeo en Blip.tv como se puede manejar, especialmente aquellos que por el propio Rich Hickey. Estos realmente ayudan a impulsar la casa de los puntos conceptuales y aspectos únicos de Clojure.

Si no está lo suficientemente familiarizado con los conceptos de Lisp, puede que desee centrarse inicialmente en el aprendizaje de cómo "mapea" Clojure a los Lisps que ha jugado con. Ver los vídeos de Rich Hickey en "Clojure para programadores de Lisp."

Se necesita tener una cierta familiaridad con Java, porque Clojure no se asusta de su uso. No es de alguna manera un-Clojurey (por lo que puedo decir) a utilizar Java, donde lo más inteligente. Me había al menos descremada a través de la API docs para los paquetes java.lang y java.io , porque java.lang está disponible de forma automática dentro de sus programas de Clojure y java.io se utiliza con frecuencia.

Con mi diccionario Clojure-a-Lisp en mi cabeza y mis Java básico detrás de mí, le escogería un pequeño proyecto para trabajar en . Mantenga el Clojure y documentación de la API Clojure-contrib mano (ya sea en la web o utilizar el comando (doc) a partir de la réplica), y leer los muchos, muchos blogs Clojure por ahí. Dos de mis favoritos son http://nakkaya.com/ y http://stuartsierra.com/ . Si utiliza Diigo, una gran cantidad de blogs han sido marcada a la clojure grupo .

NOTA: no se colgó en su entorno de desarrollo. Hay una multitud de opciones que aparecen en la Introducción página wiki . Para aprender Clojure y sus primeros proyectos pequeños, que acababa de recoger su editor de texto sin formato de elección, aprender y utilizar los conceptos básicos de Leiningen para obtener una configuración de directorio del proyecto agradable con todos sus caminos y dependencias atendidos, a continuación, utilizar el comando "Lein repl" para que se inicie un REPL con todas sus dependencias cargado y disponible. En suponiendo que el uso de Emacs (basado en su experiencia previa Lisp), puede describe-variable su inferior-lisp-program ser lein repl, y acaba de empezar a Emacs desde la raíz de su proyecto de ejemplo para que todo el trabajo automágicamente.

son los libros se puede leer, en particular La alegría de Clojure, Programación y Clojure Clojure práctica. Los dos últimos son más "práctico" que el primero, que es más "filosófica" (excusa las generalizaciones bruto). Clojure práctica está al día con Clojure 1.2, mientras Programación Clojure es un poco mayor.

Por último, entrar en el canal de IRC #clojure y utilizar el grupo Clojure Google, porque hay un montón de gente inteligente, amable que disfrutan ayudando a los demás.

Otros consejos

Sólo una rápida perspectiva de alguien que vino a Clojure desde la otra dirección (Java -> Clojure)

  • De hecho, encontré las partes lispy de Clojure fácil de aprender una vez me dieron mis torno a los idiomas de sintaxis y comunes. Espero que será aún más fácil para usted.
  • Usted realmente no necesita mucho conocimiento de Java para hacer más cosas - que puede hacer casi todo en Clojure pura si quieres.
  • Es probablemente sólo cuando comienza a querer usar las bibliotecas de Java que tendrá que sumergirse en la interoperabilidad de Java. Afortunadamente, la interoperabilidad es muy simple -. LISP es más de estilo que el estilo de Java, así que lo único que tendrá que averiguar es cómo entender interfaces Java y hacer la llamada adecuada desde el lado Clojure

Para mi entorno, yo uso Eclipse + antihorario . Esto funciona excepcionalmente bien si te gusta IDE y / o cree que puede en última instancia que desee hacer algún trabajo en Java también. Que no requiere más dependencias, le da un excelente depurador, tiene un REPL completo (un objeto incrustado nREPL I creen), hace todo el proyecto de gestión de archivos (Git, SVN etc.) y se encarga de automatizar cosas como la configuración de ruta de clases de Java para usted (que puede ser un obstáculo importante para los recién llegados a Java!). Se lo recomiendo echarle un vistazo si usted piensa que podría adaptarse a su estilo, también he oído cosas buenas sobre Enclojure también.

Si usted no está en entornos de desarrollo, entonces usted está probablemente mejor con sus herramientas favoritas editor de texto y la línea de comandos como semperos sugiere en su excelente respuesta.

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