Question

Après avoir découvert Clojure , j'ai passé les derniers jours à y plonger.

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

Quels sont des exemples de programmes que vous n’auriez jamais essayés avant Clojure?

Était-ce utile?

La solution

Clojure se prête bien à la programmation simultanée . Il fournit des outils aussi utiles pour traiter les threads que la mémoire transactionnelle logicielle et les références modifiables.

En guise de démonstration pour le groupe Western Mass Developer's Group, Rich Hickey a réalisé une simulation de colonie de fourmis dans laquelle chaque fourmi constituait son propre fil 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 extraordinaire, c'est aussi parce qu'il n'avait pas à s'inquiéter du verrouillage tout en écrivant son code. Vous pouvez consulter sa présentation sur la colonie de fourmis .

Autres conseils

Si vous voulez essayer la programmation concurrente, alors je pense que le clojure est bien meilleur que ce que vous obtenez avec Java tel quel. Jetez un coup d’œil à cette présentation pour savoir pourquoi:

http://blip.tv/file/812787

J'ai documenté mes 20 premiers jours avec Clojure sur mon blog

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

J'ai commencé par les conférences SICP, puis j'ai construit un tamis parallèle en nombres premiers. J'ai aussi joué avec les macros.

  

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

     

Un projet où un outil de construction d’interface graphique   (comme Matisse dans Netbeans) est   nécessaire serait un cas où Java peut   être encore nécessaire. Quoi que ce soit fait dans   Java peut être fait dans Clojure tout à fait   facilement, avec proxy et gen-classe si   nécessaire, ou simplement accéder à Java en tant que   nécessaire (., doto, nouveau, etc.). Ce   permet aux projets Clojure d’utiliser facilement   Bibliothèques Java ou code Java hérité.

     

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

     

Avant de trouver Clojure, j'étais   contemplant un projet nécessitant   JDBC, s'exécuterait dans une servlet   conteneur, et je prévoyais faire un   beaucoup de développement itératif parce que   il n'était pas clair quelles méthodes seraient   travailler pour les données que j'avais besoin d'analyser.   Je le mets en veilleuse parce que je   n'a pas eu le temps ou la patience pour   la compilation-debug-deploy-validation   cyclisme que Java nécessite. J'ai maintenant   écrit l'application dans Clojure,   et je suis très heureux de la facilité de   faire des changements à la volée et être   capable d'examiner les résultats   immédiatement. Sans parler de la joie   de la programmation sans verrou et être   libéré de devoir développer (et   refactor) hiérarchies de classes.

     

- "MikeM" via la liste de diffusion clojure@googlegroups.com

  

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

Si vous souhaitez développer un framework qui doit être utilisé par Java et Clojure, j’ai trouvé qu’écrire les principales abstractions (classes ad base interfaces) en Java était préférable à leur écriture dans Clojure (je trouve le code gen-class est assez fastidieux et utilise plutôt proxy ).

Si vous utilisez Hibernate ou tout autre framework qui utilise beaucoup les annotations Java sans offrir une alternative programmatique, vous aurez quelques problèmes, car il n'est pas simple d'imiter des POJO annotés avec les structures de données de Clojure.

À part cela, je n'ai rencontré aucun cas d'utilisation pour lequel Clojure est moins approprié que Java; vous devez bien sûr faire face à la perte de typage statique, ce qui vous semble un peu déconcertant au début, mais a tendance à disparaître.

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