La divulgation complète: je suis l'un des développeurs de logiciel Enfichable.
Tout d'abord, nous allons parler de ce composant logiciel Enfichable. Maintenant le composant logiciel Enfichable de l'équipe maintient cinq différents projets sur le hackage: snap-core, snap-serveur, hold-up, d'ancrage et de xmlhtml. snap-serveur est un serveur web qui expose l'API défini par le snap-core. hold-up est un système de template. xmlhtml est un XML/HTML analyse et de la bibliothèque de rendu utilisé par les hold-up. le magnétisme est un projet cadre qui colle tous ensemble et fournit le puissant snaplets API web apps modulable et modulaire.
Yesod a une multitude de projets sur le hackage. La plupart (tous?) d'entre eux sont répertoriés dans le Yessod de la catégorie. Certains notables sont yesod-core, de la chaîne, persistante, et hamlet.
La réalité de Haskell développement web est qu'il est beaucoup moins d'un ou-exclusif choix que semble être perçue. En général, les projets sont très faiblement couplés et assez interchangeables. Vous pouvez construire un site web à l'aide de la courbure (le Yessod de l'équipe de serveur web), hold-up (le composant logiciel Enfichable de l'équipe système de template), et de l'acide-état (le Happstack projet du système de persistance). Vous pouvez également utiliser un composant logiciel enfichable serveur avec hamlet ou persistants.
Cela dit, les deux projets ont certainement quelques différences. La plus grande différence, je peux objectivement, c'est que Yessod projets généralement de faire un usage intensif de Modèle de Haskell et quasiquoting pour créer concis DSLs, tout en composant logiciel Enfichable projets en tenir à la construction du combinator bibliothèques qui sont en faveur de la composabilité. Juste au sujet de toutes les autres différences, que je pense va être subjectivement biaisée en faveur de la Snap. Le parapluie paquets nommé d'après les deux projets vont évidemment faire des choix spécifiques pour les composants mentionnés ci-dessus, et ces choix seront reflétées dans les dépendances du projet. Mais cela ne signifie pas encore que vous ne pouvez pas tirer en quelque chose de différent et de l'utiliser ainsi.
Composant logiciel enfichable n'ont séances et d'authentification, les interfaces de plusieurs bases de données, et de belle forme de manipulation (ici et ici) à l'aide de digestif-foncteurs qui comprend préemballés soutien arbitrairement imbriqués de façon dynamique importante listes. Ces sont quelques-unes de la croissance de l'écosystème de enfichables snaplets. Les sessions d'authentification et de snaplets sont écrits d'une manière qui est de retour à la fin de l'agnostique. Donc, avec une petite quantité de colle de code que vous devez être en mesure de l'utiliser avec n'importe quel système de persistance que vous pouvez penser. Dans l'avenir, Snap coller avec cette politique, aussi souvent que possible.
Pour la plupart, je pense que le choix de Snap vs Yesod vs Happstack est moins une question de fonctionnalités et plus de goût personnel. Chaque fois que quelqu'un dit que l'un des cadres n'a pas quelque chose que l'autre a, la plupart du temps, il sera assez facile de tirer dans la fonctionnalité manquante de l'autre cadre par l'importation du package nécessaires.
EDIT: Pour une comparaison plus détaillée des trois grands Haskell frameworks web découvrez mon récent billet de blog. Pour une plus rugueux (mais peut-être plus utile), de la comparaison à l'aide de quelques larges généralisations, voir mon Haskell Framework Web Matrice de Comparaison