Question

Je pense sérieusement à faire Clojure ma nouvelle langue hacking depuis que j'aime Lisp, mais ont quelques problèmes avec CL et schéma. Je ne l'ai jamais travaillé dans l'environnement Java avant et mon expérience Lisp est limitée à travailler par « SICP » et « Le Petit Schemer. »

Que dois-je savoir? Y a-t-il des bonnes ressources sur « La façon Clojure? » Toutes les ressources sur le style Clojure? J'ai trouvé excellente page de Mark Volkmann, mais les livres que je l'ai regardé à travers l'air un peu libre.

En outre, que dois-je savoir sur Java? Je préfère ne pas apprendre Java juste pour apprendre Clojure, mais je suppose que je vais devoir connaître au moins un peu. De plus, quel est le flux de travail comme? Mon expérience est limitée aux langages dynamiques, donc je ne sais pas ce que je dois faire pour distribuer une application sans source sur la machine virtuelle Java.

J'ai googlé cette évidence, mais il y a une grande quantité d'informations et peu de choses « spécifique de clojure ».

Je suppose que je suis à la recherche de quelques suggestions sensibles sur le genre de littérature que je devrais lire dans une sorte de séquence logique.

Était-ce utile?

La solution

Vous ne pouvez pas vous tromper regarder autant de Clojure vidéos sur Blip.tv comme vous pouvez le manipuler, en particulier ceux de Rich Hickey lui-même. Ces maison vraiment aide d'entraînement points conceptuels et des aspects uniques à Clojure.

Si vous connaissez suffisamment les concepts Lisp, vous pouvez vous concentrer initialement sur l'apprentissage Clojure « cartes » aux Lisps que vous avez joué avec. Regardez les vidéos de Rich Hickey sur "Clojure pour les programmeurs Lisp."

Vous avez besoin d'avoir une certaine familiarité avec Java, car Clojure ne disparaît pas timide de l'utiliser. Ce n'est pas en quelque sorte non Clojurey (pour autant que je peux dire) d'utiliser Java où il est intelligent. Je serais au moins écrémé à travers le API docs pour les paquets de java.lang et java.io , parce que java.lang est automatiquement disponible au sein de vos programmes de Clojure et java.io est fréquemment utilisé.

Avec mon dictionnaire Clojure à Lisp dans ma tête et mes bases Java derrière moi, je choisirais un petit projet pour travailler sur . Gardez le Clojure et l'API Clojure-contrib documents à portée de main (commande soit sur le web ou utiliser le (doc) du REPL), et prendre connaissance des nombreux, de nombreux blogs de Clojure là-bas. Deux de mes favoris sont http://nakkaya.com/ et http://stuartsierra.com/ . Si vous utilisez Diigo, toute une série de blogs ont été bookmarked au groupe clojure .

NOTE: ne vous attardez pas sur votre environnement de dev. Il existe une multitude d'options figurant sur le Mise en route page wiki . Pour apprendre Clojure et vos premiers petits projets, je venais de choisir votre éditeur de texte de choix, apprendre et à utiliser les bases de Leiningen pour obtenir une belle configuration de répertoire du projet avec tous vos chemins et dépendances pris en charge, utilisez la commande « lein rempl » au démarrage d'une REPL avec toutes vos dépendances chargées et disponibles. En supposant que vous utilisez Emacs (en fonction de votre expérience Lisp), vous pouvez describe-variable votre inferior-lisp-program être lein repl, et juste commencer à Emacs de la racine de votre exemple de projet pour tout ce travail automagiquement.

Il y a Livres vous pouvez lire, notamment The Joy of Clojure, Programmation Clojure et Clojure pratique. Les deux derniers sont plus « pratique » que le premier, qui est plus « philosophique » (excusez les généralisations grossières). Pratique Clojure est mise à jour avec Clojure 1.2, alors que la programmation Clojure est un peu plus.

Enfin, obtenir sur le canal IRC #clojure et utilisez le groupe Google Clojure, parce qu'il ya un tas de gens intelligents, amical qui aiment aider les autres.

Autres conseils

Juste une perspective rapide de quelqu'un qui est venu à Clojure de l'autre direction (Java -> Clojure)

  • En fait, je trouve les parties Lispy de Clojure facile à apprendre une fois que je suis mes autour de la syntaxe et les idiomes communs. Je pense que ce sera encore plus facile pour vous.
  • Vous n'avez pas vraiment besoin de beaucoup de connaissances de Java pour faire la plupart des choses - vous pouvez tout faire à peu près dans Clojure pur si vous voulez.
  • Il est probablement que lorsque vous commencez à vouloir utiliser les bibliothèques Java que vous aurez besoin de plonger dans Java Interop. Heureusement, l'Interop est très simple -. Il est plus de style que le style LISP Java, la seule chose que vous devez savoir est comment comprendre les interfaces Java et faire l'appel approprié du côté Clojure

Pour mon environnement, j'utiliser Eclipse + Counterclockwise. Cela fonctionne particulièrement bien si vous aimez IDEs et / ou pensez que vous voudrez peut-être en fin de compte de faire un travail en Java aussi bien. Il ne nécessite pas d'autres dépendances, vous donne un excellent débogueur, a un REPL plein (intégré nREPL I croire), fait tout la gestion des fichiers de projet (Git, SVN, etc.) et gère automatiquement des choses comme la configuration Java classpath pour vous (qui peut être un obstacle majeur pour les nouveaux arrivants à Java!). Je vous recommande de le vérifier si vous pensez que cela pourrait convenir à votre style, je l'ai aussi entendu de bonnes choses sur Enclojure ainsi.

Si vous n'êtes pas en IDEs, alors vous êtes probablement mieux avec votre éditeur de texte favori et des outils ligne de commande comme semperos suggère dans son excellente réponse.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top