Elegir entre CL y Python para el desarrollo web

13

Vengo de un entorno Java y, después de leer este pequeño ensayo de Paul Graham , empecé a preguntarme por la selección un nuevo lenguaje, Common Lisp para acelerar mi trabajo (soy un desarrollador web).

Actualmente estoy escribiendo proyectos para mascotas, pero tengo algunos planes de negocios para el futuro. Paul habla sobre LISP en su ensayo como un "arma secreta". No sé si esta afirmación es cierta después de 10 años, pero metí mis dedos en un buen tutorial de CL y parece que que LISP puede ser superior para el desarrollo web.

Paul también menciona a Python como una buena opción con la que estoy familiarizado. Mi pregunta es: ¿cuál debería elegir para mis futuros proyectos web?

En qué estaba pensando:

  • No voy a desarrollar aplicaciones de escritorio para poder elegir el idioma que prefiera.
  • Python parece tener una comunidad muy grande, por lo tanto, se puede cargar más bibliotecas / marcos comparados con lisp
  • Descubrí que lisp tiene alguna funcionalidad (como macros) que no se puede encontrar en ninguna otra parte
  • La mayoría de las veces trabajo solo o con 1 ó 2 programadores más, pero encontrar a alguien con poco conocimiento puede ser difícil

Entonces, ¿qué piensas?

    
pregunta Adam Arold 11.08.2011 - 15:47

8 respuestas

7

Viene del fondo de Java, ¿por qué no verifica el lenguaje de programación Clojure?
Es un dialecto Lisp moderno que vive en la JVM, por lo que tiene acceso a toneladas de JAR.

Si bien no va a encontrar marcos web pulidos y listos para la producción como Django y Rails en el universo Clojure (al menos en este momento), pero los programadores están usando los marcos web Noir y Compojure. También puede implementar sus aplicaciones web Clojure en la plataforma Heroku.

Clojure es altamente gratificante, pero la curva de aprendizaje es muy pronunciada. ¿Estás listo para aprender programación funcional (asumiendo que no estás familiarizado)? ¿Vivir fuera del mundo OOP?

Python es el lado seguro: está maduro, hay muchos libros, muchos marcos web, un gran conjunto de conocimientos y es fácil de aprender.

Así que la decisión es realmente tuya.

    
respondido por el Chiron 11.08.2011 - 17:28
7

Lisp es el idioma que escuchas cuando te paras cerca y escuchas las voces provenientes de las torres de marfil. Otros lenguajes, como PHP, pueden no ser tan elegantes o poderosos, pero son como una lengua común, fácil y perdonador.

Si bien Lisp ha influido en muchos idiomas, nunca llegó a la corriente principal. ¿Por qué? Debido a que muchos desarrolladores no entendieron los conceptos del lenguaje, a ellos les pareció bastante oscuro. Lisp es difícil de entender para las vastas masas de desarrolladores. ¿Alguna vez has visto una descripción de trabajo que requiera Lisp como lenguaje de programación? Yo no tengo "¿Porque preguntas? Porque es difícil de mantener y leer para muchas personas. En Lisp, muchas veces no se puede decir de inmediato qué está haciendo una expresión con solo mirarla. Carece de un cierto tipo de simplicidad, por eso nunca se convirtió en una lengua común.

Sin embargo, Lisp ha tenido un impacto en muchos idiomas. Recomiendo aprenderlo con fines académicos. Amplía sus límites mentales para que a menudo pueda pensar en los problemas desde un punto de vista diferente. Sin embargo, no recomendaría su uso para aplicaciones web, a menos que esté realizando un estudio de viabilidad para una universidad. Carece de soporte en herramientas y bibliotecas en comparación con las otras opciones. Si desea adquirir habilidades prácticas que eventualmente generarán algo de dinero y se pueden presentar en su currículum, entonces elija Python. También se beneficiará de Lisp pero es menos práctico y más académico en la naturaleza, aunque su estilo de programación general podría beneficiarse de ello.

También, hay un renacimiento de lenguajes funcionales en estos días. También puede buscar F # para .NET o Scala en la JVM si desea obtener algunos conceptos funcionales.

Así que haz tu elección. Si ambos fueran idiomas reales, ¿cuál de estos preferirías aprender? ¿Latín / griego antiguo o francés / alemán / italiano / español / chino / árabe?

    
respondido por el Falcon 11.08.2011 - 16:10
3

Dada la posibilidad de elegir entre Lisp común y Python, el mejor consejo pragmático que puedo dar es aprender Python . Mientras que el técnico en mí piensa que todos los que tienen programas deberían aprender poco, no creo que aprenderlo te ayude a "acelerar [tu] trabajo".

Si aprendes lisp, creo que te hará un mejor programador a largo plazo. Sin embargo, aprender poco a poco por las razones por las que declara no lo acercará más a sus objetivos inmediatos de la OMI. Si quieres una solución práctica y pragmática, aprende Python. Simplemente no hay suficientes herramientas u oportunidades para usar lisp para ayudarlo en sus tareas diarias, a menos que las tareas cotidianas impliquen la personalización de emacs.

Por otra parte, si tiene tiempo para estudiar y aprender, y está dispuesto a soportar las ramificaciones de su elección (una escasez de herramientas, es más difícil encontrar compañeros de trabajo que obtengan lisp, etc), vaya con lisp. Realmente es un lenguaje estupendo.

    
respondido por el Bryan Oakley 11.08.2011 - 16:21
3

Recomendaría usar Lisp si usted es una persona motivada por sí misma que está dispuesta a elaborar sus propias bibliotecas de código durante largos períodos de tiempo, disfruta empujando los límites de su idioma y no le molesta el problema ocasional. configuración. Si trabaja por cuenta propia, es probable que a la larga sea un impulsor de la productividad debido a sus características macro.

Python no es tan flexible, tan rápido ni tan poderoso. Es casi trivial aprender en comparación con muchos otros idiomas. Es muy Blubby, de hecho. Tiene un amplio soporte, es el lenguaje de moda du jour , y tiene un montón de bibliotecas. Probablemente sea un poco mejor si tiene que trabajar con personas que se quejan de aprender nuevos idiomas.

Si estuviera revisando para contratar a alguien que fuera bueno en un Lisp en comparación con alguien que fuera bueno en Python, inmediatamente supondría que la persona Lisp era un mejor programador & científico informático que la persona Python (todas las demás cosas son iguales).

Estoy atrozmente parcial, estoy seguro.

    
respondido por el Paul Nathan 12.08.2011 - 18:45
2

Si quieres enfatizar de qué estaba hablando Paul Graham, abogaría por Lisp. La diferencia en el enfoque y la mentalidad de la familia de idiomas Lisp tiene mucho más potencial para tener un impacto en usted como programador en general, debido al estímulo para pensar de manera diferente. Y aunque no lo he hecho yo, parece que el desarrollo web en Lisp está bastante bien soportado: Vea esta pregunta en SO.

Python es un gran lenguaje, y no voy a golpearlo en absoluto. Hay un montón de buenos marcos y herramientas web para Python, y será más fácil encontrar personas que ya estén familiarizadas con él, cuando sea necesario.

En última instancia, debido al entorno actual, la elección de Lisp parece que siempre se reduce a la pregunta "¿Desea usar lo que quiere o quiere usar lo que la industria ya usa?" ¿Cuál es tu respuesta a esa pregunta?

    
respondido por el asfallows 11.08.2011 - 16:12
2

Si no tienes presión de tiempo, usa Lisp. Aprender Lisp cambiará la forma en que ve Python (y cualquier otro idioma que conozca), pero aprender Python no cambiará la forma en que ve Lisp (si lo sabía). Lisp es más que una nueva herramienta en la caja de herramientas. Es una nueva forma de pensar.

Mientras estás en ello, echa un vistazo a Factor u otro concatenative language . Los lenguajes concatenativos son sorprendentes para enseñarte a pensar en combinators . Aprender un idioma concatenativo cambiará la forma en que ve todos los demás idiomas.

Finalmente, ejercita tu cerebro derecho. El formalismo de los lenguajes de programación nos obliga a utilizar nuestro cerebro izquierdo para resolver problemas. Activa tu cerebro derecho para acceder a otro cambio de paradigma que cambia el juego.

    
respondido por el Scant Roger 12.08.2011 - 07:31
0

Lisp es solo una herramienta, como cualquier otro idioma. ¿Tiene características útiles, seguro. Al mismo tiempo, es posible tener la misma salida con casi cualquier otro idioma, solo puede llevar más tiempo y código. El principal problema con Lisp es que TENDRÁ que obtener, al menos, VPS hosting, ya que no hay un host compartido (que yo sepa) que admita cualquier variedad de Lisp en su plataforma.

Una cosa que sugeriría es que, como eres programador de Java, echa un vistazo a Groovy (o incluso a Scala). Le permitirán utilizar sus bibliotecas y API de Java y le proporcionarán un aumento de la productividad.

    
respondido por el Jetti 11.08.2011 - 16:21
0

No sé mucho sobre Lisp que no sean sus orígenes. Lo que sé sobre Python es esto:

5 minutos después de las primeras tierras de platillos volantes, la comunidad de Python habrá reunido algo para interactuar con sus sistemas de E / S.

Además, proveniente principalmente de JavaScript, encontré que Python es un ajuste muy natural. Quizás lo contrario podría ser cierto.

Además, Django es prácticamente el marco para imitar hoy en día.

    
respondido por el Erik Reppen 12.08.2011 - 08:47

Lea otras preguntas en las etiquetas