Inspirado por esta pregunta y un asunto reciente , me pregunto qué implica el desarrollo web de Haskell.
- ¿Existen frameworks web Haskell o motores de plantillas?
- ¿Cómo funcionaría el alojamiento de un sitio Haskell? ¿Hay servidores web adecuados?
- ¿Haskell es demasiado complejo para el flujo de trabajo basado en el desarrollo rápido y la creación de prototipos que se suele utilizar en el desarrollo web?
- ¿Hay ejemplos de aplicaciones web de Haskell existentes?
Respuestas:
En primer lugar, un descargo de responsabilidad: nunca he realizado ningún desarrollo web de Haskell, por lo que no hablo por experiencia.
Si observa la categoría Web en Hackage, hay muchos paquetes relacionados con la Web.
Creo que la mayoría de las aplicaciones web de Haskell se ejecutan en un servidor personalizado (posiblemente utilizando el
mod_proxy
enrutamiento de solicitudes avanzado de Apache o IIS como interfaz). Sin embargo, también hay algunos enlaces FastCGI.La infraestructura de almacenamiento de datos / framework / servidor web Haskell más prominente es Happstack , que es interesante por varias razones, la más obvia es que almacena todo su estado en la memoria y no usa una base de datos relacional.
Otra interfaz de servidor web más reciente es hack , de la que no sé mucho, excepto que el tutorial de 1 minuto parece interesante.
Hay muchos más servidores web / marcos en Haskell, pero estos dos son solo los que conozco de la parte superior de mi cabeza.
fuente
He realizado aplicaciones web de producción real en Haskell. Aquí está la pila que utilicé:
Toda la aplicación web es un solo programa haskell, compilado en código nativo ghc. Escribí el código para hacer el enrutamiento de solicitudes (y enrutamiento inverso) a mano.
fuente
He usado Happstack para crear una aplicación web / servicio web simple para nuestra intranet local.
Solo hay 169 líneas de código Haskell, todas incluidas
Main.hs
, que definen el servidor. El resto es Javascript para presentación y algo de Python para pruebas.Es de código abierto, puede verificarlo en GitHub y tal vez usarlo como punto de partida.
fuente
Hay muchos marcos web. Busque en la categoría Web: http://hackage.haskell.org/packages/archive/pkg-list.html#cat:web
Para las plantillas, HStringTemplate parece ser el líder de la marca: http://hackage.haskell.org/package/HStringTemplate
Binarios vinculados estáticamente que ejecutan su propio servidor web (por ejemplo, happstack-server o uno de los otros servidores web Haskell), binarios Haskell hablando con Apache, ... prácticamente todas las combinaciones que se te ocurran.
No. Y obtendrá mayores garantías de que la aplicación no está defectuosa gracias al sistema de tipos.
hpaste es una demostración simple de happstack. Todo el negocio de Tupil.com son las aplicaciones web de Haskell. Deutsche Bank dio una charla en CUFP el año pasado sobre sus marcos web internos de Haskell (basados en happstack).
fuente
Primero, ¡maldita sea si ese enlace de "affair" no fue una de las cosas más divertidas de la historia!
Ahora, mientras publiqué una respuesta en el otro enlace, no creo que esté sucediendo mucho en la tierra web de Haskell. Tienes Happstack y tal vez algunos otros marcos que no parecen ir a ninguna parte. Entonces tienes FastCgi.
Si eres como yo, entonces FastCgi probablemente sea lo suficientemente bueno para la mayoría de tus necesidades. La mayoría de los clientes, creo, no tienen problemas de escala (y, además, es lo suficientemente bueno para la gente de Ruby, verdad).
Si FastCgi no es tu velocidad ... bueno, quizás valga la pena ver el guiñada o la elevación (Erlang y Scala, respectivamente).
fuente