2009-01-31 21 views
19

Ok, estoy mentalizado sobre otra lista. Obtuve una copia del libro de programación beta Clojure ...Aprendiendo Clojure sin Conocimiento de Java

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

Excepto que, 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?

Respuesta

19

Mi principal recomendación para usted, ya ha logrado mediante la compra Programación 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 famoso sistema oneroso le permitiría interactivamente (map #(.getName %) (.getMethods (class "")))? Consulte "Trabajar con Java, 3.5 Agregar proyectos Ant y tareas a Lancet" para una exploración en un estilo con el que estoy familiarizado desde Ruby.

Si está en Freenode #clojure, también únase a ## java. Obtenga Java API documentation y téngalo a mano. Busque en la Web un Java answer en algo que quiera hacer y tradúzcalo más o menos directamente to Clojure.

EDIT: 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=> 
-1

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

+0

Conozco ambos, y tengo opiniones, buenas y malas, a ese respecto. ¿Estás sugiriendo que la única forma en que puedo aprender Clojure es entrar en el juego con una sólida comprensión de Java o aprendiendo primero Java? – user54650

+0

Ok, no sabía si estaba familiarizado con otras opciones de Lisp. Lo que sugiero es que, proveniente de un fondo Lisp existente, Clojure no te dará muchas novedades si no estás interesado en las funciones de interoperabilidad de Java. Quizás puedas explicar más sobre lo que estás buscando. –

+0

Estoy buscando un Lisp robusto, estandarizado e independiente de la plataforma. Common Lisp simplemente apesta para los compiladores de Windows a menos que gastes dinero en lo más importante. El esquema carece de una estandarización lo suficientemente fuerte, con el minimalismo como una debilidad. – user54650

1

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.

Como dijo Greg, Clojure está diseñado para ser compatible con Java, y a menos que quiera entrar realmente en el sistema de memoria transaccional de Clojure, le diría que eche un vistazo a 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.

8

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 de eso. 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.

0

Como Greg anterior señala, idiomas como Clojure y maravilloso apuntar la JVM por una razón principal, por lo que los desarrolladores de Java pueden tener lo mejor de ambos mundos . Entonces, si quieres aprender Lisp, Scheme o Common Lisp sería un gran comienzo.

+1

Como respondí anteriormente, ya conozco Common Lisp and Scheme.Tengo quejas sobre el nivel de consolidación y la calidad de los compiladores gratuitos. Clojure compila a JVM que, en algunos casos, es muy superior para el lanzamiento del código ... Intenté aprender Java recientemente. – user54650

21

Umm, en realidad, aunque Clojure se desarrolló con los desarrolladores de Java considerados, no se escribió para los programadores de Java.

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

Aunque lo hace, esto no es lo que que fue diseñado para (al menos no en la parte de la lengua "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.

como Greg dicho, sin embargo, Clojure está construida para ser con Java, ya menos que se quiere conseguir realmente en el sistema de memoria transaccional de software de Clojure, yo diría que a la salida de 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 apuntan a la JVM por una razón principal, para que los desarrolladores de Java puedan tener lo mejor de ambos mundos.

También equivocado. 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.

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

"Usted puede odiar como Java y la JVM."

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

1

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.