2009-09-11 10 views

Respuesta

41

que sería para su beneficio y para aprender los tres, aunque sólo sea para que pueda elegir cuál es el mejor para sus necesidades. Los tres tienen sus propias fortalezas y debilidades.

Clojure es vagamente Esquema en que se trata de una lengua sobre todo funcional y es un Lisp1. Clojure también toma prestados elementos de Common Lisp, como multimétodos y macros, y las personas siempre transfieren geniales elementos de Common Lisp a Clojure como bibliotecas. El creador de Clojure era un hacker de Common Lisp antes de escribir Clojure. Clojure toma prestada una gran cantidad de terminología y convenciones de Scheme y CL (pero también tiene sus propios sabores en muchas áreas).

no hay mucha literatura para Clojure en este momento, siendo una lengua tan nueva (sólo hay one Clojure book so far). Pero hay montones de buenos libros orientados al Esquema, como SICP y The Little Schemer/The Seasoned Schemer. También hay buenos libros CL, como PCL, y muchos otros.

Lisps también tienen mucha historia y es para su beneficio para entender la historia, para ver dónde y por qué Clojure se desvía de ella si no otra cosa.

Recomiendo comenzar con Scheme porque es el lenguaje más simple de los tres y por lo tanto más fácil de aprender. A continuación, incursiona en CL y Clojure hasta que tengas un control sobre las cosas, luego ve a todo vapor en cualquiera de los dos hacia los que gravites.

+2

Excelente respuesta. Muchas gracias. – uzo

+0

lea 'el pequeño ceceo' y luego 'SICP', para aprender el esquema o lisp –

16

Para sus propósitos, creo que está seguro de comenzar a aprender Clojure. Las diferencias entre Lisp y Scheme (y Clojure en sí mismo para el caso) no deberían ser una preocupación, especialmente si estás empezando a aprender.

3

Depende de si desea enfocarse en aprender o jugar. Si realmente quieres estudiar Lisp, Scheme es un buen lugar para comenzar. Si prefieres jugar mientras aprendes, Clojure se adapta mejor.

Eventualmente creo que Clojure podría ser un mejor lenguaje de aprendizaje. Su apoyo a la concurrencia es realmente revelador. Pocos idiomas lo hacen tan simple para un principiante para escribir programas concurrentes.

6

Mi primera experiencia de aprendizaje Lisp fue con el Esquema, nunca he tocado Common Lisp (sentía que era demasiado complejo), y ahora estoy empezando en Clojure.

Utilicé el "Teach Yourself Scheme in Fixnum Days" de Dorai Sitaram para aprender Scheme y llegué bastante lejos aunque nunca pensé que quería utilizar Scheme en proyectos reales.

Clojure, porque supuestamente da un acceso agradable y limpio al enorme universo de bibliotecas J2SE/J2EE, por otro lado, me anima a volver a aprender este dialecto Lisp porque finalmente puede ser de uso práctico.

En cuanto a cuál de ellos para empezar, yo diría que el esquema es más simple y por lo tanto podría ser más apropiado para empezar. Por otro lado, si tienes buen conocimiento de Java y Python, quizás no te importe bucear directamente en Clojure porque, a diferencia de Scheme, contiene elementos de estos otros dos lenguajes (por ejemplo, estructuras de datos que recuerdan los tutoriales centrados en Python y JVM/Java API) y el terreno familiar podría ayudar.

Como provengo de los tres (Java, Python, Scheme), me encuentro en una buena posición para apreciar lo que Clojure aporta a la mesa que es diferente de Scheme. No soy Schemer con experiencia, pero diría que si comienzas inmediatamente con Clojure, obtendrás la experiencia general de Lisp, por lo que definitivamente no te lo perderás al renunciar a Scheme.

Cuestiones relacionadas