¿Clojure está más cerca de Scheme o Common Lisp desde la perspectiva de un principiante? [cerrado]

StackOverflow https://stackoverflow.com/questions/1412981

  •  06-07-2019
  •  | 
  •  

Pregunta

Si quiero aprender Clojure, ¿debería comenzar aprendiendo Scheme o Common Lisp?

¿O es Clojure lo suficientemente diferente de ambos como para comenzar a aprender Clojure por sí mismo?

¿Fue útil?

Solución

Sería beneficioso aprender los tres, aunque solo sea para elegir cuál es el mejor para sus necesidades. Los tres tienen sus propias fortalezas y debilidades.

Clojure es vagamente similar a Scheme en que es un lenguaje mayormente funcional y es un Lisp1 . Clojure también toma prestadas cosas de Common Lisp, como métodos múltiples y macros, y la gente siempre está portando cosas geniales de Common Lisp a Clojure como bibliotecas. El creador de Clojure fue 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, ya que es un lenguaje tan nuevo (solo hay un libro de Clojure hasta ahora ). Pero hay un montón de buenos libros orientados al Esquema, como SICP y The Little Schemer / The Seasoned Schemer . También hay buenos libros de CL, como PCL , y muchos otros.

Lisps también tiene mucha historia y es para su beneficio comprender la historia, para ver dónde y por qué Clojure se desvía de ella, si nada más.

Recomiendo comenzar con Scheme porque es el lenguaje más simple de los tres y, por lo tanto, el más fácil de aprender. Luego incursione en CL y Clojure hasta que tenga un control de las cosas, luego vaya a todo vapor en cualquiera de los dos hacia los que gravita.

Otros consejos

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

Mi primera experiencia de aprendizaje de Lisp fue con Scheme, nunca toqué Common Lisp (sentí que era demasiado complejo) y ahora estoy comenzando con Clojure.

Usé el esquema de Dorai Sitaram "Teach Yourself Schem en Fixnum Days" para aprender Scheme y llegar bastante lejos, aunque nunca me encontré con ganas de usar Scheme en proyectos reales.

Clojure, porque supuestamente brinda un acceso agradable y limpio al enorme universo de las 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 comenzar, diría que Scheme es más simple y, por lo tanto, podría ser más apropiado comenzar. Por otro lado, si tiene buenos conocimientos de Java y Python, es posible que no le importe sumergirse 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 vengo de los tres (Java, Python, Scheme), me encuentro en una buena posición para apreciar lo que Clojure trae a la mesa que es diferente de Scheme. No soy un Schemer experimentado, pero diría que si comienzas de inmediato con Clojure, aún obtendrás la experiencia general de Lisp, por lo que definitivamente no te perderás eso al renunciar al Scheme.

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

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

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top