why tutorial programacion lenguaje guide example java lisp clojure

java - tutorial - clojure{}



Aprendiendo Clojure sin conocimiento de Java (7)

Debería poder recoger lo que necesita bien a través de Google y StackOverflow, pero espera visitar ambos hasta que tenga una buena idea de las bibliotecas estándar de Java.

Sin embargo, al igual que Greg dijo, Clojure está diseñado para ser compatible con Java, y a menos que quieras ingresar al sistema de memoria transaccional de software de Clojure, diría que busques un Lisp diferente. Ciertamente, Java no es necesario, pero es una gran ventaja no tener que aprender las bibliotecas estándar sobre las bibliotecas estándar de Clojure.

Bien, entonces estoy emocionado por otra lista. Obtuve una copia del libro de programación beta Clojure ...

Y lo que más noto es que se supone que sé ... como todas las principales clases de Java.

Excepto, en general, realmente no me importa Java. Solo quiero saber lo suficiente para que Clojure sea una opción para mí.

¿Alguna sugerencia sobre cómo aprender exactamente lo que necesito de todo?


Si no estás interesado en todos los aspectos Java de Clojure, quizás sería mejor que aprendieras otro dialecto de Lisp, como Common Lisp o Scheme. Clojure está diseñado para interoperar bien en el entorno de Java.


Sin ofender a Greg, pero no estoy de acuerdo. Aprender Clojure es una oportunidad perfecta para comprender un poco el mundo de Java también. Nunca he programado en Java un día en mi vida y estoy aprendiendo Clojure y amando cada minuto. Por supuesto que no conozco todas las clases, pero no veo dónde el libro supone que las conoces todas. De cualquier manera, Java no es un requisito para aprender Clojure.


Mi principal recomendación para usted, ya lo logró al comprar Programming Clojure. He evitado y aborrecido a Java durante años y años, y (Programación) Clojure lo rehabilitó lo suficiente como para que el lenguaje me entusiasme. ¿Quién hubiera pensado que un sistema célebre y oneroso te dejaría interactuar (map #(.getName %) (.getMethods (class ""))) ? Consulte "Trabajando con Java, 3.5 Añadiendo proyectos y tareas Ant a Lancet" para una exploración en un estilo que conozco de Ruby .

Si estás en Freenode #clojure, también únete a ## java. Obtenga la documentación de la API de Java y téngalo a mano. Busque en la web una respuesta de Java a algo que quiera hacer y tráigala más o menos directamente a Clojure .

EDITAR: En clj:

user=> (use ''clojure.contrib.javadoc) nil user=> (keys (ns-publics ''clojure.contrib.javadoc)) (*remote-javadocs* javadoc find-javadoc-url add-remote-javadoc *core-java-api* add-local-javadoc *local-javadocs*) user=> (javadoc "this is a java.lang.String") true (browses to http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html) user=> (javadoc java.net.ServerSocket) true (...) user=>


Como señala Greg anteriormente, los lenguajes como Clojure y Groovy se dirigen a la JVM por una razón principal, para que los desarrolladores de Java puedan tener lo mejor de ambos mundos. Entonces, si quieres aprender Lisp, Scheme o Common Lisp sería un gran comienzo.


Umm, en realidad, aunque Clojure fue desarrollado teniendo en cuenta a los desarrolladores de Java, no fue escrito para los programadores de Java.

Clojure está diseñado para interoperar bien en el entorno de Java.

Aunque lo hace, no es para lo que fue diseñado (al menos no en el lenguaje parte del "entorno Java"). Y el "entorno Java" implica que el lenguaje y la JVM están interconectados de alguna manera que los hace uno. Ellos no son. Conjure es un lenguaje JVM nativo (a diferencia de Jython o JRuby), y utiliza una máquina virtual muy bien construida para vivir dentro.

Sin embargo, al igual que Greg dijo, Clojure está diseñado para ser compatible con Java, y a menos que quieras ingresar al sistema de memoria transaccional de software de Clojure, diría que busques un Lisp diferente.

No, lo siento. Clojure no era "construir para estar con Java". Fue construido para la JVM. Puede usar bibliotecas Java si lo desea, pero no es obligatorio (aunque es útil). Y en cuanto al consejo de usar un Lisp diferente si no quieres aprender Java. Eso es ridículo. Clojure no está destinado a ser Java; está destinado a ser un Lisp de primera clase. Y uno, por cierto, eso significa mejorar Lisp de ciertas maneras, para hacerlo más moderno y funcional. Su capacidad para trabajar bien con Java debería considerarse una bonificación, no una responsabilidad.

Como señala Greg anteriormente, los lenguajes como Clojure y Groovy se dirigen a la JVM por una razón principal, para que los desarrolladores de Java puedan tener lo mejor de ambos mundos.

También está mal. Por las razones indicadas anteriormente. No fueron escritos para desarrolladores de Java. Perdón por ser tan directo aquí, pero no he visto una publicación educada en Clojure en estas respuestas, ¡y acabo de enterarme de Clojure hoy! Es frustrante ver este tipo de consejos dañinos con tanta facilidad.

Acabo de terminar con una cita de Rick Hickey (el tipo que escribió Clojure):

"Puedes odiar a Java y como la JVM".

Él continúa diciendo que ahí es donde se encuentra.


Puedes aprender Clojure sin aprender Java pero siempre es bueno saber un poco de lo básico. Puede usar Clojurecademy para aprender Clojure que tiene un modelo de enseñanza interactivo (Hands-On) como lo hace Codecademy.