Le but de ma question est de ne pas commencer une guerre de flammes, mais plutôt de déterminer dans quelles circonstances chaque langue est "le meilleur outil pour le travail."
J'ai lu plusieurs livres sur Clojure (Programmation Clojure, Pratique Clojure, La Joie de Clojure, et les effectifs Accès anticipé édition de Clojure en Action), et je pense que c'est un fantastique langue. Je suis en train de lire le Laisser Sur Lambda qui concernent principalement la Common Lisp macros, et, elle aussi, est très intéressant de langue.
Je suis pas un Lisp expert (plus d'un débutant), mais cette famille de langues qui me fascine, tout comme la programmation fonctionnelle, en général.
Avantages de Clojure (et les inconvénients des "autres"):
-
Tourne sur la JVM.
La JVM est une très stable, de haute performance de l'environnement en langue assez bien satisfait du Soleil, rêve de "Écrire une fois, exécuter presque n'importe où". Je peux écrire le code sur mon Macbook Pro, les compiler dans un fichier JAR exécutable, et ensuite l'exécuter sur Linux et Microsoft Windows, avec peu de tests supplémentaires.
L' (Hotspot, et d'autres) de la JVM supporte la haute qualité de la collecte des ordures et très performant juste-à-temps de compilation et d'optimisation. Où il y a quelques années, j'ai écrit tout ce qui avait une course rapide en C, maintenant je n'hésite pas à le faire en Java.
Standard, simple, multithreading modèle. Ne Common Lisp ont un niveau de multithreading paquet?
Rompt la monotonie de toutes ces parenthèses avec
[]
,{}
, et#{}
, bien que la Common Lisp experts vont probablement me dire qu'avec lecteur de macros, vous pouvez les ajouter à la CL.
Les inconvénients de Clojure:
- Tourne sur la JVM.
- Pas de récursion sur la queue ou les suites. Ne Common Lisp soutenir les suites? Schéma nécessite la prise en charge pour les deux, je crois.
Avantages des Autres (Common Lisp, en particulier) (et les inconvénients de Clojure):
Définissables par l'utilisateur, lecteur de macros.
D'autres avantages?
Pensées? D'autres différences?