tutorial online framework example clojure

online - Aprendiendo Clojure-¿Qué debería saber sobre Java y más?



clojure web framework (9)

¿Qué clases estándar de Java son imprescindibles para saber cuándo se trabaja con Clojure?

Clojure es un cambio radical de Java. Sugiero que te concentres solo en uno de ellos (clojure) y no en ambos. Hay mucho que aprender de todos modos. Use un editor básico y use el REPL tanto como pueda. Una buena introducción para clojure está here y here

¿Dónde busco y cómo instalo bibliotecas de terceros?

Clojure contrib es un buen lugar para comenzar http://github.com/richhickey/clojure-contrib Otro es leninmgen - http://zef.me/2470/building-clojure-projects-with-leiningen

¿Qué editor / ide de Clojure recomendaría (con la curva de aprendizaje más baja)?

Solo usa notepad ++ o vim. Debería ser más que suficiente para ti. Yo personalmente uso kate bajo ubuntu porque te da formato de código lisp. Los usuarios del núcleo duro probablemente usen emacs (lo que realmente odio)

¿Hay algún blog impulsado por la comunidad de Clojure con noticias, consejos de código, etc.?

El grupo de google Clojure es amable y muy conocedor

Recientemente comencé a aprender Clojure, mi principal lenguaje de programación es Ruby y no tengo ninguna experiencia en Java.

  • ¿Qué clases estándar de Java son imprescindibles para saber cuándo se trabaja con Clojure?

    Obviamente Clojure no viene con un envoltorio para todo y las bibliotecas de Java proporcionan muchas funcionalidades.

    Hay un montón de ellos en javadocs, ¿cuáles debo explorar?

  • ¿Dónde busco y cómo instalo bibliotecas de terceros (clojure y java)?

    En Ruby, visitaría Rubyforge o Rubytoolbox, git, etc. y luego solo instalaría el paquete que me pareció interesante.

  • ¿Qué editor / ide de Clojure recomendaría (con la curva de aprendizaje más baja)?

    Intento usar Netbeans con Enclojure y, paradójicamente, es mi mayor obstáculo hasta ahora:

    Cada proyecto generado tiene algunos archivos xml, carpetas, dependencias de biblioteca, etc., cuyo propósito no tengo ni idea.

    Estoy haciendo algunos ejercicios labrepl y quería probar algunas de las bibliotecas incluidas por separado en un nuevo proyecto, pero esta simple tarea no puedo lograr: /

  • ¿Cómo distribuir programas de clojure?

    Esto está muy relacionado con la pregunta anterior.

  • ¿Hay algún blog impulsado por la comunidad de Clojure con noticias, consejos de código, etc.?


¿Qué clases estándar de Java son imprescindibles para saber cuándo se trabaja con Clojure?

Ninguna. Puede salir adelante con googlear y hacer preguntas en el canal IRC de Clojure aquí. Aprenderá lo que necesita con el tiempo. Puedes investigar las clases java.lang y java.io, pero no las necesitarás hasta que las necesites.

¿Dónde busco y cómo instalo bibliotecas de terceros?

Leiningen es un maven-wrapper-kinda-thingy extremadamente simple. Puede usarlo para la administración de dependencias y como una herramienta de compilación para su código, http://github.com/technomancy/leiningen , y está Clojars donde se ubican muchas de las bibliotecas de Clojure en un repositorio maven. a la que pueden acceder Leiningen y Maven. http://www.assembla.com/wiki/show/clojure/Getting_Started

¿Qué editor / ide de Clojure recomendaría (con la curva de aprendizaje más baja)?

Eso probablemente sea Enclojure o Counterclockwise. La mayoría de los usuarios de Clojure usan Emacs o, en menor medida, Vim. Emacs es el mejor editor para Lisp, pero tiene un poco de una curva de aprendizaje para hacerse amigo. Si no está dispuesto a aprender un idioma y un editor, puede dirigirse a Enclojure / Eclipse (sentido antihorario).

¿Hay algún blog impulsado por la comunidad de Clojure con noticias, consejos de código, etc.?

http://planet.clojure.in/ y el grupo de Google.

¿Cómo distribuir programas de clojure?

La manera más fácil es con Leiningen y los comandos jar y uberjar. Puede escribir su código, y luego puede poner ese código en un archivo .jar y escribir un script de inicio para él. Ni siquiera tienes que ponerlo en un frasco si no quieres. Los tarros realmente solo son útiles si realmente compila su código, y la mayoría del código de Clojure no se compila. Ciertas características requieren una compilación, pero no se usan tanto.

Con todo, el canal IRC de Clojure es muy útil y amigable para los novatos. Puede ser difícil ingresar al mundo JVM sin experiencia previa. No tengas miedo de parar y hacer preguntas. Estamos aquí para ayudar.


¿Qué clases estándar de Java son imprescindibles para saber cuándo se trabaja con Clojure?

No es tanto el lenguaje Java que debes conocer para Clojure, aunque ayuda. El conocimiento más importante es cómo compilar, cómo establecer el classpath, y así sucesivamente. He programado en Java un poco, y todavía me encuentro tropezando con esto a veces.

También puede ser útil ir a través de uno o dos tutoriales para principiantes en Java, pero no dedique mucho tiempo a esto.

¿Dónde busco y cómo instalo bibliotecas de terceros (clojure y java)?

Puede usar http://github.com/technomancy/leiningen para administrar dependencias por proyecto automágicamente. (He editado esta parte de mi respuesta. Tras una evaluación adicional, Leiningen es el camino a seguir en casi todos los casos).

¿Qué editor / ide de Clojure recomendaría (con la curva de aprendizaje más baja)?

Aprendí a amar a emacs Los principales IDEs de Java tienen su propio sabor Clojure disponible (en orden decreciente de madurez):

  • Netbeans - enclojure
  • IntelliJ - la clojure
  • Eclipse - en sentido antihorario

Sin embargo, si tiene alguna inclinación para aprender emacs, este podría ser el momento. Este tutorial es ridículamente completo.

¿Cómo distribuir programas de clojure?

En frascos.

¿Hay algún blog impulsado por la comunidad de Clojure con noticias, consejos de código, etc.?

El grupo de google y el planeta clojure .

( EDIT : recomendación general añadida de Leiningen).


Estoy de acuerdo con casi todos los otros consejos sobre cosas que conozco. Aquí hay otros dos puntos que nadie ha hecho aún:

  1. Los principiantes deben aprender las convenciones estándar de Clojure sobre cómo usar espacios de nombres con los nombres de archivos y directorios apropiados, y seguir estas convenciones religiosamente. (Tal vez Nightcode te permite evitar esto, no lo sé, pero una vez que comienzas a usar Leiningen, no puedes evitarlo). Si no lo haces, los problemas de espacio de nombres te volverán loco rápidamente tan pronto como puedas. experimentación trivial. El tutorial de Colin Jones sobre los espacios de nombres es el mejor punto de partida que encontré cuando comencé. Algunas de las convenciones en realidad provienen de Java, por cierto, pero no es necesario aprender ninguna Java por su bien.

  2. Es posible que no necesites bibliotecas de terceros en absoluto al principio. Depende de lo que quieras hacer. Las bibliotecas estándar de Clojure cubren una gran cantidad de terreno.


Explore los javadocs solo cuando sea necesario cuando no pueda resolver cómo hacer algo usando la API central de Clojure o las bibliotecas de contribucio de Clojure .

Para las bibliotecas de terceros, está Clojars . No estoy seguro de cuán ampliamente ha sido adoptado por la comunidad, pero es un buen lugar para comenzar. Muchos proyectos Clojure están alojados en github, por lo que puedes intentar buscar clojure allí.

Si ya conoce Emacs, existe una buena compatibilidad para editar Clojure en Emacs. Si no conoce Emacs, no intente aprender Emacs y Clojure al mismo tiempo. Consulte la página de introducción en la wiki de Clojure para obtener información sobre cómo avanzar con una serie de IDE diferentes. Desafortunadamente, el enlace de la wiki en la página de inicio de Clojure es incorrecto.

Por último, consulte Planet Clojure para obtener muchas buenas publicaciones en el blog sobre el uso de Clojure para una gran variedad de cosas diferentes, incluyendo publicaciones útiles para comenzar.



Clojurecademy es un buen comienzo si quieres aprender lo básico y hacer algunos ejercicios.


Mejor primer Clojure IDE: Nightcode

Para concentrarte en Clojure hasta que superes la curva de aprendizaje en IDE y herramientas: obtén Nightcode Inicialmente, se hizo para que las clases para principiantes continuaran sin sonar la mitad del tiempo en emacs, pero cada vez son más útiles. Básicamente, pone las características para que funcione y se ejecute en un paquete simple.

Tiene un CLOCRE REPL general en una esquina de la ventana, y un segundo REPL se activa, en el área del editor, que tendrá acceso a las funciones que ha escrito hasta ahora. Una pulsación rápida ejecuta la línea que acaba de anotar en REPL. Para la edición optimizada con clojure, tiene un botón para activar / desactivar el crédito (paréntesis administrados activamente con pulsaciones de teclas para envolver / desenvolver / etc.). Puede implementar un conjunto de plantillas listas para usar para iniciar su proyecto en un estado listo para codificar. Hay un botón de un solo clic para crear un jar (archivo único ejecutable Java). Tiene integración GIT para extraer y enviar a github sin requerir la instalación de GIT en la máquina.
Estoy seguro de que el JDK (kit de desarrollo de Java) es necesario para hacer el contenedor de forma adecuada; pero he podido descargar Nightcode en cualquier computadora con un tiempo de ejecución de Java reciente y trabajo lejos (es un jar de Java, sin necesidad de instalación).

Utilizará Leinengen y aprenderá más editores; pero para empezar a programar realmente sin la confusión inicial de succión de almas, Nightcode es una herramienta increíble.


  • para los blogs, necesitas mirar Planet Clojure
  • para Java: necesitas saber al menos java.lang y java.io
  • para la descripción de los IDEs, es mejor consultar la página Cómo comenzar
  • para utilizar bibliotecas de terceros, puede utilizar las herramientas de compilación de Leiningen o Maven; ambas proporcionan la resolución automática de las dependencias. La página de inicio contiene toda la información necesaria
  • La distribución de los programas de Clojure generalmente implementada como proveedor de código fuente (o compilado). Puede agrupar solo su código con ''lein jar'' o proporcionar una solución completa con todas las dependencias con los comandos ''lein uberjar''