Pourquoi ceux qui aiment Clojure il aime?

Dans le monde réel quels problèmes résout-il que je ne suis pas en mesure de résoudre sans elle. Pour quelqu'un qui doit logiquement choisir un quelque chose au lieu de ramasser parce que tout le monde le fait, que dois-je savoir sur Clojure?

Est la base appel de Clojure qui il vous fait épargner plus de Java?

Réponse

Personnellement, mon attirance pour de Clojure a quelques dimensions :

  1. C’est LISP, mais pas de Common Lisp. Cela signifie qu’il est homoiconic, qui permet non seulement de « macros magiques »--dont je me sers pratiquement jamais--mais une consistance de syntaxe qui est presque inégalée. Seulement de Smalltalk est vraiment dans la même ligue.
  2. Il est hébergé sur la JVM. Je peux haïr Java, mais la JVM est un beau morceau de génie, et il y a un énorme écosystème du code de réutiliser et d’outils. Il s’agit d’une énorme différence d’autres balbutie, qui se sentent souvent comme si elles existent dans une sphère plutôt isolée.
  3. Elle est fonctionnelle, mais pas rigide. Vous êtes encouragé à écrire de façon fonctionnelle, mais vous n’avez pas à quand il n’est pas sensé, ou quand vous êtes juste noodling. Les puristes vont se moquer, mais je trouve une rigidité à être belle en théorie et douloureuse dans la pratique.
  4. Simultanéité qui est beau à voir. Je n’ai jamais vu une autre langue, à l’exception peut-être de Erlang, qui fournit l’accès concurrentiel dans un paquet facile à gérer.
  5. Innovantes. Il y a beaucoup de nouvelles idées en Clojure qui ne sont pas présentes dans beaucoup d’autres endroits. Mémoire transactionnelle logicielle (STM) n’est pas vraiment présent que je connais dans toute autre langue de production. En outre, en étant prêt à rompre avec certains locataires présumées de Lisp, la langue est beaucoup plus lisible. Par exemple, l’utilisation de crochets ([]) au lieu des parenthèses pour beaucoup de choses rend beaucoup plus facile à lire et analyser le code.
  6. Beauté. Il y a simplement quelques beaux travaux en cours. Clojure me rappelle souvent la devise de Dieter Rams, un des designers industriels le plus brillants et prolifiques du XXe siècle: « Weniger, aber besser », ou "moins, mais mieux".
  7. Communauté. C’est quelque chose que beaucoup de gens ignore en regardant la langue. J’ai eu la chance d’être à la première clojure-conj en 2010 et rencontrer Rich Hickey (le concepteur de la langue et le phare), Alex Miller, Chas Emerick, Fogus, Phil Hagelberg et innombrables autres personnes brillantes. J’étais la personne la plus stupide dans la salle, et j’ai adoré chaque seconde.
  8. C’est amusant. Jamais remise de plaisir.

Donc, c’est tout pour moi. Je ne reçois pas de l’utiliser dans mon « travail de jour » autant que je le souhaite, surtout à cause de diverses politiques draconiennes sur ce qui peut ou ne peut pas être utilisé, mais qui est changeant lentement et Clojure, ainsi que de la Scala et autres langages hébergé par JVM comme Jython et JRuby, sont lentement une percée.

Enfin, je voudrais recommander que vous pas pensez à quelque chose comme une décision « logique », puisque ce n’est vraiment pas. Il a empilé avec hypothèses byzantines que--lorsque étudiés de près--sont souvent plus irrationnel et peu de politique ou de la crainte. Apprendre Clojure, Scala, ou Haskell, Erlang ou ou quoi que parce qu’il augmentera votre esprit et votre point de vue sur la nature du développement et de résolution de problèmes. Je recommande la lecture et suivantes « sept langues dans sept semaines », qui passe par Ruby, Io, Scala, Prolog, Erlang, Clojure et Haskell. Chaque langue est sensiblement différente dans la perspective qu’il apporte.

Je vous laisse avec quelque chose de Alan Kay a dit un jour: « un changement de perspective vaut 80 points de Qi ».


Tags: Clojure (langage de programmation)