66 votes

Pourquoi Clojure plutôt que les autres Lisps JVM : Kawa, Armed Bear ou SISC ?

La JVM avait déjà trois Lisps avant l'arrivée de Clojure sur la scène: Kawa, Armed Bear et SISC.

Quel vide comble Clojure qui était laissé par ces Lisps ?

109voto

dnolen Points 12833

Kawa, ABCL et SISC sont des réimplémentations de langages existants assez anciens. Ils sont excellents si, pour une raison quelconque, vous souhaitez utiliser Scheme standard ou Common Lisp standard sur la JVM.

Clojure est un nouveau langage. Il ne comble pas un vide. Il ajoute des possibilités entièrement nouvelles. Il favorise une approche purement fonctionnelle - Scheme et CL sont tous les deux multi-paradigmes. Clojure s'inspire largement de la conception de divers langages de FP (ML, Haskell).

Et oui, vous pourriez ajouter le support de la concurrence à d'autres Lisps, mais cela manque complètement le point. Clojure a été conçu dès le départ comme un langage concurrent. Tellement que l'écriture de programmes concurrents est banale en Clojure - ce n'est pas de la science spatiale comme dans les langages non fonctionnels (Scheme, CL non exclus). Regardez les choses de cette manière :

Les gens disent que C vous permet d'écrire des programmes rapides par défaut.

Eh bien, Clojure vous permet d'écrire des programmes concurrents par défaut.

33voto

z5h Points 8029
  1. "Clojure est un Lisp qui n'est pas limité par la compatibilité ascendante" (c'est ce que dit le site web de Clojure). C'est un nouveau départ. C'est du progrès. Utilisez les idées qui rendent Lisp/Scheme puissants mais repensez-les autour de la plateforme Java.

  2. Clojure sera toujours la version la plus récente de Clojure. Avec toute autre langue portée sur la JVM, la version JVM pourrait toujours être en retard. Si vous n'avez pas besoin de la Plateforme Java, pourquoi utiliser SISC plutôt qu'un autre Scheme? Si vous en avez besoin, pourquoi ne pas utiliser le seul Lisp (Clojure) qui a été conçu spécifiquement pour cela?

  3. Conçu en gardant à l'esprit la concurrence.

14voto

Rayne Points 14518

La réponse la plus simple que je peux trouver est que Clojure n'est pas Common-Lisp. Clojure n'est pas limité par l'histoire d'autres Lisps. C'est un langage nouveau conçu pour la JVM.

11voto

MBCook Points 8316

Je n'étais tout simplement pas au courant de ceux-ci, ce qui constitue un avantage sérieux pour Clojure (les gens ont assez fait de bruit pour que je le découvre). La plus grande chose que Clojure ait et que je n'ai pas vue dans ceux que vous avez énumérés est Software Transactional Memory.

Clojure a également été conçu pour la JVM, au lieu d'être une couche pour un autre langage, donc c'est un peu plus "Java-y" que je n'imagine que les autres seraient lorsque vous devez faire de l'interopérabilité.

10voto

ire_and_curses Points 32802

Si j'étais cynique, je dirais que c'est parce que Clojure a un site Web plus agréable et un nom plus sexy.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X