2008-10-03 26 views
60

¿Cuáles son los marcos web populares (ok, popular es relativo) para los diversos sabores de LISP?Lisp Web Frameworks?

+6

Me gustaría saber si terminamos usando uno y cómo era =) – DFectuoso

+0

Sí, no creo que "popular" sea el término correcto cuando se habla de un marco LISP. ;) editar: No es que eso sea algo malo EN ABSOLUTO. – Gagege

Respuesta

7

UncommonWeb (UCW) a menudo se menciona http://www.common-lisp.net/project/ucw/ - no es resto, como se encuentra en cuarto de moda en estos momentos, más como marítimo de Smalltalk (pero, de nuevo, marino es muy en boga).

14

Hunchentoot es también bastante generalizada

+4

¿No es esto más bien un servidor web? – Svante

+0

Desde su sitio web: * "Hunchentoot es un servidor web escrito en Common Lisp y al mismo tiempo un conjunto de herramientas para crear sitios web dinámicos." * –

9

La mayoría (quizás todos) de los bien conocidos marcos web de Common Lisp ya se han mencionado, así que solo agregaré algunos comentarios.

Hunchentoot no es un "marco web" en el sentido que la mayoría de la gente quiere decir. Es un servidor HTTP (uno extremadamente bueno).

"Lisp on Lines" de Drew Crampsie parece extremadamente prometedor, pero no estoy seguro de lo avanzado que está. He estado esperando escuchar un anuncio.

La web común de Marco Baringer se ejecuta en muchas de las implementaciones CL más importantes: Allegro CL, CMUCL, Clozure CL (anteriormente conocido como OpenMCL), GNU clisp y SBCL. El único importante que falta es LispWorks; No sé si eso significa que no se ha probado que funcione, o si se sabe que no funciona, o qué; pero si se ejecuta en todos esos otros dialectos, probablemente sea fácil hacerlo funcionar en cualquier otro.

+1

Los enlaces harían esta respuesta más útil. – skeltoac

8

Common Lisp

Una gran cantidad de los mismos de siempre (Hunchentoot, UCW, lol) ya se han mencionado. Franz pone a disposición de Allegro Common Lisp (y portado a otra Lisps):

  • en un nivel inferior (el manejo de peticiones HTTP a sí mismo), AllegroServe.
  • en un nivel superior (más de un "marco"), WebActions.

Ambos son de código abierto. Tiendo a utilizar AllegroServe, teniendo en cuenta las utilidades cuando las necesito, pero a algunas personas realmente les gustan las WebActions.

que utilizan Araneida desde hace bastante tiempo, y yo prefiero su estilo a AllegroServe, pero no se ha mantenido desde 2006.

8

He buscado bastante amplia para un buen marco web para Lisp, y yo los encontró a todos de alguna manera inaccesibles. La arquitectura de UCW no me pareció muy natural (no puedo recordar por qué, ha pasado un tiempo desde que investigué), y KPAX ya no se mantiene (creo).

La web simbólica se ve muy interesante, y creo que Weblocks es la más interesante, pero Weblocks no está muy bien documentada y puede ser bastante intimidante para el recién llegado. SymbolicWeb era inmaduro la última vez que lo busqué, pero puede haber crecido un poco desde entonces. La página features se ve muy bien hoy.

Existen diferentes enfoques que puede tomar. Si quieres un enfoque puramente Lisp, entonces usted podría:

  • Si usted puede leer el código con soltura y comprender continuaciones, puede intentar Weblocks con un backend Hunchentoot (Weblocks tiene una dependencia en Hunchentoot que no ha sido todavía abstraído) Se supone que debe haber un manual de usuario real en un mes o dos, pero como con cualquier proyecto de OSS, tales compromisos son incompletos.
  • Del mismo modo, puede probar SymbolicWeb. [actualización: no importa, el proyecto no es más]
  • haga el suyo. En serio, hay cl-who para ayudar con la generación de HTML, hay librerías javascript y json disponibles, useckets, elephant, cl-sql, hunchentoot, aserve y muchas bibliotecas de utilidades que puedes combinar.

Si estás bien con un enfoque híbrido, esto es algo que estoy experimentando con piso en la actualidad He escrito un backend Lisp JSON-RPC para Qooxdoo, por lo que puede servir interfaces javascript puro a través de una un servidor http súper rápido como Cherokee y deja que Cherokee extienda las conexiones a todos los servidores back-end json-rpc que se ejecutan en Lisp como yo quiera. Muy, muy escalable. Estoy lejos de entender los problemas y desafíos, pero fue bastante sencillo trabajar. la biblioteca json hace que sea estúpido simple hacer que el backend funcione, creo que Qooxdoo en realidad es más difícil (pero realmente no soy un desarrollador de JS).

También voy a consultar WebActions de allegro, porque hay cierto atractivo en la disponibilidad de soporte pago, sin mencionar que Allegro puede ser la mejor implementación de CL disponible (Su Kennyness lo usa :-)) .

2

Re: SymbolicWeb (y su exagerada desaparición)

SymbolicWeb project page en Gitorious y SymbolicWeb article en Wikipedia. La página de Grupos de Google está definitivamente muerta (y desarchivada?), Pero el árbol de Gitorious muestra registros tan recientemente como 29 April 2010. La página del proyecto también se refiere a "some running examples" estando "ocasionalmente disponible" en nostdal.org (que es inalcanzable mientras escribo esto, reforzando el calificador "ocasionalmente" :-).)

(Nota:.. No soy un usuario SymbolicWeb acabo ubicaron los enlaces SymbolicWeb mientras que la lectura de este hilo)

1

Esta pregunta es un poco viejo pero pensé que me gustaría compartir mi reciente descubrimiento: el Hop language que se basa en Scheme y es bastante completo.

HOP es un lenguaje de programación de varios niveles para la Web 2.0 y la llamada web difusa. Está diseñado para programar aplicaciones web interactivas en muchos campos, como multimedia (galerías web, reproductores de música, ...), ubicua y domótica (SmartPhones, dispositivos personales), mashups, oficina (agendas web, clientes de correo, ...), etc.

características HOP:

  • un amplio conjunto de widgets para la programación y de fantasía GUI web portátiles,
  • plena compatibilidad con las tecnologías web tradicionales (Javascript, HTML, CSS),
  • Soporte HTML5, un servidor web versátil compatible con HTTP/1.0 y HTTP/1.1,
  • un soporte multimedia nativo para permitir que las aplicaciones web multimedia omnipresentes,
  • WebDAV rápido de nivel 1 de soporte,
  • un compilador de código nativo optimización de código del servidor,
  • un control sobre la marcha JavaScript compilador de código de cliente,
  • un amplio conjunto de bibliotecas para el correo electrónico, calendarios, bases de datos, telefonía, ...
3

acabo de descubrir un marco web llamado Clack para Common Lisp y que era bastante fácil de empezar

Ver http://clacklisp.org/

Presupuesto de su sitio web "Clack es un entorno de aplicaciones web para Common Lisp inspirado en WSGI de Python y Ruby rack".

y caveman es un framework micro web basado en Clack.

2

restas es otro framework de desarrollo web que ha visto cambios recientes:

http://restas.lisper.ru/en/

Su visión general

RESTAS is a Common Lisp web application framework. Its key features are: 

RESTAS was developed to simplify development of web applications following the REST architectural style. 

RESTAS is based on the Hunchentoot HTTP server. Web application development with RESTAS is in many ways simpler than with Hunchentoot, but some knowledge of Hunchentoot is required, at least about working with hunchentoot:*request* and hunchentoot:*reply*. 

Request dispatch is based on a route system. The route system is the key concept of RESTAS and provides unique features not found in other web frameworks. 

The other key RESTAS concept is its module system, which provides a simple and flexible mechanism for modularized code reuse. 

Interactive development support. Any RESTAS code (such as the definition of a route, a module or a submodule) can be recompiled at any time when you work in SLIME and any changes you made can be immediately seen in the browser. No web server restart or other complicated actions are needed. 

SLIME integration. The inner structure of a web application can be investigated with the standard "SLIME Inspector." For example, there is a "site map" and a simple code navigation with this map. 

Easy to use, pure Lisp web application daemonization facility based on RESTAS and SBCL in Linux without the use of Screen or detachtty. 

RESTAS is not an MVC framework, although it is not incompatible with the concept. From the MVC point of view, RESTAS provides the controller level. Nevertheless, RESTAS provides an effective and flexible way for separation of logic and representation, because it does not put any constraints on the structure of applications. Separation of model and controller can be effectively performed with Common Lisp facilities, and, hence, doesn't need any special support from the framework. 

RESTAS does not come with a templating library. cl-closure-template and HTML-TEMPLATE are two good templating libraries that can be used with RESTAS.