2010-03-04 11 views
10

En el reddit interview with Peter Norvig, dicede la comunidad y de la tela LISP marcos

“Por diversas razones, el conjunto de Web bibliotecas y protocolos fueron más lentas a desarrollarse en LISP que en otros idiomas”

y, en consecuencia, la adopción de lisp entre la comunidad web se redujo, y las personas buscaron idiomas con conjuntos de bibliotecas más ricos.

¿Hay alguna razón para esta lentitud en la construcción de los marcos web por parte de la comunidad LISP?

Respuesta

11

La observación del Sr. Norvig me pareció más histórica que una evaluación de la situación actual. Quizás a mediados o finales de los 90, las bibliotecas relacionadas con la web no aparecían tan rápidamente en Common Lisp como en otros lenguajes como Java.

Pero ciertamente hoy no es el caso. Puedo nombrar no menos de cinco servidores web Common Lisp (CL-HTTP, Hunchentoot, S-HTTP-Server, Araneida, AllegroServe), sin mencionar el mod-lisp para Apache. Debe haber casi una docena de marcos web diferentes (KPAX, Weblocks, UncommonWeb, et al). Y hay bibliotecas de lisp comunes para cada acrónimo web que puede nombrar: SOAP, XML, XLST, FTP, XML-RPC, S3, AJAX ... ad infinitum. Y hay herramientas que no tienen análogos en otros idiomas, como la maravilla de las maravillas ParenScript.

consultar el Directorio de Common Lisp para obtener una lista de grasa de las bibliotecas web: http://www.cl-user.net, muchos de los cuales se mantienen a http://www.common-lisp.net

5

No sé lo que quiere decir. Supongo que probablemente sea más que nada una instancia de la queja más genérica de "falta de bibliotecas de Common Lisp" (que me parece más litera, pero lo que sea).

Es interesante note that:

el primer servidor HTTP 1.1 compatible y [la] utilizado por el W3C para depurar la aplicación HTTP 1.1 referencia

fue escrito en Lisp.

2

"Lisp community" parece un término amplio. Pero para Common Lisp tienes Hunchentoot que mucha gente usa. naves Dr. Esquema con instalaciones web integrada.

Mi favorito, Clojure tiene muchas bibliotecas fresco desarrollados de forma activa para la creación de aplicaciones web, Ring, Compojure, Enlive, Clutch, por nombrar sólo unos pocos que son interesantes.

+0

Hunchentoot es genial, pero está basado en TBNL e inspirado en Aserve, cuya primera entrada de registro de cambios es 1999. En comparación, AOLserver (nee NaviServer) estaba usando C/Tcl en 1994. Perl, Java y PHP también estaban poniendo cosas en la web a mediados de la década de 1990. Clojure no llegó a la escena hasta 2007. Creo que cumple con los criterios de "desarrollo más lento". :-) – Ken

8

Creo que una de las principales bibliotecas de la razón puede ser un poco más lento para desarrollar en Lisp que en muchos otros idiomas es que es simplemente demasiado fácil. Las bibliotecas escritas en Lisp a menudo no se sienten dignas de ese nombre. Son solo unas pocas líneas de código y específicas para la tarea en cuestión. Unos pocos minutos adicionales darían como resultado una biblioteca de propósito general, pero no parece que nadie la quiera cuando solo se trata de unas pocas líneas triviales de código.

Hace aproximadamente un año, tuve que leer y escribir CSV en Clojure. El consejo estándar fue utilizar cualquiera de varias bibliotecas de Java bien conocidas y bien probadas. Me resultó más difícil identificar qué biblioteca era la más adecuada y conocer su API de lo que era simplemente write my own en Clojure. Son 50 líneas, y maneja mi maleta de uso previsto maravillosamente.Aunque no es exactamente una buena biblioteca de CSV; Hay muchos casos que no admite, por lo que no lo he empaquetado como una biblioteca, póngalo en Clojars o similar. Supongo que soy parte del problema.

La mitad de los últimos tutoriales prácticos de Lisp en la web de hoy incluyen un ejemplo de una macro de generación de HTML. La mayoría de ellos son de calidad de producción y poco más que una pantalla completa de código. Parece que no vale la pena empacar y llamar a una biblioteca; es un código trivial que cualquier programador Lisp decente podría escribir en unos minutos. Es es por supuesto, vale la pena empaquetar como una biblioteca, y Edi Weitz ha lanzado un montón de código a lo largo de esas líneas.

Cuestiones relacionadas