Learning Clojure – Que dois-je savoir sur Java et plus

J’ai commencé à apprendre le Clojure récemment, mon principal langage de programmation est Ruby et je n’ai aucune expérience Java.

Explorez les javadocs uniquement lorsque vous ne savez pas comment faire quelque chose en utilisant les API de base de Clojure ou les bibliothèques de consortingbutions Clojure .

Pour les bibliothèques tierces, il existe des Clojars . Je ne suis pas certain de l’ampleur de son adoption par la communauté, mais c’est un bon sharepoint départ. De nombreux projets Clojure sont hébergés sur github, vous pouvez donc y essayer de chercher.

Si vous connaissez déjà Emacs, il existe un bon support pour l’édition de Clojure dans Emacs. Si vous ne connaissez pas Emacs, n’essayez pas d’apprendre Emacs et Clojure en même temps. Consultez la page de démarrage sur le wiki Clojure pour obtenir des informations sur l’utilisation de plusieurs IDE différents. Malheureusement, le lien wiki sur la page d’accueil de Clojure est erroné.

Enfin, consultez Planet Clojure pour obtenir de nombreux articles sur l’utilisation de Clojure pour une grande variété de choses, y compris des messages utiles sur le démarrage.

Quelles classes Java standard sont indispensables pour travailler avec Clojure?

Aucun. Vous pouvez vous débrouiller avec Google et poser des questions sur le canal Clojure IRC ici. Vous apprendrez ce dont vous avez besoin au fil du temps. Vous pouvez étudier les classes java.lang et java.io, mais vous n’en aurez pas besoin tant que vous n’en aurez pas besoin.

Où dois-je rechercher et comment installer des bibliothèques tierces?

Leiningen est un maven-wrapper-kinda-thingy extrêmement simple. Vous pouvez l’utiliser pour la gestion des dépendances et comme outil de compilation pour votre code, http://github.com/technomancy/leiningen , et http://clojars.org/ où beaucoup de bibliothèques Clojure sont placées dans un repository maven. qui peut être consulté par Leiningen et Maven. http://www.assembla.com/wiki/show/clojure/Getting_Started

Quel éditeur / ide pour Clojure recommanderiez-vous (avec la courbe d’apprentissage la plus basse)?

Ce serait probablement Enclojure ou Counterclockwise. La plupart des utilisateurs de Clojure utilisent Emacs ou, dans une moindre mesure, Vim. Emacs est le meilleur éditeur autour de Lisp, mais il a un petit peu d’apprentissage pour devenir convivial. Si vous n’êtes pas disposé à apprendre un langage et un éditeur, vous pouvez vous diriger dans la direction Enclojure / Eclipse (dans le sens inverse des aiguilles d’une montre).

Y a-t-il des blogs de la communauté avec des nouvelles, des astuces de code, etc.?

http://planet.clojure.in/ et le groupe Google.

Comment dissortingbuer les programmes clojure?

Le plus simple est avec Leiningen et les commandes jar et uberjar. Vous pouvez écrire votre code, puis vous pouvez mettre ce code dans un fichier .jar et écrire un script de démarrage pour cela. Vous n’avez même pas à le mettre dans un pot si vous ne voulez pas. Les fichiers JAR ne sont utiles que si vous comstackz votre code, et la plupart des codes Clojure ne sont pas compilés. Certaines fonctionnalités nécessitent une complémentarité, mais elles ne sont pas tellement utilisées.

Globalement, le canal IRC de Clojure est très utile et convivial pour les débutants. Il peut être difficile d’entrer dans le monde JVM sans expérience préalable. N’ayez pas peur de vous arrêter pour poser des questions. Nous sums là pour vous aider.

Quelles classes Java standard sont indispensables pour travailler avec Clojure?

Ce n’est pas tant le langage java que vous devez connaître pour Clojure, même si cela aide. La connaissance la plus importante est de savoir comment comstackr, définir le classpath, etc. J’ai programmé un peu en Java, et je trouve toujours que cela me fait parfois trébucher.

  • Définir le classpath

Il peut également être utile de suivre un ou deux didacticiels pour débutants sur Java, mais ne consacrez pas beaucoup de temps à cela.

  • En voici un avec une palette de couleurs hideuse, selon les normes de conception d’Oracle

Où puis-je rechercher et comment installer des bibliothèques tierces (clojure et java)?

Vous pouvez utiliser leiningen pour gérer automatiquement les dépendances par projet. (J’ai édité cette partie de ma réponse. Après une évaluation plus poussée, Leiningen est la voie à suivre dans presque tous les cas.)

Quel éditeur / ide pour Clojure recommanderiez-vous (avec la courbe d’apprentissage la plus basse)?

J’ai appris à aimer emacs. Les principaux IDE java ont tous leur propre saveur clojure disponible (par ordre décroissant de maturité):

  • Netbeans – enclojure
  • IntelliJ – la clojure
  • Eclipse – antihoraire

Si vous êtes enclin à apprendre emacs, cela pourrait être le moment. Ce tutoriel est ridiculement complet.

Comment dissortingbuer les programmes clojure?

En pots.

Y a-t-il des blogs de la communauté avec des nouvelles, des astuces de code, etc.?

Le groupe google et la planète clojure .

( EDIT : ajout d’une recommandation générale de Leiningen.)

Il y aura un cours de Clojure gratuit d’un mois sur RubyLearning à partir de la semaine prochaine qui pourrait vous intéresser:

http://rubylearning.com/blog/2010/03/09/clojure-101-a-new-course/

Quelles classes Java standard sont indispensables pour travailler avec Clojure?

Clojure est un changement radical par rapport à Java. Je vous suggère de ne vous concentrer que sur l’un d’entre eux (clojure) et pas sur les deux. Il y a beaucoup à apprendre de toute façon. Utilisez un éditeur de base et utilisez autant que possible le REPL. Une bonne introduction pour clojure est ici et ici

Où dois-je rechercher et comment installer des bibliothèques tierces?

Clojure consortingb est un bon sharepoint départ http://github.com/richhickey/clojure-consortingb

Quel éditeur / ide pour Clojure recommanderiez-vous (avec la courbe d’apprentissage la plus basse)?

Utilisez simplement notepad ++ ou vim. Cela devrait être plus que suffisant pour vous. J’utilise personnellement kate sous ubuntu car cela vous donne un format de code lisp. Les utilisateurs du kernel dur utilisent probablement emacs (que je déteste vraiment)

Y a-t-il des blogs de la communauté avec des nouvelles, des astuces de code, etc.?

Le Clojure google group est sympathique et très compétent

  • pour les blogs, vous devez vous tourner vers Planet Clojure
  • pour Java – vous devez au moins savoir java.lang & java.io
  • pour la description des EDI, il est préférable de consulter la page Mise en route
  • pour utiliser des bibliothèques tierces, vous pouvez utiliser les outils de construction Leiningen ou Maven – ils fournissent tous deux une résolution automatique des dépendances. La page de démarrage contient toutes les informations nécessaires
  • dissortingbution des programmes Clojure généralement implémentés comme fournissant jar avec du code source (ou compilé). Vous pouvez regrouper uniquement votre code avec ‘lein jar’ ou fournir une solution complète avec toutes les dépendances avec les commandes ‘lein uberjar’

Best First Clojure IDE: Nightcode

Se concentrer sur Clojure jusqu’à ce que vous battiez la courbe d’apprentissage sur les IDE et les outils: obtenez Nightcode Il a été initialement conçu pour obtenir des classes de débutants sans perdre la moitié du temps sur emacs, mais cela devient de plus en plus utile. Fondamentalement, il met les fonctionnalités pour vous permettre de démarrer dans un package simple.

Il y a une REPL Clojure générale dans un coin de la fenêtre, et une seconde REPL vous montez, sous la zone de l’éditeur, qui aura access aux fonctions que vous avez écrites jusqu’à présent. Une frappe rapide exécute la ligne que vous venez d’écrire dans la REPL. Pour une édition optimisée, vous avez un bouton pour activer / désactiver paredit (parenthèses gérées activement avec des frappes au clavier pour envelopper / déballer / etc). Il peut déployer un ensemble de modèles prêts à l’emploi pour démarrer votre projet dans un état prêt à coder. Il existe un bouton en un clic pour créer un fichier jar (fichier exécutable Java). Il a une intégration GIT pour tirer et pousser vers github sans nécessiter d’installation GIT sur la machine.
Je suis sûr que le JDK (kit de développement java) est nécessaire pour faire le pot correctement; mais j’ai pu simplement télécharger Nightcode sur n’importe quel ordinateur avec un runtime Java récent et travailler loin (c’est un jar Java, sans installation nécessaire).

Vous utiliserez Leinengen et apprendrez plus d’éditeurs. Mais pour commencer à programmer sans la confusion des start-ups, Nightcode est un outil génial.

Je suis d’accord avec presque tous les autres conseils sur des choses que je connais. Voici deux autres points que personne n’a encore faits:

  1. Les débutants doivent apprendre les conventions Clojure standard sur la façon d’utiliser les espaces de noms avec les noms de fichiers et les noms de répertoires appropriés, et suivre religieusement ces conventions. (Peut-être que Nightcode vous permet d’éviter cela – je ne sais pas – mais une fois que vous commencez à utiliser Leiningen, vous ne pouvez pas l’éviter.) Si vous ne le faites pas, les problèmes d’espace de noms Expérimentation sortingviale. Le tutoriel de Colin Jones sur les espaces de noms est le meilleur sharepoint départ que j’ai trouvé au début. Certaines des conventions proviennent de Java, mais vous n’avez besoin d’en apprendre aucun Java.

  2. Vous n’avez peut-être pas besoin de bibliothèques tierces au début. Cela dépend de ce que vous voulez faire. Les bibliothèques standard de Clojure couvrent beaucoup de terrain.

Clojurecademy est un bon début si vous voulez apprendre les bases et faire des exercices.