Pour quelles applications du monde réel les gens utilisent-ils Clojure?
J'utilise Groovy pour les trucs de colle, Java pour les gros systèmes, les scripts Python / Perl pour l'analyse et la colle. Je pouvais me voir appeler Clojure depuis Java, mais je ne vois pas où je l'utiliserais à part entière. Il me semble qu'il serait plus facile d'utiliser presque n'importe quel langage de script pour les tâches ad hoc.
Je ne suis en aucun cas un expert de Groovy ou un fanboy, mais il me semble qu'il a un meilleur cadre de support, des outils et beaucoup de constructions de langage (fermetures, programmation fonctionnelle). La même chose pourrait être dite pour Scala.
Se pourrait-il que son avenir soit en tant que langage intégré dans d'autres systèmes?
(sandwich me BLT)
?Réponses:
J'ai utilisé Clojure pour:
C'est le truc pratique / amusant.
Mais Clojure a aussi beaucoup de profondeur théorique. Des idées qui deviendront de plus en plus pertinentes à mesure que le courant dominant comprendra vraiment le potentiel de la programmation fonctionnelle.
Une opinion personnelle, mais Clojure fournit de meilleures constructions de langage pour organiser correctement les logiciels (sans causer de douleur excessive au programmeur en activité) de tous les langages que j'ai utilisés jusqu'à présent académiquement et professionnellement - C, C ++, Objective-C, Java, JavaScript, Python, Ruby.
Ce qui ne veut pas dire que Clojure est parfait. Mais il me semble que c'est construit sur une meilleure base que la plupart de ce qui existe.
la source
Commencez peut-être par la justification de Rich Hickey .
En ce qui concerne les applications du monde réel, qu'en est-il de cet appel nominal d'utilisation en production du groupe Google?
la source
Clojure est largement utilisé pour traiter de gros volumes de données. Il est très bien adapté à l'exploration de données / IA commerciale (ex: Runa) et aux prévisions à grande échelle (aka WeatherBill). L'histoire de concurrence de Clojure aide vraiment dans ces domaines lourds de données où le traitement parallèle est simplement la seule réponse.
la source
Eh bien, c'est une question difficile à répondre. Qu'est-ce que tu veux faire? Il n'y a pas beaucoup de choses pour lesquelles Clojure ne convient pas vraiment. Je veux dire, ce n'est pas vraiment génial pour des scripts de ligne de commande uniques à cause du temps de démarrage de la JVM (à moins que vous n'utilisiez cake ou quelque chose de similaire), mais cela peut être dit pour n'importe quel langage JVM.
Clojure est particulièrement adapté aux tâches de concurrence. Il a été conçu à partir de zéro pour être un langage génial pour la concurrence, et son système STM est fantastique. Si vous avez besoin de faire des choses liées à la concurrence hardcore, Clojure pourrait être particulièrement adapté à cette tâche.
Cependant, il faut se rappeler que Clojure est un langage à usage général. Il n'est pas seulement adapté à certaines niches, et il a tendance à être utile pour beaucoup ou toutes les choses auxquelles les autres langages JVM pourraient être adaptés.
Clojure a été conçu pour être un langage fantastique à part entière, et pas nécessairement un langage glu. Vous pouvez créer des systèmes à partir de zéro dans Clojure sans jamais toucher directement au code Java. Non pas que cela ne fasse pas un bon langage de colle, je sais que beaucoup de gens l'ont utilisé comme tel.
Si vous avez quelque chose à l'esprit, la meilleure chose à faire est de considérer à quoi ressemblerait la solution dans toutes les langues qui sont des options. Si ça a l'air / se sent mieux dans Groovy, allez avec Groovy. Ce sont deux langues radicalement différentes, et elles ont toutes les deux leurs objectifs.
la source
Vous pouvez utiliser Clojure partout où vous utiliseriez Groovy ou java. Pourquoi voudriez-vous faire ça? Certaines personnes aiment lisp. Ceux-ci choisiront clojure plutôt que Groovy. Certaines personnes n'aiment pas lisp. Ceux-ci choisiront Groovy.
la source