¿Cuál es el ecosistema para el desarrollo web de Haskell? [cerrado]

80

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?
deceze
fuente
11
No creo que esto sea un duplicado. La otra pregunta es sobre aprender Haskell como primer idioma, para hacer desarrollo web. Esta pregunta es específicamente sobre qué marcos, motores de plantilla y servidores web existen. ¿Quizás esta pregunta se pueda reelaborar?
Tom Lokhorst
2
Es exactamente por eso que lo separé de la otra pregunta, que consistía principalmente en obtener respuestas con recomendaciones para aprender otros idiomas. Esta pregunta tiene un enfoque diferente, específicamente proyectos centrados en la web en el ecosistema de Haskell. : - /
diciembre
7
Me gustaría esto abierto
CiscoIPPhone
@deceze He reelaborado un poco tu pregunta. Específicamente, hice que el título fuera más distinto de la otra pregunta.
Tom Lokhorst
@Tom ¡Gracias! Espero que esto lo distinga un poco mejor.
diciembre

Respuestas:

18

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_proxyenrutamiento 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.

Tom Lokhorst
fuente
36

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.

Phil
fuente
14

He usado Happstack para crear una aplicación web / servicio web simple para nuestra intranet local.

  • Almacena datos en la memoria con un registro de transacciones para su recuperación (estándar con Happstack). No encontrará SQL en el código en ninguna parte.
  • Sin plantillas. Lo que uno suele hacer con las plantillas, lo hago en Javascript. Simplemente obtenga los datos en formato JSON y colóquelos en el DOM.

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
fuente
1
Línea 82, olvidó una cita de cierre.
Rayne
10
Haskell permite comillas en identificadores. Triste, ese resaltado de sintaxis de github cae sobre eso.
Fuente
9
  • ¿Existen frameworks web Haskell o motores de plantillas?

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

  • ¿Cómo funcionaría el alojamiento de un sitio Haskell? ¿Hay servidores web adecuados?

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.

  • ¿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?

No. Y obtendrá mayores garantías de que la aplicación no está defectuosa gracias al sistema de tipos.

  • ¿Hay ejemplos de aplicaciones web de Haskell existentes?

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).

Don Stewart
fuente
Bueno, Tupil también hace mucho desarrollo de aplicaciones para iPhone (en Objective C). No solo hacen aplicaciones web de Haskell.
Tom Lokhorst
7

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).

Shaun
fuente
Mr Bone fue duro con este.
Daniel