2008-10-08 8 views
27

Après avoir découvert Clojure j'ai passé les derniers jours immergés dedans.Comment puis-je passer de Java à Clojure?

Quels types de projets se prêtent à Java par rapport à Clojure, et inversement, et de manière combinée?

Quels sont les exemples de programmes que vous n'auriez jamais essayé avant Clojure?

+1

Je n'en ai jamais entendu parler! Mais son Lisp! Hourra! Lisp revient! –

+0

Je suis intéressé de connaître la réponse à cela aussi. J'aimerais en savoir plus sur Clojure. –

+0

@Andre Bossard: ça n'est jamais parti. Mais maintenant, en ce qui concerne Clojure spécifiquement, cela a certainement aidé Lisp à devenir «mainstream». Plusieurs startups utilisent Clojure et on pense qu'il y a au moins des dizaines de milliers de programmeurs Clojure: cette langue est simplement un coup de pied dans le cul. Soyez prudent avec le sarcasme la prochaine fois: vous jamais après combien d'années votre sarcasme inutile finira par sembler idiot. –

Répondre

14

Clojure se prête bien à concurrent programming. Il fournit de tels outils merveilleux pour traiter le threading comme la mémoire transactionnelle de logiciel et les références mutables. En tant que démonstration pour le groupe de développeurs Western Mass, Rich Hickey a fait une simulation de colonies de fourmis dans laquelle chaque fourmi était son propre thread et toutes les variables étaient immuables. Même avec un très grand nombre de threads, les choses ont bien fonctionné. Ce n'est pas seulement parce que Rich est un programmeur incroyable, c'est aussi parce qu'il n'avait pas à s'inquiéter du verrouillage en écrivant son code. Vous pouvez consulter son presentation on the ant colony here.

+0

Les grands esprits se ressemblent :) Rick et moi étions tous les deux à la présentation de concurrence que Rich Hickey a fait à Northampton plus tôt cette année. –

+0

Est-ce que quelqu'un sait où trouver la source pour cette démo de colonie de fourmis? –

+0

Ant Colony Source: http://clojure.googlegroups.com/web/ants.clj –

6

Si vous voulez essayer la programmation simultanée, alors je pense que le clojure est bien meilleur que ce que vous obtenez de Java. Jetez un oeil à cette présentation pour voir pourquoi:

http://blip.tv/file/812787

Je documenté mes 20 premiers jours avec Clojure sur mon blog

http://loufranco.com/blog/files/category-20-days-of-clojure.html

J'ai commencé avec les conférences SICP, puis construit un parallèle tamis de nombre premier. J'ai aussi joué avec des macros.

+0

@LouFranco: Oh hey, ouais j'ai lu tous vos messages la nuit dernière, n'a pas fait la connexion avant, désolé. C'était très instructif, merci. :) J'ai regardé toutes les vidéos @ blip et j'ai lu beaucoup de blogs ainsi que les vôtres. Je me demande vraiment la viabilité du navire de saut complètement. –

+0

Le plus gros problème pour moi est l'interprétation des messages d'erreur du compilateur. Cela devient plus facile avec le temps. Je n'ai pas de projet pour l'instant sur la JVM, mais si c'était le cas, ce serait Clojure. –

4

Quels types de projets se prêtent à l'utilisation de Java sur Clojure, vice versa , ou en combinaison?

Un projet où est nécessaire serait un cas où Java peut être encore besoin d'un outil de renforcement de l'interface (tels que Matisse dans Netbeans). Tout ce qui est fait dans Java peut être fait dans Clojure tout à fait facilement, avec proxy et gen-classe si nécessaire, ou tout simplement l'accès Java comme nécessaire (., Doto, nouveau, etc.). Ce permet aux projets Clojure d'utiliser facilement des bibliothèques Java ou du code Java hérité.

Quels programmes vous n'auriez jamais essayé avant Clojure?

Avant de trouver Clojure, j'étais envisage un projet qui nécessitait JDBC, courraient dans un servlet conteneur, et je l'avais prévu faire beaucoup de développement itératif car on ne sait pas quelles méthodes seraient travailler pour les données dont j'avais besoin d'analyser. Je l'ai mis sur le brûleur arrière parce que je n'a pas eu le temps ou la patience pour le cycle de compilation-déboguer-déploiement cyclisme que Java nécessite. J'ai maintenant écrit l'application dans Clojure, et je suis très heureux à la facilité de faire des changements à la volée et étant capable d'examiner les résultats immédiatement.Sans parler de la joie de la programmation sans verrouillage et étant libéré de devoir développer (et refactor) hiérarchies de classe.

- "MIKEM" via le [email protected]

mailinglist
+0

Avez-vous utilisé un framework pour créer une servlet Clojure? – Pablo

+0

@ J.PabloFernández: Je vous suggère de vous diriger vers le groupe Clojure @ Google Groupes et de poser votre question. Il y a beaucoup d'utilisateurs expérimentés avec le créateur de Clojure Rich Hickey. –

2

Quels types de projets se prêtent à Java sur Clojure, vice-versa, et en combinaison?

Si vous souhaitez développer un cadre qui doit être consommé par Java et Clojure, j'ai trouvé écrit les principales abstractions (interfaces de classes de base ad) en Java être préférable à les écrire dans Clojure (je trouve Clojure's gen-class être un peu fastidieux et plutôt utiliser proxy). Si vous êtes un utilisateur d'Hibernate ou de tout autre framework qui utilise largement les annotations Java sans offrir d'alternative programmatique, vous aurez quelques problèmes, car il n'est pas trivial d'émuler des POJO annotés avec les structures de données de Clojure. En dehors de cela, je n'ai rencontré aucun cas d'utilisation pour lequel Clojure est moins approprié que Java; il faut bien sûr faire face à la perte de typage statique qui, au début, est déconcertante, mais qui tend à disparaître.

Questions connexes