Apprendre le Clojure sans savoir Java

Ok, donc je suis impatient d'avoir une autre liste. Je me suis procuré un exemplaire du livre de programmation de beta Clojure...

et la chose que je remarque le plus, c'est qu'il est supposé que je sais... comme tous les cours de java.

sauf que, généralement, Je ne me soucie pas vraiment de Java. Je veux juste assez de connaissance pour Clojure être une option pour moi.

des suggestions sur la façon d'apprendre exactement ce dont j'ai besoin de tout cela?

19
demandé sur Steve Rowe 2009-01-31 03:53:44

7 réponses

ma principale recommandation pour vous, vous avez déjà accompli en achetant programmation Clojure. J'ai évité et détesté Java pendant des années et des années, et (programmation) Clojure l'a réhabilité assez pour que le langage m'excite maintenant. Qui aurait cru qu'un système Si onéreux vous laisserait interactivement (map #(.getName %) (.getMethods (class "")))? Regardez à travers "travailler avec Java, 3.5 ajouter des projets et des tâches de fourmi à Lancet" pour une exploration dans un style que je suis familier avec de Ruby.

Si vous êtes dans Freenode # clojure, rejoignez aussi # # java. Obtenez de Java documentation API et garder à portée de main. Recherche sur le web pour un réponse Java pour quelque chose que vous voulez faire et de le traduire plus ou moins directement à Clojure.

EDIT: At 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=>
19
répondu ayrnieu 2009-01-31 16:32:50

Umm, en fait, bien que Clojure ait été développé avec des développeurs Java considérés, il n'a pas été écrit programmeurs Java.

Clojure est conçu pour bien interopérer dans L'environnement Java.

bien que ce soit le cas, ce n'est pas il a été conçu pour (du moins pas dans la partie langage de "L'environnement Java"). Et "environnement Java" implique que le langage et JVM sont interconnectés d'une manière qui les rend un. Ils ne le sont pas. Conjure est un langage JVM natif (à la différence de Jython ou JRuby), et il utilise une machine virtuelle très bien construite pour y vivre.

comme Greg l'a dit cependant, Clojure est construit pour être avec Java, et à moins que vous ne vouliez vraiment entrer dans le système de mémoire transactionnel de logiciel de Clojure, je dirais de vérifier un Lisp différent.

non, désolé. Clojure "n'a pas été créer pour être avec Java". Il a été construit pour la JVM. Vous pouvez utiliser les bibliothèques Java si vous le souhaitez, mais il n'est pas nécessaire (même si c'est utile). Et en ce qui concerne le Conseil d'utiliser un autre Lisp si vous ne voulez pas apprendre le Java. C'est ridicule. Clojure n'est pas fait pour être Java, mais pour être un Lisp de 1ère classe. Et l'un, soit dit en passant, c'est d'améliorer le Lisp de certaines façons, pour le rendre plus moderne et fonctionnel. Sa capacité à bien fonctionner avec Java devrait être considérée comme un bonus, pas un handicap.

comme le souligne Greg ci-dessus, les langues comme Clojure et Groovy ciblent la JVM pour une raison principale, de sorte que les développeurs Java peuvent avoir le meilleur des deux mondes.

faux Aussi. Pour les raisons indiquées ci-dessus. Ils n'ont pas été écrits pour les développeurs Java. Désolé d'être si direct ici, mais je n'ai pas vu un post instruit sur Clojure dans ces réponses,et je viens d'apprendre à propos de Clojure aujourd'hui! C'est juste frustrant de voir ce genre de conseil préjudiciable si facilement donné.

je vais juste terminer avec une citation de Rick Hickey (le gars qui a écrit Clojure):

"Vous pouvez haine Java et comme la JVM."

il poursuit en disant que c'est là où il se situe.

21
répondu 2009-04-12 06:20:07

ne le prenez pas mal, mais je ne suis pas d'accord. Apprendre le Clojure est l'occasion parfaite de se familiariser avec le monde de Java. Je n'ai jamais programmé à Java un jour de ma vie et j'apprends le Clojure et j'aime chaque minute. Bien sûr, je ne connais pas toutes les classes, mais je ne vois pas où le livre suppose que vous connaissez tous. Quoi qu'il en soit, Java n'est pas une exigence pour apprendre le Clojure.

8
répondu Rayne 2009-01-31 11:51:03

vous devriez être en mesure de récupérer ce dont vous avez besoin grâce à Google et StackOverflow, mais attendez-vous à visiter les deux jusqu'à ce que vous avez une bonne idée des bibliothèques standards de Java.

comme Greg l'a dit cependant, Clojure est construit pour être avec Java, et à moins que vous ne vouliez vraiment entrer dans le système de mémoire transactionnel de logiciel de Clojure, je dirais de vérifier un Lisp différent. Java est certainement pas nécessaire, mais c'est un immense jambe pour ne pas avoir à apprendre les bibliothèques standard sur le dessus de Les bibliothèques standard de Clojure.

1
répondu Chris Bunch 2009-01-31 01:06:19

vous pouvez apprendre le Clojure sans apprendre le Java, mais il est toujours bon de connaître un peu les bases. Vous pouvez utiliser Clojurecademy pour apprendre le Clojure qui a un modèle d'enseignement interactif(pratique) comme le fait la Codécadémie.

1
répondu Ertuğrul Çetin 2017-10-04 11:37:54

comme le souligne Greg ci-dessus, les langues Clojure et Groovy ciblent la JVM pour une raison principale, afin que les développeurs Java puissent avoir le meilleur de mondes. Donc, si vous voulez apprendre Lisp, Scheme ou Common Lisp serait un bon début!

0
répondu 2009-02-11 04:11:34

si vous n'êtes pas intéressé par tous les aspects Java de Clojure, peut-être que vous feriez mieux d'apprendre un autre dialecte du Lisp, comme le Lisp commun ou Scheme. Clojure est conçu pour bien interopérer dans L'environnement Java.

-1
répondu Greg Hewgill 2009-01-31 01:01:14