Pourquoi devrais-je choisir Clojure sur une autre langue pour un nouveau projet? Dans quels domaines excellent-il? P>
3 Réponses :
au risque de fournir exactement le type de non-réponse réductrice que Devin fait référence à: J'ai choisi Clojure parce que j'aime le style de programmation fonctionnel et le clojure me permet de le faire sur la JVM et d'interoper avec beaucoup de code existant qui fonctionne sur la JVM. P>
Alors la question devient alors: pourquoi la programmation fonctionnelle? P>
état immuable - manque d'effets secondaires, essais plus faciles, meilleur soutien à la concurrence (et à l'avenir, parallélisme). P>
Petits composants fonctionnels qui peuvent être facilement réutilisés et composés pour construire de grands systèmes flexibles. P>
Il est très difficile de trouver des développeurs de clojure, donc je resterais loin de cela si vous travaillez pour une grande entreprise et vous collez avec Java ou .NET. C'est plus politique que la décision technique dans les grandes entreprises. Si toutefois vous construisez votre propre produit, Clojure est très rapide pour se développer et vous permettre de commercialiser plus rapidement. P>
C'est un peu d'un scénario de poulet et d'œufs Tho '- si personne n'adopte Clojure, il est difficile de trouver des développeurs. Si plus d'entreprises l'adoptent, il y aura plus de développeurs sur le marché. Étant donné que Lisp / Clojure n'a essentiellement aucune syntaxe à apprendre, la documentation de la fonction principale est excellente (et il existe plusieurs superbes livres sur le clojure) et les concepts, une fois maîtrisé, s'appliquent presque uniformément sur chaque partie de la langue, je dirais que c'est Une langue assez facile à ramasser et / ou aux développeurs transversaux dans.
Oui, c'est vrai que la langue a une petite syntaxe et est facile à apprendre. Je pense qu'une fois que Clojure obtient un cadre tueur comme l'équivalent des rails de Ruby ou une grande entreprise comme IBM faisant des projets en utilisant Robojure, alors il grandira beaucoup plus rapidement et sera dedans dans des entreprises plus grandes.
Vous pouvez toujours présenter le clojure comme une "bibliothèque Java pour une programmation simultanée améliorée" .... :-)
Certains scénarios où j'utiliserais Clojure: P>
Vous construisez une nouvelle application forte> très concurrente forte> à l'échelle de manière fiable. À mon avis, les fonctionnalités de la concurrence de Clojure (STM, immutabilité-par défaut, Verry Free Free MVCC) sont les meilleures de tout langage majeur em> actuellement. Excellente vidéo de Rick Hickey sur l'identité et l'état est un excellent moyen de Obtenez un sentiment pour cela. P> li>
Vous êtes une boutique basée sur Java qui veut une langue dynamique forte> qui peut être utilisée pour un développement rapide ou un script tout en maintenant votre investissement Si vous voulez utiliser un langage de programmation fonctionnel forte> Clojure est plutôt bon (ce n'est pas tout aussi "pur" comme haskell mais a toutes les fonctions clés - Fonctions de première classe, fonction d'ordre supérieur Composition, immuabilité, paresse) p> li>
Si vous travaillez dans un champ où il y a un besoin majeur de manipulation de code (compilateurs, DSLS, traitement de langue naturelle, programmation génétique), où le code