Lisp en el mundo real

146

Experimenté con Lisp (en realidad, Scheme) y descubrí que es un lenguaje muy hermoso sobre el que estoy interesado en aprender más. Sin embargo, parece que Lisp nunca se usa en proyectos serios, y no lo he visto como una habilidad deseada en ninguna publicación de trabajo. Estoy interesado en escuchar a cualquiera que haya usado Lisp o lo haya visto usado en el "mundo real", o que sepa si se considera un lenguaje puramente académico.

titanio
fuente
1
@titaniumdecoy: Después de descubrir Clojure y no tener experiencias previas en lenguajes de estilo Lisp, agregué la etiqueta Clojure para aquellos que buscan un discurso en Lisp. :)
Ande Turner
1
@titaniumdecoy: Clojure es un descendiente de Lisp que se ejecuta en la JVM y puede utilizar API escritas en Java
Ande Turner
12
No aprendería Lisp como una forma de mejorar tu carrera, porque no lo hará. Aprende a convertirte en un mejor programador general, por supuesto.
skaffman
13
En la lista de correo de Clojure, con frecuencia recibimos historias de éxito de la industria de personas que usan el idioma.
Rayne
42
@skaffman: ¿pero eso no ayudará a mejorar tu carrera?
Erik Forbes

Respuestas:

88

Franz, Inc. proporciona una lista inagotable de historias de éxito en su sitio web. Sin embargo:

No asuma que Lisp solo es útil para animación y gráficos, inteligencia artificial, bioinformática, B2B y comercio electrónico, minería de datos, aplicaciones EDA / semiconductores, sistemas expertos, finanzas, agentes inteligentes, gestión del conocimiento, CAD mecánico, modelado y simulación, Lenguaje natural, optimización, investigación, análisis de riesgos, programación, telecomunicaciones y autoría web solo porque estas son las únicas cosas que sucedieron en la lista. - Kent Pitman

Podemos encontrar otras historias de éxito aquí:  http://lisp-lang.org/success/

y una lista de compañías actuales que usan Common Lisp: https://github.com/azzamsa/awesome-lisp-companies

Matthias Benkard
fuente
41
Esa propaganda me parece un mantra muy hueco. Claro, puede estar presente en esas áreas, pero luego principalmente como código heredado. En mi experiencia de la vida real, Python, combinado con C / C ++ swigged, ha reemplazado mucho a Lisp como el (los) lenguaje (s) de elección rápida para los piratas informáticos pragmáticos.
Johan Kotlinski
30
@kotlinski ¿dónde está la evidencia? cuando generalizas demasiado la industria, entonces estás hablando del promedio, no de las mejores partes. Las historias de éxito casi siempre siguen tecnologías / ideas distintivas y no tan comunes.
Luka Ramishvili
Más aquí: lisp-lang.org/success (muy bien presentado) y aquí: empresas que usan Common LIsp .
Ehvince
54

¿Cuenta el elisp de Emacs? Ese es el uso más "del mundo real" con el que estoy familiarizado (aunque tampoco estoy seguro de que Emacs cuente como "mundo real").

eschercycle
fuente
No, pero lo vimhace;). Desafortunadamente (o quizás afortunadamente), nadie ha escrito software serio vimscript.
nuevo123456
25

Como una pequeña startup hemos creado algo que algunas personas llaman un "servidor de aplicaciones". pero, de hecho, es solo un conjunto de bibliotecas de lisp comunes integradas para conectividad SQL y aplicaciones web. algunos detalles están disponibles en la página del proyecto cl-dwim

utilizando eso, hemos desarrollado y operamos una aplicación web para el gobierno húngaro que recopila datos de los gobiernos locales y calcula la parte relevante del presupuesto del país. Este es el segundo presupuesto que estamos planeando ahora.

Tiene alrededor de 4000 usuarios y se ejecuta en un grupo de computadoras.

a partir del "lenguaje académico": estamos jugando con cosas como continuaciones persistentes para el modelado de procesos de negocios. Es un código aleatorio con algunas primitivas adicionales relacionadas con el proceso y algunas restricciones. puede detenerse en puntos aleatorios en el código y quedarse dormido (ingresar a la base de datos) mientras espera algún evento externo.

¿Es práctico o académico? tú decides... :)

Attila Lendvai
fuente
¡Guauu! Pensé totalmente que todo el software que usa el gobierno fue escrito como básico, dado lo mucho que la mayoría apesta. ¿Esto todavía está en uso?
RR
55
por supuesto que no ... hemos sido abandonados una vez que el proyecto ha sido diseñado, demostrado ser viable y se ha asignado suficiente dinero / atención. una compañía más grande y bien conectada se hizo cargo y escribió su propia versión en java. Un dato interesante es que siguieron ejecutando nuestra base de código durante años. los ayudé con un día de consultas ...
Attila Lendvai
22

Paul Graham ha usado y escrito sobre ViaWeb que fue escrito en LISP

Lea sobre esto aquí: superando el promedio

epatel
fuente
44
Eso no es realmente un buen ejemplo,
1800 INFORMACIÓN
9
Por cierto, puedo agregar que creo que Paul está delirando en este caso: no fue LISP lo que les dio la ventaja, solo fue ser inteligente y prestar atención. Podrían haber tenido éxito con VB si esa fuera la única herramienta disponible.
Jeff
23
No cerraron, sino que Yahoo los compró. Gran diferencia, al menos para los desarrolladores. :-)
Head Geek
18
@ 1800: Solo "se cayó al suelo" después de que Yahoo lo poseyó y lo reescribió en otro idioma, así que deja de usar popurrí.
wfarr
66
@ 1800: Olvida lo que dijo Matías, en realidad creo que es bastante divertido. Su afirmación de que "no ha habido otros ejemplos significativos de uso de LISP en el mundo real" implica directamente que usted es omnisciente. ¡Bravo!
Ali
12

LilyPond es un proyecto de código abierto bastante reciente que todavía disfruta de una actividad de desarrollo constante y considerable .

Es un programa de notación musical que toma un archivo de texto fácil de escribir como entrada y lo convierte en hermosas partituras (archivos pdf). Ofrece todo tipo de formas de jugar con la salida si lo desea. Incluso puede producir archivos midi con un sonido decente. Lo uso cuando necesito producir buenas partituras que otros músicos lean. ¡Creo que es mejor que Finale y es gratis !

En la categoría comercial, también hay el grabador Igor de Notehead . Desafortunadamente, el sitio no me permite publicar un enlace directo a la página que habla sobre Lisp, así que vaya a descargas y busque en la parte inferior un enlace "Lisp".

También está Naughty Dog (una compañía de juegos de computadora) que usa Lisp en sus juegos. Este artículo habla de eso e incluso muestra algo de código.

Y hay muchos otros que han sido mencionados y vinculados, pero estos son los principales que resuenan conmigo (ser un tipo compositor / programador / jugador / ...).

Galghamon
fuente
1
Como Schemer, es interesante e inspirador leer la parte del manual de LilyPond que explica cómo Scheme se convirtió en parte de LilyPond. Solía ​​estar completamente en C ++, pero descubrieron que necesitaba ser más programable por el usuario, y pudieron resolver ese problema reescribiendo partes de él en Scheme y construyendo un intérprete de Scheme que le da acceso al usuario a LilyPond internos.
Lindsey Kuper
10

Si comenzara mi propio proyecto de software principal ahora, tomaría mi decisión de idioma según los criterios anteriores. Claro, amo a Lisp, CLOS es impresionante, verdaderas rocas de alcance léxico, las macros de Lisp son geniales (cuando se usan según las instrucciones), y personalmente me gusta mucho la sintaxis de Lisp. […] Pero tomaría mucho, o requeriría circunstancias especiales, persuadirme de elegir Lisp para un proyecto de software importante, si estuviera a cargo de tomar la decisión. - Dan Weinreb

Ólafur Waage
fuente
Correcto, entonces disfruta de no poder contratar a nadie :)
Jeff
@Jeff: "Pero tomaría mucho , o requeriría circunstancias especiales , convencerme de elegir Lisp para un proyecto de software importante". Es un punto contra Lisp.
jfs
¿De dónde es esta cita? buscar en Google por fragmentos de texto solo produce esta misma publicación
Debe hacer clic en: "repetir la búsqueda con resultados omitidos". La cita es de: discusion.fogcreek.com/joelonsoftware/…
Chris Jester-Young
55
salud. Tengo que decir que esta cita se lee más fuerte de lo que realmente es, fuera del contexto. weinreb ahora trabaja en ITA y bloguea sobre lisp, entre otras cosas; Me pregunto cómo y si eso podría haber influido en su opinión.
10

Algunos más recientes:

Los primeros tres de esos fueron escritos usando Weblocks, un marco web CL. Wigflip y Clutu usan Hunchentoot puro.

¡Ahora consigue la codificación! :)

Leslie P. Polzer
fuente
10

El telescopio espacial Hubble se programa utilizando las herramientas de planificación de Lisp. El transbordador espacial era. El telescopio Webb será. La compañía para la que escribo Lisp analiza miles de millones de dólares en reclamaciones de seguros de salud y ha estado creciendo a ~ 30% por año incluso durante la recesión. Una gran empresa nos compró, y uno de nuestros programadores comparó (en realidad mejoró) la producción del software (de la gran empresa) para analizar las reclamaciones de Medicare, comenzando desde cero, solo, en un año. El código de (una gran empresa), no en Lisp, tardó 6 años y varios programadores. El problema, profesionalmente, es que muchos escuchan la tontería sobre "muchos paréntesis tontos irritantes" y demás. La mayoría de los gerentes no lo "entienden" y prefieren tener un proyecto en un idioma lo suficientemente familiar como para poder microgestionar. Ellos piensan "

El prisionero
fuente
9

Creo que Autocad tiene extensiones que usan Lisp para extender el producto. Ver AutoLISP .

Alex Miller
fuente
Correcto. También implementa ActiveX: es bastante potente y los propios AtoDesk lo usan para escribir comandos 'internos'. Se interpreta en ObjectARX - C ++, básicamente.
Bloke CAD el
8

Hay muchas compañías, proyectos y productos que usan Lisp en una variedad de roles: he trabajado para varios de ellos.

Hay dos puntos relevantes:

  1. Es posible que nunca sepa que su última pieza de electrónica de consumo fue construida o incluso programada en Common Lisp, o que algún servicio que utiliza está alimentado por un servidor Lisp. Sería incorrecto concluir que Lisp "nunca se usa".

  2. ... y, como tantos dominios, esos trabajos nunca aparecieron en Monster.com. El hecho de que nunca haya visto una oferta de trabajo no significa que no existan oportunidades requeridas por Lisp o la herramienta adecuada para el trabajo.

Rico
fuente
Entonces, ¿dónde aparecen esos trabajos? He estado tratando de resolver eso yo mismo.
Charlie Flowers
2
Por experiencia: listas de correo, correo personal directo de empresas y reclutadores, menciones en persona, grupos de usuarios y similares.
Rico el
1
Gracias. Parece que estás diciendo lo mismo que leí en otra parte ... que el mundo de Lisp es una comunidad pequeña, y puedes aprovechar eso contribuyendo y siendo conocido dentro de esa comunidad, y esa es probablemente la mejor manera de obtener Lisp trabajos. ¿Estás de acuerdo?
Charlie Flowers
55
Si. Además, esa es la mejor manera de conseguir trabajo, punto. Demuestre sus habilidades, conozca a las personas y dése a conocer.
Rico
8

El sistema de complemento del GIMP se basa en Scheme, creo. No sé si esto es completamente "mundo real", pero al menos parece ser una aplicación práctica de Lisp.

Tikhon Jelvis
fuente
6

Busque ACL2 . Es un motor de lógica formal basado en lisp que se ha utilizado para una serie de proyectos del "mundo real", como métodos formales en seguridad de software y pruebas de corrección para hardware de punto flotante.

BCS
fuente
Esta es una increíble pieza de software.
user37248
6

Si mis planes funcionan, ¡todos usaremos Scheme en 5 años a partir de ahora! ;pags

leppie
fuente
Mis planes son probablemente bastante similares: 1) Hacer una biblioteca kickass encima del esquema (a mitad de camino ahora). 2) Pruebe la biblioteca escribiendo programas geniales en ella (1 abajo, quedan algunos más). 3) Abrir el código de la biblioteca (ya está hecho pero de manera muy informal). 4) ... 5) Lisp se convierte en la herramienta natural para un trabajo en el trabajo.
Ali
3
Estoy tirando por ti. ¡Pero solo te quedan 2 años y medio! Espero que estés en camino.
Charlie Flowers
10
Hola. Han pasado 5 años.
Karol S
1
¡Más vale tarde que nunca!
Loïc Faure-Lacroix
1
@ LoïcFaure-Lacroix ¡Todavía lo intento! : D
leppie
6

Me quedé bastante impresionado cuando descubrí que el PRISM («El proyecto Prism es un proyecto a largo plazo para crear herramientas de software para la planificación de la radioterapia, incluidas las herramientas de inteligencia artificial y los sistemas de simulación manual») está escrito en Common Lisp.

En mi trabajo, estoy escribiendo software que usa DICOM y debo decir que escribir una buena implementación de DICOM es una tarea difícil. En su informe , describen cómo Common Lisp les permitió construir una buena implementación DICOM que es mejor (al menos en algunos aspectos) que otra implementación con menor esfuerzo.

dmitry_vk
fuente
6

Lisp se usa en la composición musical algorítmica del mundo real con la biblioteca Common Music . Las notas de Rick Taube de Metalevel son un excelente texto introductorio al tema que tiene un montón de ejemplos en Lisp para componer. Vea el directorio de ejemplos aquí y una copia del texto aquí .

Curtis
fuente
5

Bueno, no es corriente, pero uso lisp para la mayor parte de mi código de investigación que sea manejable. Es, con mucho, el mejor lenguaje que he encontrado para lograr el equilibrio entre dinamismo y expresividad, a la vez que genera un rendimiento decente para los números, etc.

Simón
fuente
5

Google App Inventor está escrito en Scheme

shikhar
fuente
5

Me acabo de dar cuenta ahora que Maxima , un programa para álgebra simbólica, está escrito en Common Lisp. Lo he estado usando durante bastante tiempo y creo que también es un muy buen ejemplo de la vida real.

Jan Stolarek
fuente
3

Lisp intentó el salto a la velocidad de la luz a principios de los 80. Antes de que existieran las PC, había "Lisp Machines" producidas comercialmente, que se parecen mucho a las estaciones de trabajo modernas, pero que sonaban "completamente". El hardware de Lisp finalmente perdió ante Intel (como lo hizo todo lo demás). El software Lisp eventualmente perdió ante C / C ++. Hay una variedad de teorías de por qué esto es todo esto. http://www.andromeda.com/people/ddyer/lisp/

ddyer
fuente
2

El software de modelado de flujo FLUENT (dinámica de fluidos computacional, CFD) utiliza el lenguaje de programación de esquemas como lenguaje de script.

jfs
fuente
2

Para la aplicación AutoCAD, AutoLISP / Visual LISP se utilizan mucho para proyectos reales y hay una gran comunidad de usuarios.

Jimmy Bergmark - JTB World
fuente
2

Veo que algunas personas ya lo han mencionado, pero lisp se usa ampliamente en el desarrollo personalizado de Autocad. Autocad incluye un intérprete de lisp incorporado. Es una de las formas más simples de extender el producto y brinda la capacidad de mejorar rápidamente su productividad.

No se requiere compilación, por parte del usuario, y 1, o más, se pueden ingresar expresiones line lisp en la línea de comando y ejecutar inmediatamente en el dibujo. Para los diseñadores y dibujantes dispuestos a dar incluso un pequeño paso para aprender los conceptos básicos de lisp, puede proporcionar una gran ayuda a la productividad.

Autocad proporciona otras formas de personalizar sus productos; ObjectARX (C ++), VB, C #, etc. La interfaz lisp es, con mucho, la más fácil de aprender e implementar. Y la mayoría de los otros entornos de desarrollo usan lisp de alguna manera.

El intérprete lisp estuvo disponible en una versión muy temprana de Autocad y se denominó Variables y expresiones. Fue bastante limitado, pero tuvo tanto éxito con los usuarios que rápidamente se agregó funcionalidad adicional. Un IDE visual completo fue más tarde (en la versión 2000, creo).

Odiaría adivinar cuántos millones (¿miles de millones?) De líneas de código lisp están disponibles para Autocad. Una búsqueda en Google en "autocad .lsp" arroja 2,3 millones de visitas.

Ok, basta de escribir, ha vuelto a funcionar para mí, escribiendo más lisp para mi proyecto actual :)

bluesixty
fuente