He estado programando durante años, trabajando en varias iteraciones de Blub (BASIC, Assembler, C, C ++, Visual Basic, Java, Ruby sin ningún orden particular de "Blub-ness") y me gustaría aprender Ceceo. Sin embargo, tengo mucha intertia con tiempo limitado (familia, trabajo a tiempo completo, etc.) y una felicidad cómoda con mi Blub (Java) actual.
Entonces mi pregunta es esta, dado que soy alguien que realmente quisiera aprender Lisp, ¿cuáles serían los pasos iniciales para obtener un buen resultado que demuestre la superioridad de Lisp en el desarrollo web ? Tal vez me estoy perdiendo el punto, pero así es como vería inicialmente la aplicación de mi conocimiento Lisp.
Estoy pensando "usa el dialecto A, usa IDE B, sigue las instrucciones en la página C, cuestiona tu cordura después de las mónadas con el consejero D". Solo me gustaría saber qué considera la gente aquí un conjunto óptimo de valores para A, B, C y quizás D. También una discusión sobre el mérito relativo de aprender un lenguaje tan poderoso en lugar de, por ejemplo, convertirse en un Rails experto.
Solo para agregar más detalles, desarrollaré en MacOS (o una máquina virtual Linux): no será necesario un enfoque basado en Windows, gracias.
Notas para aquellos que solo navegan por
Voy a mantener esta pregunta abierta por un tiempo para que pueda ofrecer comentarios sobre las sugerencias después de que haya podido explorarlas. Si está navegando y siente que tiene algo que agregar, hágalo. Realmente agradecería sus comentarios.
Enlaces interesantes
Suponiendo que vienes a Lisp desde un entorno Java, este conjunto de enlaces te ayudará a comenzar rápidamente.
- Uso del complemento La Clojure de Intellij para integrar Lisp ( videocast )
- Lisp para la web
- Versión en línea de Practical Common Lisp (c / o Frank Shearar)
- Land of Lisp es una
(+ (+ very quirky) game based)
manera de entrar, pero lo hace todo tan sencillo - Instale Clojure y Sublime 2 en MacOS, una excelente guía de inicio
- Mira el libro Clojure in Action . Trabajó para mi.
fuente
Respuestas:
Esto es probablemente contrario a las recomendaciones de la mayoría de las personas, pero al principio evite Emacs, a menos que ya lo sepa. Especialmente si estás acostumbrado a los IDEs / editores modernos.
Estoy hablando por experiencia; Traté de comenzar con Emacs, pero tener que aprender el idioma Y el editor al mismo tiempo realmente me frustraba (especialmente porque Emacs es muy diferente de otras herramientas). Terminé lanzándolo, comenzando con PLT Scheme (ahora Racket) que viene con un IDE multiplataforma comparativamente simple, un repositorio de paquetes centralizado y documentos fabulosos (incluido un tutorial intermedio específicamente dirigido al desarrollo web ). Después de tener un control claro sobre Lisp, terminé volviendo a Emacs, recogiendo EL / CL a través de Practical Common Lisp y Xah's Elisp Guide. Básicamente, tal como lo veo, necesita conocer un Lisp antes de poder usar Emacs de manera efectiva, y necesita conocer Emacs para ser muy efectivo con CL / Elisp. Esto significa que puede elegir Scheme o aprender Common Lisp a través de otro editor primero (LispWorks personal, probablemente).
Si ya conoce Emacs, entonces sí, Elisp es el paso natural (aunque la forma en que disfrutaría el uso de Emacs sin saber primero que Elisp está más allá de mí).
YMMV, por supuesto, esto es justo lo que encontré ayudado.
Dado que su blub actual es Java, probablemente podría obtener mucho kilometraje de Clojure , Armed Bear o Kawa . No he probado ninguno de ellos yo mismo, no siendo un chico Java, pero Clojure viene especialmente recomendado por otros Lispers que conozco. Parece que la capacidad de mantener su VM e IDE actuales podría ayudar con el proceso de aprendizaje.
fuente
C-x C-c
). Amo a Emacs hasta la muerte, y prácticamente vivo en él ahora, pero date cuenta de que al principio, estás luchando contra años de memoria muscular diciéndote queC-s
esSave
, noSearch
y esoUndo
esC-z
. No recomendaré ese tipo de frustración a alguien cuya intención es aprender Lisp. Primero aprende el idioma, date cuenta de que te encanta, luego comienza a luchar contra tus manos con un objetivo claro en mente.Bueno, puedes golpear dos pájaros leyendo SICP ; uno está aprendiendo LISP (quiero decir, el esquema es un dialecto de Lisp) y el otro es una gran idea de cómo programar. ¡Período!
fuente
Conrad Barski tiene un gran tutorial llamado Casting SPELs en Lisp (SPEL es su acrónimo de macros). Implica hacer un juego simple de tipo Aventura, y salta directamente a las macros de Lisp. También ha estado trabajando en un libro introductorio que ahora está disponible en:
Aprende a programar Lisp, un juego a la vez .
Y, de la tabla de contenido:
Sin embargo, no sé qué implica esto para el desarrollo web (como en las páginas HTML) con Lisp. :)
Actualización: veo que alguien mencionó el libro "Estructura e interpretación de programas de computadora", que me recordó que el MIT ha publicado en línea, todas las conferencias de video del SICP de Hal Abelson y Gerald Jay Sussman . Es posible que haya encontrado el libro seco, pero las conferencias son excelentes. Aunque están basados en esquemas, todavía comprenden muy bien los conceptos básicos también en Lisp. Vale la pena descargarlo y verlo.
fuente
Para obtener una buena introducción básica al lenguaje, lea Practical Common Lisp de Peter Seibel . El libro es excelente.
La configuración de emacs y SLIME puede ser difícil para un novato, donde la magnitud "difícil" varía según su sistema operativo. Como de costumbre, Windows se queda corto, pero la gente ha hecho la parte difícil y la ha escrito (SBCL, Emacs, SLIME).
Una vez que está fuera del camino, Planet Lisp hizo referencia a un artículo que describe recientemente cómo configurar Hunchentoot y nginx.
Edición específica del sistema operativo: MCLIDE podría ser un buen lugar para comenzar. Lo instalé, pero no he tenido la oportunidad de usarlo, así que no puedo decir nada útil al respecto. Ciertamente se ve interesante!
Editar: Eclipse también tiene el complemento Cusp .
fuente
Ya tengo muchas respuestas geniales, pero suponiendo que quieras sumergirte de cabeza en el desarrollo web con un Lisp, tengo algunas ideas más.
Clojure es el primer Lisp que he visto que tiene marcos web de pila completa realmente excelentes que están listos para el horario estelar.
Si no lo has notado, acabo de cubrir toda la pila web y todo está escrito en Clojure.
Creo que Clojure es un poco más fácil de comenzar que Common Lisp, con mucho mejor conjunto de características / soporte de biblioteca que Scheme.
Si viene de un entorno Java, tiene el beneficio adicional de ejecutarse en la JVM, lo que le da acceso a todo Java stdlib cuando lo necesita.
La documentación disponible es un trabajo en progreso, al igual que los marcos en sí. Pero hay un tutorial bastante bueno aquí.
En cuanto a los editores ... si te sientes cómodo con vim, puedes usar vim con SLIMV. Si te gusta emacs, emacs / SLIME está bien. Hay bastante buen soporte de Eclipse y NetBeans para Clojure (o eso me han dicho), pero generalmente uso TextMate (aunque Sublime Text 2 se está convirtiendo rápidamente en mi editor preferido). Sé que me estoy perdiendo una pequeña magia de Lisp que no usa un entorno más integrado, pero estoy feliz de presionar ⌘-Tab para intercambiar entre mi editor y REPL; Su experiencia puede ser diferente.
Si quieres que un libro te ayude, te recomiendo Programming Clojure de Stuart Halloway y Aaron Bedra. La segunda edición acaba de salir de PragProg , por lo que está actualizada.
Happy Lisping!
fuente
Otro comentarista, Inaimathi , recomendó este libro hace unos días: The Little Schemer
Lo recibí hoy y puedo decir, como alguien que tiene una gran biblioteca de libros de programación adquirida durante muchos años, que tal vez solo leí un capítulo, pero definitivamente necesitaré una versión de tapa dura. Se lee como el Tao Te Ching, un montón de pequeños fragmentos de sabiduría divina sobre el idioma. Puede decir Scheme, pero originalmente se llamaba "The Little LISPer", los idiomas en el nivel que discute son lo suficientemente similares como para ser enseñados como uno.
No es un texto avanzado, pero tiene la misión de inculcar los principios del lenguaje y para qué sirve realmente, cómo pensar así. Creo que sería un excelente comienzo para LISP.
NÓTESE BIEN. La Matriz de Competencias del Programador en realidad menciona este libro en el nivel más alto de competencia de las cosas a buscar. (ver la sección de libros)
fuente
Un lugar muy agradable para comenzar a usar Lisp es el editor de Emacs, donde se puede usar para redefinir casi cualquier cosa. Desea que la tecla 'e' inserte la hora de la fecha, simplemente escriba un pequeño fragmento de Lisp para generar la cadena y vincularla a la tecla e. Hecho.
Esto también le permitirá USAR realmente lo que aprende en un entorno diario, si utiliza un editor simple durante el día.
fuente
Si va a desarrollar en una Mac, puede probar Clozure CL . Viene con un IDE que tiene pulsaciones de teclas compatibles con Emacs, y hay un puente hacia Objective C para que pueda escribir aplicaciones Cocoa.
Además, he leído Practical Common Lisp, pero también he encontrado que Successful Lisp es útil.
Finalmente, se recompensará un poco de paciencia de su parte. La productividad y las victorias menores llegarán bastante rápido, pero la gran victoria puede llevar un tiempo.
fuente
Tengo una copia de ANSI Common Lisp aquí junto a mi escritorio. Lo tomo cada dos años y paso un par de capítulos, luego me atasco en un par de ejercicios y se desliza hacia abajo en la lista de prioridades. Sin embargo, eso probablemente te diga más sobre mí que el libro. El libro parece completamente competente ...
fuente