81 votes

Ce qui est de l’écosystème pour le développement web Haskell ?

Inspiré par cette question et une récente affaire, je me demande ce que Haskell développement web.

  • Y a-Haskell web des cadres ou des moteurs de template?
  • Comment accueillir un Haskell travaux sur le site, est-il adapté serveurs web?
  • Est Haskell trop complexe pour que l'habitude rapide de développement et de prototypage à base de flux de travail souvent utilisé dans le développement web?
  • Sont là quelques exemples de Haskell des applications web?

36voto

Phil Points 1247

J'ai fait réel de la production d'applications web en Haskell. Voici la pile, j'ai utilisé:

  • PostgreSQL base de données principale
  • HDBC Postgres pour vous y connecter
  • XHTML pour générer le code Html. C'est un peu un drôle de syntaxe, mais au moins vous avez lambda-abstraction.
  • Fastcgi pour se connecter au backend de la lighttpd, de faire le service web.

L'ensemble de l'application web est un seul haskell programme compilé en code natif de ghc. J'ai écrit le code pour faire la demande de routage (et l'inverse de routage) à la main.

18voto

Tom Lokhorst Points 7733

Tout d'abord, un avertissement: je n'ai jamais fait de toute Haskell développement web, donc je ne parle pas de l'expérience.

Si vous regardez la catégorie Web sur Hackage, il ya beaucoup de web-paquets.

Je pense que la plupart des Haskell web de l'exécution de l'application sur un serveur personnalisé (éventuellement à l'aide d'Apache mod_proxy ou IIS Avancées de Routage des demandes comme un front-end). Cependant, il y a aussi quelques FastCGI liaisons.

Les plus éminents Haskell webserver/cadre/datastorage infrastruction est Happstack, ce qui est intéressant pour plusieurs raisons, la plus évidente étant que il stocke tous ses état en mémoire et de ne pas utiliser une base de données relationnelle.

L'autre, plus récente du serveur web interface est hack, que je ne connais pas trop, sauf que le 1 minute tutoriel semble intéressant.

Il y a beaucoup plus de serveurs web/cadres en Haskell, mais ces deux sont seulement ceux que je connais du haut de ma tête.

14voto

luntain Points 1779

J'ai utilisé Happstack pour créer une webapp/webservice pour notre intranet local.

  • Il stocke les données en mémoire avec un journal des transactions de la récupération (en standard avec Happstack). Vous ne trouverez pas de SQL dans le code n'importe où.
  • Pas de modèles. Ce que l'on veut avec des modèles, je n'en Javascript. Juste obtenir les données au format JSON, et le mettre dans le DOM.

Il y a juste 169 lignes de code Haskell, le tout en Main.hs, qui définissent le serveur. Le reste est du Javascript pour la présentation, et quelques Python pour les tests.

Il est open source, vous pouvez le vérifier sur github, et peut-être utiliser comme un point de départ.

9voto

Don Stewart Points 94361
  • Y a-Haskell web des cadres ou des moteurs de template?

Il existe de nombreux frameworks web. Rechercher dans la catégorie Web: http://hackage.haskell.org/packages/archive/pkg-list.html#cat:web

Pour les templates, HStringTemplate semble être la marque leader: http://hackage.haskell.org/package/HStringTemplate

  • Comment accueillir un Haskell travaux sur le site, est-il adapté serveurs web?

Lié statiquement binaires de l'exécution de leur propre serveur web (par exemple, happstack-serveur ou l'une de l'autre Haskell serveurs web), Haskell binaires de parler à Apache, ... à peu près toutes les combinaisons que vous pourriez penser.

  • Est Haskell trop complexe pour que l'habitude rapide de développement et de prototypage à base de flux de travail souvent utilisé dans le développement web?

Pas de. Et vous aurez plus de garanties de l'application n'est pas défectueux grâce au système de type.

  • Sont là quelques exemples de Haskell des applications web?

hpaste est une simple démo pour happstack. Tupil.com toute entreprise est Haskell web apps. La Deutsche Bank a donné une conférence à CUFP l'année dernière sur leur Haskell frameworks web (basé sur happstack).

7voto

Shaun Points 2632

Tout d'abord, putain, si cette "affaire" lien n'était pas l'une des choses les plus drôles que jamais!

Maintenant, alors que j'ai posté une réponse sur l'autre lien, je ne pense pas que beaucoup de choses se passe dans Haskell web de la terre. Vous avez Happstack et peut-être quelques autres cadres qui ne semble pas aller n'importe où. Et puis, vous avez FastCgi.

Si vous êtes comme moi, alors FastCgi est probablement suffisant pour la plupart de vos besoins. La plupart des clients, je trouve, n'ont pas vraiment de l'échelle des problèmes (et, d'ailleurs, son assez bon pour le Ruby gens, à droite).

Si FastCgi n'est pas votre vitesse de...eh bien, peut-être le pian ou l'ascenseur (Erlang et Scala, respectivement) valent le coup d'oeil.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X